Встроенные поля формы с надписями, расположенными сверху
Я не могу поверить, что мне нужно это спросить, но я нахожусь на своем конце.
Я пытаюсь отобразить 2 поля формы inline, но с меткой для каждого поля в верхней части. В искусстве ascii:
Label 1 Label 2
--------- ---------
| | | |
--------- ---------
Должно быть довольно просто.
<label for=foo>Label 1</label>
<input type=text name=foo id=foo />
<label for=bar>Label 2</label>
<input type=text name=bar id=bar />
Это меня доставит:
--------- ---------
Label 1 | | Label 2 | |
--------- ---------
Чтобы получить метки поверх полей, добавьте display = block:
<label for=foo style="display:block">Label 1</label>
<input type=text name=foo id=foo />
<label for=bar style="display:block">Label 2</label>
<input type=text name=bar id=bar />
После того, как я это сделаю, метки будут там, где я хочу их, но поля формы больше не являются строковыми:
Label 1
---------
| |
---------
Label 2
---------
| |
---------
Мне не удалось найти способ обернуть мой html, чтобы поля отображались inline. Может ли кто-нибудь помочь?
Ответы
Ответ 1
Я бы поместил каждый вход внутри диапазона с помощью display:inline-block
, например:
<span style="display:inline-block">
<label for=foo style="display:block">Label 1</label>
<input type=text name=foo id=foo />
</span>
<span style="display:inline-block">
<label for=bar style="display:block">Label 2</label>
<input type=text name=bar id=bar />
</span>
Ответ 2
Вы можете вложить свои входы с помощью меток, а затем использовать CSS:
label{display:inline-block;}
input{display:block;}
<label>Label 1<input type=text name=foo id=foo /></label>
<label>Label 2<input type=text name=bar id=bar /></label>