Что является хорошим способом преодолеть досадный факт, что этот код не будет работать должным образом:
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
В идеальном мире все требуемые input
s будут иметь маленькую звездочку, указывающую, что поле является обязательным. Это решение невозможно, поскольку CSS вставляется после содержимого элемента, а не после самого элемента, но что-то подобное было бы идеальным. На сайте с тысячами обязательных полей я могу переместить звездочку перед полем ввода с одним изменением в одну строку ( :after
до :before
), или я могу переместить ее в конец метки ( .required label:after
) или перед меткой, или в положение на контейнере и т. д.
Это важно не только в том случае, если я передумаю, где разместить звездочку везде, но также и для странных случаев, когда макет формы не позволяет звездочке в стандартном положении. Он также хорошо сочетается с проверкой, которая проверяет форму или выделяет неправильно заполненные элементы управления.
Наконец, он не добавляет дополнительной разметки.
Есть ли какие-нибудь хорошие решения, в которых есть все или большинство преимуществ невозможного кода?
источник
required
атрибут в<input...
developer.mozilla.org/en-US/docs/Web/HTML/Element/input/…Ответы:
Вы это имели в виду?
http://jsfiddle.net/erqrN/1/
Показать фрагмент кода
См. Https://developer.mozilla.org/en-US/docs/Web/CSS/pseudo-elements.
источник
*
но это означало бы, что мне пришлось бы вручную указывать расстояние для каждой длины ввода формы, и я не мог бы иметь никаких гибких вводов.Поиграйте со своей точной структурой: http://jsfiddle.net/bQ859/
источник
Хотя это принятый ответ, не обращайте на меня внимания и используйте
:after
синтаксис, предложенный ниже. Мое решение недоступно.Аналогичного результата можно достичь, используя фоновое изображение изображения звездочки и установив фон метки / ввода / внешнего блока div и отступ размером с изображение звездочки. Что-то вроде этого:
Это поместит звездочку ВНУТРИ текстового поля, но
div.required
вместо.required input
нее, вероятно, будет больше того, что вы ищете, хотя и немного менее элегантно.Этот метод не требует дополнительных входных данных.
источник
Чтобы поместить его точно в ввод, как показано на следующем изображении:
Я нашел такой подход:
Сайт, на котором я работаю, написан с использованием фиксированного макета, поэтому меня это устраивало.
Я не уверен, что это хорошо для жидкого дизайна.
источник
написать в CSS
и HTML
источник
<label class="control-label">...</label>
. Но он выполняет свою работу (Y)источник
radial-gradient
терминаbackground-image
? Я не могу заставить этот синтаксис сочетаться с developer.mozilla.org/en-US/docs/Web/CSS/radial-gradient, однако он работает правильно, когда я его пробую.Изображение имеет пространство 20 пикселей справа, чтобы не перекрывать стрелку раскрывающегося списка выбора.
А это выглядит так:
источник
Используйте jQuery и CSS
источник
Я думаю, что это эффективный способ, почему так много головной боли
источник
Это 2019 год, и предыдущие ответы на эту проблему не использовали
CSS-сетка - это способ создания форм в 2019 году, поскольку вы можете размещать метки перед входными данными без дополнительных разделов, промежутков, промежутков со звездочками и других реликвий.
Вот куда мы идем с минимальным CSS:
HTML для вышеупомянутого:
Также можно добавить текст-заполнитель, что настоятельно рекомендуется. (Я просто отвечаю на эту среднюю форму).
Теперь о переменных CSS:
CSS для элементов формы:
Сама форма должна быть в сетке CSS:
Значения для столбцов могут быть установлены как
1fr auto
или1fr
с чем угодно, например<p>
тегами в форме, установленными на диапазон 1 / -1. Вы меняете переменные в своих медиа-запросах, чтобы поля ввода отображались на всю ширину на мобильном устройстве и, как указано выше, на рабочем столе. Вы также можете изменить размер сетки на мобильных устройствах, если хотите, используя метод переменных CSS.Когда поля действительны, вы должны получить зеленую галочку вместо звездочки.
SVG в CSS - это способ избавить браузер от необходимости совершать круговой обход сервера для получения изображения звездочки. Таким образом вы можете точно настроить звездочки, примеры здесь расположены под необычным углом, вы можете отредактировать это, так как значок SVG выше полностью читаем. Окно просмотра также можно изменить, поместив звездочку над или под центром.
источник
источник
В этом примере перед меткой помещается символ звездочки, чтобы обозначить этот конкретный ввод как обязательное поле. Я установил свойства CSS с помощью% и em, чтобы моя веб-страница была отзывчивой. Вы можете использовать пиксели или другие абсолютные единицы, если хотите.
источник
Что вам нужно: обязательный селектор - он выберет все поля с атрибутом 'required' (поэтому нет необходимости добавлять какие-либо дополнительные классы). Затем измените стиль ввода в соответствии с вашими потребностями. Вы можете использовать селектор ': after' и добавить звездочку способом, предложенным среди других ответов
источник
Вы можете достичь желаемого результата, инкапсулируя HTML-код в теге div, который содержит «required» класс, за которым следует класс «form-group». * Однако это работает, только если у вас есть Bootstrap.
источник
Для тех, кто попал сюда, но имеет jQuery:
источник