У меня есть очень простой и известный сценарий формы, где мне нужно правильно расположить метки рядом с входными данными. Однако я не знаю, как это сделать.
Моя цель состояла бы в том, чтобы метки были выровнены рядом с входами справа. Вот пример изображения желаемого результата.
Я сделал скрипку для вашего удобства и уточнить, что у меня сейчас - http://jsfiddle.net/WX58z/
Отрывок:
<div class="block">
<label>Simple label</label>
<input type="text" />
</div>
<div class="block">
<label>Label with more text</label>
<input type="text" />
</div>
<div class="block">
<label>Short</label>
<input type="text" />
</div>
В то время как решения здесь работоспособны, более поздние технологии сделали то, что я считаю лучшим решением. CSS Grid Layout позволяет нам структурировать более элегантное решение.
Приведенный ниже CSS предоставляет структуру «настройки» из 2 столбцов, где первый столбец должен быть выровненным по правому краю ярлыком, за которым следует некоторое содержимое во втором столбце. Более сложный контент может быть представлен во втором столбце, обернув его в <div>.
[Как примечание: я использую CSS, чтобы добавить ':', который следует за каждой меткой, так как это стилистический элемент - мои предпочтения.]
источник
grid-template-columns: max-content 1fr;
, второй столбец будет использовать всю оставшуюся ширину. Для меня это святой Грааль таких макетов, где не нужно указывать ширину столбцов или содержимого, и все автоматически вписывается в доступное пространство.Ответив на такой вопрос раньше, вы можете посмотреть на результаты здесь:
Создание формы с полями и текстом рядом друг с другом - каков семантический способ сделать это?
Таким образом, чтобы применить те же правила к скрипке, вы можете использовать ее
display:inline-block
для отображения метки и групп ввода, например, так:CSS
обновленная скрипка
источник
Я использую что-то похожее на это:
Стиль:
источник
Вы также можете попробовать использовать flex-box
источник
Я знаю, что это старый поток, но более простым решением было бы встроить ввод в метку следующим образом:
источник
Вот общая ширина меток для всех меток формы. Ничто не фиксирует ширину.
вызовите калькулятор setLabelWidth со всеми метками. Эта функция загрузит все метки в пользовательском интерфейсе и определит максимальную ширину метки. Примените возвращаемое значение функции ниже ко всем меткам.
источник
Вы можете сделать что-то вроде этого:
HTML:
CSS:
Надеюсь это поможет ! :)
источник