Я новичок в HTML и пытаюсь научиться использовать формы.
Самая большая проблема, с которой я столкнулся до сих пор, - это выравнивание форм. Вот пример моего текущего HTML-файла:
<form>
First Name:<input type="text" name="first"><br />
Last Name:<input type="text" name="last"><br />
Email:<input type="text" name="email"><br />
</form>
Проблема в том, что поле после «Электронной почты» сильно отличается по интервалам от имени и фамилии. Как «правильно» сделать так, чтобы они «выстраивались» по сути?
Я пытаюсь практиковать хорошую форму и синтаксис ... многие люди могут делать это с помощью CSS, я не уверен, я пока изучил только самые основы HTML.
Ответы:
Другой пример, здесь используется CSS, я просто помещаю форму в div с классом контейнера. И указано, что входящие элементы, содержащиеся внутри, должны составлять 100% ширины контейнера и не иметь никаких элементов с обеих сторон.
источник
Принятый ответ (установка явной ширины в пикселях) затрудняет внесение изменений и ломается, когда ваши пользователи используют другой размер шрифта. С другой стороны, использование таблиц CSS отлично работает:
Вот JSFiddle: http://jsfiddle.net/DaS39/1/
И если вам нужно, чтобы метки были выровнены по правому краю, просто добавьте
text-align: right
к меткам: http://jsfiddle.net/DaS39/РЕДАКТИРОВАТЬ: Еще одно небольшое примечание: таблицы CSS также позволяют вам играть со столбцами: например, если вы хотите, чтобы поля ввода занимали как можно больше места, вы можете добавить в свою форму следующее
в этом случае вы можете добавить
white-space: nowrap
кlabels
.источник
Простое решение для вас, если вы новичок в HTML, - просто использовать таблицу, чтобы выровнять все.
источник
Мне гораздо проще изменить отображение меток на встроенный блок и установить ширину
источник
Вам следует использовать стол. Что касается логической структуры данные являются табличными: вот почему вы хотите выровнять их, потому что вы хотите показать, что метки связаны не только со своими полями ввода, но и друг с другом в двумерной структуре.
[подумайте, что бы вы сделали, если бы вместо полей ввода отображались строковые или числовые значения.]
источник
Для этого я предпочитаю сохранять правильную семантику HTML и использовать CSS как можно проще.
Что-то вроде этого подойдет:
Однако есть один недостаток: вам, возможно, придется выбрать правильную ширину метки для каждой формы, и это непросто, если ваши метки могут быть динамическими (например, метки I18N).
источник
Я большой поклонник использования списков определений.
Их легко стилизовать с помощью CSS, и они избегают клейма использования таблиц для макета.
источник
div
s (у add
просто левое поле ~ 40 пикселей) и избежать какой-либо семантической путаницы. Кроме того, ни один из них не выстраивает метки / входы в одной строке.используя css
это даст вам что-то вроде:
источник
clear
чтобы формы не складывались, скажем, для меньшей шириныТрадиционный метод - использовать стол.
Пример:
Однако многие будут утверждать, что таблицы ограничивают и предпочитают CSS. Преимущество использования CSS в том, что вы можете использовать различные элементы. Из разделов, упорядоченного и неупорядоченного списка вы можете получить один и тот же макет.
В конце концов, вы захотите использовать то, что вам удобнее всего.
Подсказка: с таблицами легко начать работу.
источник
Что ж, для самых основ вы можете попробовать выровнять их в таблице. Однако использование таблицы плохо для разметки, так как таблица предназначена для содержимого.
Вы можете использовать плавающие методы CSS.
CSS код
HTML
В статье, которую я написал, можно найти ответ на вопрос о проблеме с плавающей точкой в IE7: проблемы с плавающей точкой в IE7.
источник
ul
тегов.)Я знаю, что на это уже был дан ответ, но я нашел новый способ их красивого выравнивания - с дополнительным преимуществом - см. Http://www.gargan.org/en/Web_Development/Form_Layout_with_CSS/
в основном вы используете элемент метки вокруг ввода и выравниваете, используя это:
а затем с помощью css вы просто выравниваете:
источник
Ответ Клемана, безусловно, лучший. Вот несколько улучшенный ответ, показывающий различные возможные варианты выравнивания, включая кнопки с выравниванием по левому краю и правому краю:
Я добавил некоторые отступы справа от всех меток (
padding-right:8px
), чтобы пример выглядел менее ужасно, но в реальном проекте это следует делать более осторожно (добавление отступов ко всем другим элементам также было бы хорошей идеей).источник
css Я использовал для решения этой проблемы, аналогично Gjaa, но стилизован лучше
Вот мой HTML, используемый специально для простой формы регистрации без кода php
Это очень просто, и я только начинаю, но это сработало довольно хорошо
источник
Вставляйте теги ввода внутри неупорядоченных списков. Не делайте style-type none. Вот вам пример.
Сработало у меня!
источник
UL
просто будет отступать от поля, ничего не выравнивая. Вводinput
sLI
просто добавит перед ними маркер (да, они будут выровнены как список, а не по меткам). Кроме того, «Input2» будет придерживаться предыдущегоinput
элемента, потому чтоLI
они не закрыты (их нет</li>
) и нет начала<li>
для этой «метки», поэтому он будет обрабатываться так, как должен, поэтому общий текст будет объединен с предыдущий элемент. Наконец, в коде есть ошибка, закрытие<ul/>
должно быть</ul>
.В CSS вы должны объявить метку и ввод как display: inline-block и указать ширину в соответствии с вашими требованиями. Надеюсь, что это поможет вам. :)
источник
Просто добавьте
Просто вставьте выравнивание в открывающий тег.
источник
form
него нетalign
атрибута (и даже если бы он был, использование стиля / CSS было бы устаревшим). Кроме того, закрывающий тег неправильный, так и должно быть</form>
.style="text-align:center"
Внутри можно определитьform
, что будет выравнивать все содержимое формы по центру, но исходный вопрос был не об этом. Это никогда не приведет к выравниванию меток по их полям ввода (да, я тестировал на Firefox 75, на всякий случай).