Есть ли способ с помощью CSS настроить все входные данные в зависимости от их типа? У меня есть отключенный класс, который я использую для различных отключенных элементов формы, и я устанавливаю цвет фона для текстовых полей, но я не хочу, чтобы мои флажки получали этот цвет.
Я знаю, что могу сделать это с отдельными классами, но я бы предпочел использовать CSS, если это возможно. Я уверен, что могу установить это в javascript, но снова ищу CSS.
Я нацелен на IE7 +. Поэтому я не думаю, что могу использовать CSS3.
редактировать
С CSS3 я мог бы сделать что-то вроде?
INPUT[type='text']:disabled
это было бы даже лучше вообще избавиться от моего класса ...
редактировать
Хорошо, спасибо за помощь! Итак, вот селектор, который изменяет все текстовые поля и области, которые были отключены, не требуя установки каких-либо классов, когда я начал этот вопрос, я никогда не думал, что это возможно ...
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
Это работает в IE7
источник
Ответы:
Да. IE7 + поддерживает селекторы атрибутов:
Ввод элемента с типом атрибута, который содержит значение, равное, начинается с, содержит или заканчивается определенным значением.
Другие безопасные (IE7 +) селекторы:
p > span { font-weight: bold; }
span ~ span { color: blue; }
Что
<p><span/><span/></p>
даст вам:Дополнительная литература: Совместимость браузера с CSS на сайте quirksmode.com
Я удивлен, что все думают, что это невозможно. Селекторы атрибутов CSS существуют уже некоторое время. Думаю, пора очистить наши файлы .css.
источник
К сожалению , другие плакаты правильно , что вы... на самом деле , как исправляется Крон, вы все в порядке с IE7 и строгого док, но большинство из нас с требованиями IE6 сводится к JS или ссылки класса для этого, но это свойство CSS2, только одно без достаточной поддержки браузерами IE ^ h ^ h.Из-за полноты, селектор типа - аналогично xpath - имеет форму,
[attribute=value]
но существует много интересных вариантов. Когда он будет доступен, он будет очень мощным, хорошо держать в голове IE8.ссылка w3
ссылка на поддержку браузера
источник
Вы можете сделать это с помощью jQuery. Используя их селекторы, вы можете выбирать по атрибутам, например по типу. Однако для этого требуется, чтобы у ваших пользователей был включен Javascript и загружался дополнительный файл, но если он работает ...
источник
К сожалению, краткий ответ - нет. CSS (2.1) будет размечать только элементы DOM, но не их атрибуты. Вам нужно будет применить определенный класс к каждому входу.
Я знаю облом, потому что это было бы невероятно полезно.
Я знаю, что вы сказали, что предпочитаете CSS, а не JavaScript, но вам все же следует рассмотреть возможность использования jQuery. Он обеспечивает очень чистый и элегантный способ добавления стилей к элементам DOM на основе атрибутов.
источник