sonyps4.ru

Все значения атрибута class. Идентификаторы и классы

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

Их существует семь видов — тега, класса (class), Id, универсальный, атрибутов, а так же псевдоклассов и псевдоэлементов. Многовато, не правда ли? Ну, ничего, потихоньку разберем их все и при том на подробных примерах.

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

Селекторы тегов и классов (class) в языке CSS

Прежде, чем изучать стилевые правила, необходимо будет узнать, как и по каким принципам задавать те метки, по которым браузер поймет, к каким же именно элементам Html кода нужно их применять. Селекторы бывают разные. Самые простые, с точки зрения понимания, используют названия тегов, к которым должны будут применяться написанные после них правила языка CSS.

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

В приведенном примере в первой строчке показан селектор тега (элемента), который предписывает использовать красный цвет шрифта для всех контейнеров Div.

Содержимое обычного контейнера Div

Во второй строчке мы видим пример сложного селектора, в котором у нас появляется такой новый элемент, как класс (class) . Он прописывается в качестве . В качестве значения для class мы можем использовать произвольное имя, используя символы ,,,[_],[-].

Но кроме class в языке стилевой разметки используется еще и Id. Чем отличается класс от Id? Значение последнего должно быть уникальным, т.к. Id является уникальным идентификатором для Html тега и его название (значение) может использоваться в коде только один раз.

А значение для class не является уникальным и может использоваться для сколь угодно большого количества элементов в коде. Т.е. разные теги (Div, P, H1 и т.д) могут иметь одинаковое значение своего атрибута class:

А как он используется в селекторах CSS? Оказывается, что его имя пишется с поставленной впереди точкой .

Поэтому, когда мы видим в CSS коде что-то начинающееся с точки, то сразу понимаем, что речь идет про класс. Если рассматривать пример приведенный на скриншоте, то теперь во всех элементах Html кода, где будет прописан «class» со значение «Blue», текст будет покрашен в синий цвет.

Но это произойдет вовсе не из-за того, что название класса мы выбрали «Blue». Можно было назвать его как угодно (хоть «xyz»), а цвет в нашем примере задается именно приписанным для селектора с этим классом. Надеюсь, это понятно? Давайте поменяем название (значение) class в примере:

Абзац с текстом

Абзац с текстом

Т.е. теперь у нас класс XYZ и прописанное для него правило:

Xyz {color:blue}

покрасило текст абзаца в синий цвет. Этот пример еще раз подчеркивает, что название для атрибута class можно использовать любое. Однако, продолжим.

Давайте еще раз посмотрим на примере, как используются селекторы тегов и классов в CSS. Представим, что у нас прописаны следующие стилевые правила:

Div {color:red} div.a123 {color:green} .xyz {color:blue}

А так же представим, что в Html коде у нас присутствуют следующие элементы:

В соответствии с прописанными правилами для указанных селекторов содержимое приведенных элементов Html кода должно будет выглядеть так:

А теперь давайте посмотрим, почему именно так браузер интерпретировал стилевое оформления данных элементов Html кода. Для первого контейнера Div, в котором не прописано никакого class, будет действовать CSS правило применимое для всех контейнеров: div {color:red}. Следовательно, его содержимое будет окрашено в красный цвет. Что и требовалось показать.

В теге второго Div у нас прописан класс «a123». В этом случае будут применяться CSS правила соответствующие «div.a123» (ибо у нас как раз имеется в наличии тег Div с прописанным в нем атрибутом class="a123"). Поэтому содержимое второго контейнера будет окрашено в зеленый цвет.

Но вы, наверное, заметили, что ко второму Div можно ведь применить и первое CSS правило «div {color:red}», ибо оно предназначено для всех контейнеров без исключения. Получается противоречие, которое решается в CSS путем ввода понятия .

Мы с вами об этом поговорим подробно чуть позже, ну, а сейчас я просто скажу, что приоритет «div.a123» (для второго Div в рассматриваемом примере) будет выше.

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

Давайте двигаться дальше. В приведенном примере у нас дальше идет тег абзаца P, в котором прописан class="a123". Получается так, что данный элемент не попадает ни под один из трех прописанных нами селекторов (все три мимо него промахнулись).

