Текст метки CSS прямо под элементом ввода - PullRequest
12 голосов
/ 12 августа 2010

У меня есть input текстовые и label теги. Я не могу понять CSS, чтобы заставить текст метки выравниваться прямо под вводимым текстом. Вот фрагмент HTML-кода:


<form id="sg1">
    <label for="member1">member 1</label>
    <input name="member1" id="member1" value="jack" />
    <label for="member2">member 2</label>
    <input name="member2" id="member2" value="carter" />
    <label for="member3">member 3</label>
    <input name="member3" id="member3" value="jackson" />
    <label for="member4">member 4</label>
    <input name="member4" id="member4" value="tielk" />    
</form>​

Попытка получить:

[input box 1]    [input box 2]
      label 1          label 2

и т. Д. Со всеми элементами.

Ответы [ 4 ]

19 голосов
/ 12 августа 2010

Быстрый пример, который работает:

input {
  display: inline-block;
  width: 6em;
  position: relative;
  top: -3em;
}

label {
  display: inline-block;
  width: 6em;
  margin-right: .5em;
  padding-top: 1.5em;
}
<form id="sg1">
  <label>member 1 <input name="member1" id="member1" value="jack" /></label>
  <label>member 2 <input name="member2" id="member2" value="carter" /></label>
  <label>member 3 <input name="member3" id="member3" value="jackson" /></label>
  <label>member 4 <input name="member4" id="member4" value="tielk" /></label>
</form>​

Может быть улучшено, но я считаю, что он чище, чем посторонние div s, и он намного хуже, чем label -after- input -прибыль, когда поддержка CSS отсутствует. Лично я предпочитаю вкладывать input s в label s.

4 голосов
/ 12 августа 2010

Используйте таблицу (одна пара ввода / метки на ячейку) или плавающие влево div (одна пара ввода / метки на ячейку).Пример:

<div class="pair">
    <input type="text" name="foo" value="bar" /><br />
    <label for="foo">shabba</label>
</div>
<div class="pair">
    …
</div>

CSS:

div.pair {
    float:left;
}
2 голосов
/ 12 августа 2010

Вы бы упростили работу, обернув каждое поле (в данном случае каждую пару вход / метка) в div.

0 голосов
/ 12 августа 2010

Вы можете использовать чистый CSS, чтобы получить это, чтобы достичь того, что вы хотите, но для этого требуется множество вещей позиционирования adhoc, которые вам лучше не делать.это поставить метку под входом в html:

<form id="sg1">
    <input name="member1" id="member1" value="jack" />
    <label for="member1">member 1</label>
    <input name="member2" id="member2" value="carter" />
    <label for="member2">member 2</label>
    <input name="member3" id="member3" value="jackson" />
    <label for="member3">member 3</label>
    <input name="member4" id="member4" value="tielk" />    
    <label for="member4">member 4</label>
</form>

Затем вы можете обернуть каждую пару ввода / метки в div и установить div следующим образом:Далее вы можете поставить

#sg1 label
{
    float: right;
}

input
{
    display:block;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...