Текст метки CSS прямо под элементом ввода
У меня есть теги 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
и т.д. со всеми элементами.
Ответы
Ответ 1
Быстро взбитый пример, который работает:
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>
Ответ 2
Используйте таблицу (одна пара ввода/метки на ячейку) или левые плавающие div (одна пара ввода/метки на 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;
}
Ответ 3
Вы сделали бы работу намного проще, обернув каждое поле (в данном случае, каждую пару ввода/метки) в div.
Ответ 4
Вы можете использовать чистую css, чтобы добиться этого, чтобы достичь того, чего вы хотите, но для этого требуется много хакеров, которые вам лучше не делать.
Самый простой способ - поместить метку под вкладкой на 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 следующим образом:
<form id="sg1">
<div class="wrap">
<input name="member1" id="member1" value="jack" />
<label for="member1">member 1</label>
</div>
<div class="wrap">
<input name="member2" id="member2" value="carter" />
<label for="member2">member 2</label>
</div>
<div class="wrap">
<input name="member3" id="member3" value="jackson" />
<label for="member3">member 3</label>
</div>
<div class="wrap">
<input name="member4" id="member4" value="tielk" />
<label for="member4">member 4</label>
</div>
</form>
#sg1 div
{
clear: both;
float: left;
}
Затем вы можете поместить
#sg1 label
{
float: right;
}
input
{
display:block;
}