2015-05-30 2 views
3

В онлайн-учебном пособии мне недавно было предложено создать класс для навигационных элементов под названием «nav». Я новичок в CSS, но это только я, или это избыточная/запутанная/плохая практика?В HTML5 + CSS есть <nav class = "nav"> redundant?

+2

Да, избыточный. –

+2

По-моему, это не избыточно, но, в конце концов, до человека, написавшего код, как они хотят управлять стилем. Мне лично нравится делать класс и использовать его вместо –

+0

Все зависит от вашей разметки html. Если по какой-то причине у вас есть несколько элементов '

ответ

1

Это не избыточно. Элемент DOM nav отличается от класса CSS nav.

Если вы хотите, чтобы стиль этого элемента по классу, вы должны использовать эту декларацию стиля (например):

.nav { background-color : #F00; } 

если бы он был в стиль элемента типа было бы:

nav { background-color : #F00; } 

Это может показаться тривиальным, но этот период . имеет значение. Это означает, что вы идентифицируете элемент по классу, а не по имени элемента. Если вы используете класс синтаксис (с .), то можно было бы написать:

<div class="nav"></div> 

Это покажет на красном фоне, если вы включили определение класса, но если вы не в стиле элемент типа непосредственно.

В простых приложений, которые вы можете быть в состоянии уйти с непосредственно стилизации типов элементов (например, <nav>), в отличие от классов (например class="nav"), но, как вы получите более сложные макеты, которые вы собираетесь хотите использовать классы. Кроме того, если вы используете селекторную библиотеку, например jQuery, или document.querySelect(), у вас могут быть веские причины для указания класса.

Если вы действительно можете знать, что все элементы <nav> могут быть одинаковыми на всех ваших страницах, тогда обязательно используйте селектор элементов, но чтобы оставить себе гибкость, лучше всего использовать классы.

+1

Отличное подробное описание, спасибо. – JBeck

3

NO Это не избыточно.

ДА это излишний если вы думаете, в вашем конкретном случае, если вы хорошо с nav{ /*blaah blaah*/ }

<nav> является семантическим HTML5 тег, который представляет сторону SEO навигации. Навигация - это все, что вы хотите. Так что в случае, если у вас есть несколькоnav элементов на нашей странице, и вы в порядке с таинственными стилями непосредственно тег элемент с помощью nav Буду рад видеть это.

+2

Это правильный ответ. Лучшая практика говорит, что вы действительно никогда не должны стилизовать фактический элемент. Вы всегда должны использовать классы. Это позволяет использовать будущий масштаб и лучше писать CSS. –

+1

Хорошая информация о том, как SEO обрабатывает '

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