У него есть только пересечение со вторым вариантом, однако этот селектор будет использоваться только для тегов «Div» с классом «a123», но никак не для тега абзаца P. В результате цвет текста в этом абзаце останется принятым по умолчанию, т.е. черным.

Дальше в примере у нас следует элемент параграфа с class="xyz". Для него будет применяться последнее CSS правило «.xyz {color:blue}». Следовательно, текст этого абзаца будет окрашен в синий цвет. Тут, думаю, все понятно.

Универсальный селектор и уникальный идентификатор ID

Теперь давайте перейдем к Id, о которых я уже успел упомянуть. Когда мы в CSS коде видим что то со стоящей впереди решеткой (хешем) , то это означает, что мы имеем дело с Id:

Обычно этот селектор пишут без упоминания тега , к которому он относится (первый вариант на приведенном чуть выше примере), хотя второй вариант написания тоже допустим, но употребляется редко. Связано это с тем, что значение атрибута Id в коде будет уникальным, а значит не может быть двух элементов с одинаковыми значениями Id. Т.е. нет смысла уточнять, хотя это не возбраняется.

Поэтому обычно просто пишут хеш (решетку), а сразу за ним значение (название) атрибута Id. Предположим, что у нас прописано следующее правило для Id:

#back {color:red}

а в коде имеется следующий фрагмент:

который в результате применения к нему правила, стоящего после «#back», будет интерпретирован браузером так:

Контейнер Div с уникальным идентификатором

Так же в CSS предусмотрен и универсальный селектор обозначаемый звездочкой , которая показывает, что данное правило будет применяться вообще к любому элементу в коде:

* {color:black}

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

Селекторы атрибутов и их будущее в современном CSS

Все описанные выше варианты (тега, класса, Id и универсальный) будут работать абсолютно во всех браузерах. Но существуют еще варианты, работающипе не везде.

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

Как вы, наверное, помните, в языке Html внутри тегов мы можем использовать различные атрибуты, которые позволяют придать определенные свойства содержимому этих самих элементов. Поэтому было бы логично и в языке CSS использовать в качестве селекторов не только названия тегов, но и названия атрибутов.

Собственно, мы это уже делали, когда рассматривали class и Id, ибо они по сути являлись атрибутами каких-то тегов. Просто Айди и Класс имеют очень большое значение в верстке и их вынесли в отдельные группы, каждый со своим собственным синтаксисом.

А как использовать в селекторах остальные существующие в языке Html атрибуты (не Id и не class)? Довольно просто — заключать их в квадратные скобки :

{color:green}

Теперь любой тег в Html коде, у которого будет прописан «title», будет иметь цвет текста зеленый.

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

Как вы видите из примера, не важно, имеет ли атрибут указанный в селекторе какое-либо значение или же он пустой. Но это еще далеко не все, что можно с ним вытворять, ибо это просто песня.

Можно в них указывать не только название атрибута, но и его значение :

{color:green}

В результате CSS правила, прописанные для такого селектора, будут применяться только для того тега, у которого имеется «title» со значением «Первый параграф» (в нашем примере это будет вторая строчка):

Описанный пример представлял из себя строгое равенство, но можно написать этот селектор и так:

{color:green}

Т.о. данное CSS правило применится только к тем элементам Html кода, у которых в «title» содержится слово «параграф» (в нашем примере это будут вторая и третья строки):

Синтаксис селектора атрибута интерпретирует «~=» как «содержится слово целиком». Например, для элемента с title="Вторым параграфом" CSS правило «color:green» уже применяться не будет.

Но можно вместо этого поставить «*=» и тогда будут учитываться не только отдельные слова указанные в селекторе, но и части слов (любой кусок текста, содержащийся в любом месте атрибута):

{color:green}

В этом случае и для элемента с title="Вторым параграфом" сработает правило «color:green» и его текст подкрасится зеленым цветом. Надеюсь, что это понятно. Есть еще такой оператор как «^=» (все что начинается с указанного в скобках значения), который помогает создать подобный селектор атрибута:

{color:red}

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

