Должен ли я использовать CSS:disabled псевдокласс или [disabled] селектор атрибутов или это вопрос мнения?
Я пытаюсь создать стиль отключенного ввода. Я могу использовать:
.myInput[disabled] { }
или
.myInput:disabled { }
является ли селектор атрибутов современным способом CSS3 и способом продвижения вперед? Я использовал псевдо-класс, но я не могу найти никакой информации о том, являются ли они старым способом и не будут поддерживаться или они оба равны, и вы можете использовать все, что вам больше нравится.
у меня нет необходимости поддерживать старые браузеры (это приложение интрасети), так что это:
- атрибут новее и лучше
- псевдо-класс по-прежнему путь
- в зависимости от того, что вам больше нравится
- есть техническая причина использовать один над другим
2 ответа:
является ли селектор атрибутов современным способом CSS3 и способом продвижения вперед?
- атрибут новее и лучше
нет; на самом деле, селекторы атрибутов были вокруг с CSS2 и
disabled
сам атрибут существует с HTML 4. Насколько я знаю,:disabled
псевдо-класс был введен в селекторы 3, что делает псевдо-класс новые.
- есть техническая причина использовать один над другим
да, в какой-то степени.
С помощью селектора атрибутов вы полагаетесь на знание того, что документ, который вы стилизуете, использует
disabled
атрибут для указания отключенных полей. Теоретически, если вы стилизовали что-то, что не было HTML, отключенные поля не могут быть представлены с помощью
оказывается, что Internet Explorer 10 и 11 не распознают
:disabled
псевдокласс на некоторых элементах и отлично работает только с синтаксисом селектора атрибутов.#test1:disabled { color: graytext; } #test2[disabled] { color: graytext; }
<form> <fieldset id="test1" disabled>:disabled</fieldset> <fieldset id="test2" disabled>[disabled]</fieldset> </form>
код, обрезанный выше, отображается в IE следующим образом:
пока вы только стиль
input
элементы, вы должны быть в порядке в любом случае. Все-таки это хороший совет, чтобы проверить конечный результат во всех браузерах, которые вы хотите поддержка.