CSS применяет стиль к пустым входам ([value = '']) - PullRequest
8 голосов
/ 17 января 2011

Я хотел бы применить специальный стиль ко всем входам в моей форме, которые являются обязательными и пустыми при этом.

Это работает, когда я пишу в моем CSS

input[required='required'] {
    bla-bla-bla;
}

но это не работает, когда я пишу

input[value=''] {
   bla-bla-bla;
}

Я знаю, что могу сделать это с помощью jQuery, но я бы хотел сделать это на чистом CSS, если это возможно.

Можно ли это сделать?

Заранее спасибо,
Тимофей.

Ответы [ 3 ]

7 голосов
/ 27 марта 2018

Для этого вы можете использовать псевдоселот : недействительно - он будет соответствовать входу только в случае неудачной проверки браузера для элемента.Если вы установите элемент обязательный , он будет недействительным, пока он пуст.

И все браузеры модеров поддерживают этот CSS-класс: Совместимость браузера

input:invalid {
  border-color: red;
}
<input type="text" required>
6 голосов
/ 17 января 2011

Поиск пустых вводов в стиле css и обнаружение следующего:

Соответствие пустому полю ввода с использованием CSS

Вам необходимо использовать JavaScript.

Чтобы использовать стиль CSS, вам нужно будет ввести атрибут: value='' в HTML, но тогда CSS будет совпадать независимо от того, изменится ли значение в середине сеанса.

4 голосов
/ 28 августа 2018

Если вам не нужно поддерживать более старые версии IE, вы можете установить для атрибута placeholder на входе что-то (может быть пробел, но должно быть что-то) и использовать :placeholder-shown для нацеливания на этот ввод.

<input type="text" class="custom-input" placeholder=" ">
.custom-input:placeholder-shown {
    /* Your rules */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...