Селектор CSS для <input type = "?"

Есть ли какой-либо способ с CSS ориентировать все входы на основе их типа? У меня есть класс отключений, который я использую для различных отключенных элементов формы, и я устанавливаю цвет фона для текстовых полей, но я не хочу, чтобы мои флажки получали этот цвет.

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

Я нацелен на IE7+. Поэтому я не думаю, что могу использовать CSS3.

Edit

С CSS3 я мог бы сделать что-то вроде?

INPUT[type='text']:disabled, что еще лучше избавится от моего класса...

Edit

Хорошо спасибо за помощь! Итак, вот селектор, который изменяет все текстовые поля и области, которые были отключены, не требуя установки каких-либо классов, когда я начал этот вопрос, я никогда не думал, что это возможно...

INPUT[disabled][type='text'], TEXTAREA[disabled]
{   
    background-color: Silver;
}

Это работает в IE7

Ответ 1

Да. IE7 + поддерживает селектора атрибутов:

input[type=radio]
input[type^=ra]
input[type*=d]
input[type$=io]

Элементный ввод с типом атрибута, который содержит значение, которое равно, начинается с, содержит или заканчивается определенным значением.

Другие безопасные (IE7 +) селектора:

  • Родительский > ребенок, который имеет: p > span { font-weight: bold; }
  • Предшественник ~ элемента, который: span ~ span { color: blue; }

Что для <p><span/><span/></p> эффективно даст вам:

<p>
    <span style="font-weight: bold;">
    <span style="font-weight: bold; color: blue;">
</p>

Дальнейшее чтение: Совместимость браузера CSS на quirksmode.com

Я удивлен, что все остальные думают, что это невозможно. Селекторы атрибутов CSS уже здесь уже давно. Думаю, это время, когда мы очищаем наши .css файлы.

Ответ 2

К сожалению, другие плакаты верны, что вы ... на самом деле, как исправлено kRON, вы в порядке с вашим IE7 и строгим документом, но большинство из нас с требованиями IE6 сводятся к JS или ссылкам на классы для этого, но это свойство CSS2, только одно без достаточной поддержки от IE ^ h ^ h браузеров.

Из полноты селектор типа - аналогичен xpath - формы [attribute=value], но существует много интересных вариантов. Он будет достаточно мощным, когда он будет доступен, хорошо держать голову в IE8.

Ответ 3

Вы можете сделать это с помощью jQuery. Используя их селекторы, вы можете выбрать атрибуты, такие как тип. Однако это требует, чтобы у ваших пользователей включен Javascript и дополнительный файл для загрузки, но если он работает...

Ответ 4

Извините, короткий ответ - нет. CSS (2.1) будет только отмечать элементы DOM, а не их атрибуты. Вам нужно будет применить определенный класс к каждому входу.

Bummer Я знаю, потому что это было бы невероятно полезно.

Я знаю, вы сказали, что предпочтете CSS по JavaScript, но вы все равно должны использовать jQuery. Он обеспечивает очень чистый и элегантный способ добавления стилей к элементам DOM на основе атрибутов.