2010-09-02 2 views
4

Должны ли мы использоватьcss - использовать селектор атрибутов или задать имя класса?

css: input[type='submit']{...} 

или установить имя класса для ввода тега?

html: <input type="submit" class="submit"> 
css: .submit{...} 
+0

Мне нравится вопрос, мне также хотелось бы знать, что здесь считается «лучшей практикой» и почему. Я не особо обеспокоен проблемами совместимости со старым IE. В частности, меня интересует, что такое «правильный» способ стилирования тега '': нормально ли выбрать '[role = button]', или это необходимо добавить атрибут 'class'? @StoneHeart, можете ли вы изменить свой вопрос, чтобы добавить этот конкретный пример с атрибутом 'role', если кому-то еще есть что добавить в дискуссию? – Alexey

ответ

5

Вы должны использовать имя класса, а селектор атрибута , если вы хотите поддерживать IE6.

Эта статья интересна:

+2

Но если IE6 устарел даже от поставщика, почему мы должны продолжать его поддерживать? Наступает момент, когда старые машины утилизируются, старые дороги перекашиваются, старые водоводы заменяются, а старые телефонные линии ... ждут, они никогда не ремонтируются. ~~ Я понимаю, что это религиозная дискуссия, поддержка IE6 или не поддержка IE6, но для большинства людей сегодня IE6 не является веской причиной придерживаться обратной совместимости. Но +1 для действительной точки. Я просто не согласен с этим. – jcolebrand

+0

@ drachenstern: Это личный выбор, хотите ли вы поддерживать IE6 или игнорировать его. Я поддерживаю его там, где это возможно :) – Sarfraz

+1

+1 to drachenstern. Люди должны позволить IE6 умереть. Меня все еще удивляет тот факт, что некоторые люди действительно используют его. –

0

Да, Как Sarfraz сказал, что если вы идете на совместимость браузера вы должны пойти на имя класса, но селектор атрибута предоставляет широкий спектр контроля над любые элементы.

+0

Что вы подразумеваете под широким диапазоном контроля? – Sarfraz

+2

Я думаю, что он означает, что селектор атрибутов позволяет вам делать более гранулированные выборки без необходимости перетаскивать ваш html дополнительными/избыточными классами. –

0

ИМО, все зависит от того, какой стиль вы применяете - в дополнение к общим факторам поддержки браузера, о которых другие уже упоминали, конечно. Например, если то, что вы применяете, является абсолютно основной частью вашего дизайна (например, макета), то, вероятно, безопаснее придерживаться названия класса.

Однако, если вы применяете это «декоративный расцвет» и, в частности, если это CSS, который даже не поддерживается в старых версиях IE (подумайте о граничном радиусе, для начала), то это much лучше сохранить свою разметку в чистоте и использовать селектор атрибутов.

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

Смежные вопросы