CSS: чем отличаются class от id. Разница между class и id на примере тега div

Контролировать внешний вид HTML-элементов на странице можно при помощи нескольких селекторов. ID и CSS class являются наиболее распространенными, которые помогают не только в создании разметки HTML-документов , но и в их оформлении (стилизации ).

Как применять CSS-селектор ID

Селектор ID используется для обозначения отдельного HTML-элемента с помощью уникального значения атрибута id . В следующем примере представлен элемент

, значением атрибута id которого является header .

В CSS к этому div-элементу можно применять различную стилизацию:

#header { width: 100%; height: 80px; background: blue }

Не забывайте использовать знак # (хэштег ) перед именем. Подробнее об этом можно узнать здесь и здесь .

Как применять CSS-селектор class

Селектор class HTML CSS используется для выделения отдельного или целой группы HTML-элементов с идентичным значением атрибута class .

В CSS к нескольким абзацам можно применять различную стилизацию:

Content { margin: 20px 0; line-height: 24px; font-size: 15px }

Не забудьте использовать знак. (точка ) перед названием класса при объявлении CSS-правила . Подробнее об этом можно узнать здесь и здесь .

Чем отличаются CSS Class и ID

Cелектор id используется для отдельных элементов страницы (#header ), в то время как селектор class (.content) – для нескольких. Так как значение id задается лишь одному HTML-элементу . Другими словами, у нескольких элементов не может быть одинакового значения id в рамках одной отдельной страницы. Например, у вас может быть только один элемент с id #header , или же один элемент с id #footer .

Одинаковое значение class можно задавать одному или нескольким HTML-элементам . К примеру, у вас может быть несколько абзацев с классом .content или несколько ссылок с классом .external .

Следующий пример поможет лучше понять различия между CSS class и id , а также понять, как правильно использовать:

Это наш первый абзац.

Это наш второй абзац.

Это наш третий абзац.

Приведенную выше HTML-разметку мы начали с div-элемента container . Мы задали ему id (#container ), так как на нашей странице будет размещаться единственный контейнер. Внутри него мы размещаем разделы меню (#menu ) и контента (#content ). Как и в случае с контейнером, у нас будет только одно меню, и один раздел с контентом. Внутри menu располагаются четыре ссылки , но к каждой из них мы применили CSS class (.link ). Точно также мы применили класс (.text ) к каждому абзацу в div-элементе content .

Если нужно стилизовать эти элементы, то можно использовать следующий пример:

#container { width: 1080px; margin: 0 auto; background: #eee } #menu { height: 90px; background: #ddd } .link { color: #000; text-decoration: none } #content { padding: 20px } .text { font-size: 15px }

Когда используется class, а когда id?

ID используется для отдельных элементов, которые встречаются на странице только один раз. Например, заголовок, подвал, меню и т. д. Селектор class используется для одного или нескольких элементов, которые встречаются на странице несколько раз. Например, абзацы, ссылки, кнопки, элементы ввода. И хотя вы можете использовать class для отдельного элемента, но лучше использовать эти селекторы по назначению.

Также следует учитывать, что у HTML-элемента может быть указан и id , и class . Предположим, что на странице имеется два блока с одинаковым размером и стилизацией, но с разным позиционированием. В таком случае можно применить один и тот же класс к этим блокам для изменения размеров и стилизации, а затем использовать отдельный ID-селектор к каждому блоку, чтобы задать им разное позиционирование.

Элементы также можно привязывать одновременно к нескольким классам. Это очень удобно, когда нужно применить стилизацию к отдельной группе элементов определенного типа. Например, имеется класс .content , который применен ко всем абзацам. Если нужно будет добавить границу или любую другую стилизацию к нескольким отдельным абзацам, то можно сделать это при помощи дополнительного CSS p class .bordered :

Этот пункт не имеет границ.

Этот пункт имеет границы.

Обратите внимание на пустое пространство между двумя именами классов в атрибуте class второго абзаца. Ниже приведен пример CSS-кода :

Content { margin: 10px; font-size: 15px; color: blue } .bordered { border: 2px solid #222 }

Важно правильно применять id и CSS class , так как их неправильное использование может привести к ошибкам в отображении HTML-кода .

Перевод статьи “CSS Class vs ID: Which One to Use ” был подготовлен дружной командой проекта .

Хорошо Плохо

Один из самых частых вопросов в процессе знакомства с новыми стандартами - в чем разница между атрибутами HTML-элементов "id" и "class". Ведь эффект, вроде бы, одинаковый.

Одинаковый эффект у них только в самых простых случаях использования в CSS. На самом деле отличий полно.

Суть

id уникальное собственное имя элемента на странице, то есть на странице не должно быть нескольких элементов с одним id. Например блоку с шапкой сайта можно дать id="title" . class вольный признак, который дается обычно нескольким элементам, чтобы отличать их от других. Например, картинкам, которые просто сопровождают текст, можно дать class="decor" , а картинкам, которые важны для понимания текста - class="content" .

Следствия

Из этой сути прямо или косвенно вытекают остальные отличия, которые видны и в HTML, и в CSS, и в скриптах.

Якорные ссылки Если нужно поставить ссылку на какой-то элемент в странице, то ему достаточно дать id (

...

) и ссылаться на него якорем (http://site/path/#about). Это, кстати, предпочтительный способ взамен старого
. Множественные признаки

Элементу можно задавать несколько классов через пробелы: . Причем их можно использовать и по отдельности:

/* все important элементы */ .important {color:red;}

И в сочетании:

/* элементы с important и centered одновременно */ .important.centered {border:solid black 1px;}

Обратите внимание, что между классами в CSS-правиле нет пробела.

Разный вес в CSS

У каждого правила в CSS есть "вес", по которому определяется порядок их применений. У id этот вес больше. Поэтому если у элемента задан и id, и class:

...

То из двух правил

#about {color:green;} .important {color:red;}

Выиграет первое, цвет заголовка будет зеленым. (Веса правил - это отдельная песня, о ней будет статья в свое время.)

Поиск в скрипте Элемент с "id" можно легко найти в скрипте с помощью функции document.getElementById() . Для классов такой функции нет.

Эта статья - часть находящегося в процессе написания цикла под рабочим названием "Учебник". Я рекомендую ознакомиться и с другими статьями, которые можно найти в категории "Учебник ", где они сейчас собраны в обратном хронологическом порядке.

Сегодня уже трудно найти сайт, где не использовался бы такой нужный и важный тег

. Посмотрите код любого сайта, который найдете в интернете и увидите, что тег
чаще других тегов встречается в HTML документе. Причина такой популярности – это блочная верстка. Иными словами с помощью блочного тега
верстаются сайты.

Благодаря этому тегу весь HTML код документа имеет наглядную и логически понятную структуру. В которой легко разобраться не только верстальщику, но и другим специалистам, совместно работающим над одним проектом. Однако тег

без своих «сателлитов» - селекторов id и class ничего не стоит.

Классы и идентификаторы

Классы (class) и идентификаторы (id) выполняют одни и те же задачи. Они задают разные стили для тега

, как во внешнем CSS файле, так и внутри документа, через тег style . Тут надо пояснить, что они работают в связке не только с тегом
, но и со многими другими тегами.

Рассмотрим на примере ниже следующий код HTML-разметки:

Учиться никогда не поздно!


Повторение мать учения

Зададим внешний вид HTML документу с помощью CSS файла стилей:

/* знак # перед именем - обозначение id */

#content {
padding: 20px;
font-size: 20px;
color: black;
background: #ddd;
border: 1px solid black;
width: 250px;
}

/* (.) перед именем обозначает class */

Content {
padding: 20px;
font-size: 20px;
color: black;
background: #ddd;
border: 1px solid black;
width: 250px;
}

Имена id и class задает сам разработчик произвольно, исходя из смысловой нагрузки. Мы назвали их просто content . Нельзя давать имена русскими буквами, можно использовать цифры, символ дефиса (-) и подчеркивания (_) .

Мы видим два абсолютно одинаковых блока. К верхнему блоку применяется селектор id , а к нижнему блоку применятся селектор class . Вы спросите, где же разница между div-ами id и class ? Чисто внешне, пока никакой разницы, до тех пор, пока мы применяем по одному id и class на одну страницу.

В чем тогда различие между class и id ?

Различие кроется в самом названии id , значит идентификатор, то есть уникальный. Главное отличие от классов в том, что селектор id может использоваться на странице только один раз. Селектор class , наоборот может применяться на одной странице бесконечное количество раз.

Например:

Content /* может применяться к любым тегам */
div.content /* применяется только к тегам div с классом.content */
div#content /* для id такая запись не имеет смысла, он уникален */

Так же стоит отметить, что у id свойств выше приоритет, чем у свойств классов.


красный текст

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

Кроме того конкретному тегу можно задавать несколько классов, перечисляя их через пробел. Такая система позволяет не создавать лишних классов, а использовать их более эффективно. У id селектора разумеется такой возможности нет.

Есть еще одно важное отличие, оно касается программистов. Если планируется обратиться к элементу HTML документа через язык JavaScript , то обязательно надо применять id , реализовывать это через классы намного сложнее.

Когда лучше использовать id , а когда class ?

Если на странице какой-нибудь из элементов, например, шапка сайта, меню, кнопка, используется только один раз, то надо применять id . Селектор class применяется к одному тегу или к разным тегам столько раз, сколько раз они прописаны на странице. Например, картинки, маркированные списки, абзацы.

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