Следовательно, все внешние ссылки будут начинаться с «http», а внутренние могут задаваться в относительном виде без использования «http». Т.о. прописанный в нашем примере селектор позволит окрасить все внешние ссылки на сайте (все абсолютные) в красный цвет. Ну, а относительные, не содержащие «http», останутся того цвета, который был принят для них по умолчания. По моему супер!!!

Как вы можете видеть, селекторы атрибутов дают нам массу возможностей и то, что они еще широко не используются, является заслугой очень бедной и обиженной судьбой компании Мелкософт, а в частности их детища IE 6. Но потихоньку они начинают применяться в CSS и вскоре, конечно же, пробьют себе дорогу в жизнь.

Да, есть еще один оператор «$=» — все, что заканчивается на указанное в кавычках значение:

{color:green}

В результате в зеленый цвет будут покрашены вторая и третья строка из нашего первого примера, т.к. значения «title» у них заканчивается на «раф». Вот так вот замечательно работали бы селекторы атрибутов в современном языке CSS, если бы не существовал до сих пор определенный процент пользователей юзающих браузер IE 6.

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

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Селекторы псевдоклассов и псевдоэлементов в CSS (hover, first-child, first-line и другие), отношения между тегами Html кода
Приоритеты в Css и их повышение за счет Important, комбинация и группировка селекторов, пользовательские и авторские стили
List style (type, image, position) - Css правила для настройки внешнего вида списков в Html коде
Background в CSS (color, position, image, repeat, attachment) - все для задания цвета фона или фоновой картинки Html элементов
CSS - что это такое, как таблицы каскадных стилей подключаются к Html коду с помощью Style и Link
Единицы размеров (пиксели, Em и Ex) и наследование правил в CSS

Задаёт стилевой класс, который позволяет связать определённый элемент со стилевым оформлением. В значении допускается указывать сразу несколько классов, разделяя их между собой пробелом.

Синтаксис

class="<имя класса>"

Значения

В HTML4 имена классов могут содержать в себе латинские буквы (A–Z, a–z), цифры (0–9), символ дефиса (-) и подчёркивания (_) и не должны начинаться с цифры. Использование русских букв в классах недопустимо. В HTML5 эти ограничения сняты, но для совместимости со старыми браузерами и JavaScript рекомендуется придерживаться данных правил.

Значение по умолчанию

Пример

Атрибут class

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

Для исключения засветки экрана дисплея световыми потоками оконные проемы снабжены светорассеивающими шторами.

Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация ) - спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация ) - группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация ) - на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект ) - более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor"s draft (Редакторский черновик ) - черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации ) - первая черновая версия стандарта.

Особняком стоит живой стандарт HTML (Living ) - он не придерживается традиционной нумерации версий, поскольку находится в постоянной разработке и обновляется регулярно.

×

Браузеры

В таблице браузеров применяются следующие обозначения.

Атрибуты class и id

Атрибут CLASS определенно являются самым часто используемым атрибутом в HTML документе. Однако не стоит этим злоупотреблять. Наличие атрибута в каждом, или почти каждом, элементе документа говорит о плохом стиле. CSS должен быть грамотно составлен с тем, чтобы атрибутов CLASS в документе было как можно меньше. Например, если ячейки таблицы документа должны обладать некими одинаковыми свойствами, то эти свойства логичнее будет задать с помощью контекстного селектора (см. 5.2), а не прописывая атрибут CLASS для каждой ячейки таблицы, и уж тем более не определяя эти свойства для всех ячеек всех таблиц.

CSS для ячеек таблицы

table.special-table td {

border: 1px solid #000000;

Существует возможность перечисления нескольких классов в качестве значения для атрибута CLASS. Все они будут применятся одновременно, по правилам приоритетов для селекторов, описанных в разделе 5.6. Названия классов должны быть разделены пробелом, как это показано в следующем примере:

Указание нескольких классов для одного элемента

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

Неиспользуемые или редко используемые элементы и атрибуты

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

Элемент FONT

С некоторых пор, элемент FONT считается неприемлемым для использования, что подтверждает консорциум W3C. Дело в том, что элемент FONT не является элементом определяющим структуру документа, но отвечает только за стиль отображения. Так как все стили должны быть вынесены в CSS для того, чтобы HTML документ в большей степени отражал структуру документа и в меньшей степени его стиль, то использование элемента FONT создает дополнительные трудности при редактировании документов и их преобразовании к другим спецификациям. Поэтому никогда не используйте элемент FONT.

Элемент HR

Элемент HR (horizontal rule) предназначен для отображения горизонтального разделителя в виде линии. В документах строгого дизайна элемент HR практически не используется по причине его специфического отображения различными браузерами. Старайтесь не использовать этот элемент без особой необходимости.

Элемент MAP

Элемент MAP создан для нанесения координатной сетки на изображение, выделяя таким образом, области картины, являющиеся гиперссылками.

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

Элемент FRAME

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

Атрибут NOWRAP

Атрибут NOWRAP предназначен для указания того, что текст внутри элемента не должен разбиваться на несколько строк.

С некоторых пор, атрибут NOWRAP весьма непопулярен, на смену ему пришло CSS свойство white-space со значением nowrap. Используйте атрибут NOWRAP для браузеров, которые не поддерживают CSS свойство white-space. Как правило, это уже устаревшие браузеры вроде Internet Explorer 5.0 или Netscape 4. В случае XHTML, атрибут NOWRAP, как и любой другой атрибут, по правилам XML обязательно должен иметь значение.

Атрибут NOWRAP в XHTML

Атрибут ROWSPAN

Атрибут ROWSPAN элемента TD указывает, сколько строк таблицы должны быть объединены в одну. Из-за неоднозначного понимания браузерами, этот атрибут делает себя крайне непопулярным. Старайтесь избегать использования этого атрибута в своих документах. Следуя этому правилу вы будете более уверены в том, что ваш документ будет правильно отображаться в различных браузерах.

Атрибут STYLE

Атрибут STYLE задает CSS стиль для элемента в HTML документе. Как это уже обсуждалось выше для элемента FONT, применять атрибут STYLE нужно в случаях крайней необходимости или в целях отладки. Преимущество этого атрибута заключается в том, что CSS стили, описанные внутри него имеют наивысший приоритет по сравнению с HTML атрибутами отвечающими за стиль и любыми другими стилями для этого элемента, описанные в CSS.

Каждый НТМL-элемент может иметь атрибут id . Он предназначен для идентификации какого-либо конкретного тега. В пределах всей HTML-страницы должен существовать только один тег с определенным значением атрибута id . Наличие нескольких элементов с одинаковым значением id не допускается и может привести к ошибке. Значение атрибута id может состоять из букв латинского алфавита, цифр, знака подчеркивания и дефиса. Причем значение атрибута может начинаться с латинской буквы или со знака подчеркивания (но не с цифры или другого символа). Кроме того, значения атрибута id чувствительны к регистру. Атрибут id называют глобальным, поскольку он может быть использован с любыми НТМL-элементами.
В CSS id-селектор содержит символ (#) , непосредственно за которым следует значение атрибута id . Например, следующий id-селектор сопоставляется элементу

, значение атрибута id которого равно chapter7 :

#chapter7 {background-color:#FF00FF;}

После описания идентификатора его следует включить в состав тега:

Заголовок второго уровня с id

Пример: Применение идентификатора

  • Попробуй сам »

Заголовок второго уровня с id

Заголовок второго уровня

Заголовок второго уровня





Заголовок второго уровня с id

Заголовок второго уровня

Заголовок второго уровня


Классы

Классы используются для классификации элементов по общим группам, поэтому в отличие от атрибута id , множеству элементов может быть присвоено общее имя класса. Присваивая элементам имя одного класса, вы можете применить стили ко всем таким элементам одновременно с помощью единственного правила стилей. Чтобы сделать это, следует воспользоваться атрибутом class . Его значение должно описывать, к какому классу принадлежит элемент.
Класс похож на идентификатор, но вместо символа (#) перед именем класса указывается точка (.) :

После описания класса его следует включить в открывающий тег элемента:

Заголовок второго уровня

Пример: Применение атрибутов id и class

  • Попробуй сам »

Заголовок второго уровня с id и class=test

Заголовок второго уровня с class=test

Заголовок второго уровня

Заголовок второго уровня с class=test orange







Загрузка...