Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к экзамену по ТП.doc
Скачиваний:
2
Добавлен:
20.09.2019
Размер:
1.13 Mб
Скачать

24. Псевдоклассы. Псевдоклассы связей.

Ну кто из нас не знает, что такое псевдоселекторы (или псевдоклассы) в CSS? Да-да, это то, что обычно пишут после селектора через двоеточие. Самые известные псевдоклассы это :link, :hover, :visited и :active.

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

В общем, тема псевдоселекторов еще не обсуждалась на нашем сайте, так что самое время приступить ;-)

Итак, как я уже сказал, веб-разработчики используют псевдоклассы в основном для задания стилей ссылок, например :link для непосещенной ссылки, :hover для ссылки при наведении, :active для нажатой и удерживаемой ссылки и :visited для посещенной. Кстати, у нас есть отличная статья про оформление ссылок, рекомендую.

Название и назначение псевдоклассов 

  1. :link — отвечает за стили непосещенной ссылки;

  2. :hover — состояние объекта (не обязательно ссылки) при наведении на него мышкой;

  3. :active — состояние активного объекта (например, для ссылки и зажатие ее мышкой);

  4. :visited — состояние посещенной ссылки;

  5. :focus — когда вы используете какой-то объект на страницы, то на нем устанавливается фокус (в случае и текстовым поле это постановка курсора в это поле);

  6. :first-child — первый дочерний элемент текущего элемента;

  7. :last-child — соответственно, последний дочерний элемент чего-то;

  8. :only-child — применяет стиль к элементу, если он единственный дочерний элемент;

  9. :nth-child() — какой-то по счету с начала дочерний элемент, например p:nth-child(4);

  10. :nth-last-child() — аналогично, только отчет с конца; интересно, что в этом и предыдущем селекторах можно задавать не только конкретные цифры, но и счетность, к примеру вот так: ul li:nth-last-child(2n+1);

  11. :lang() — если у элемента указан язык (с помощью атрибута lang, например lang="en"), то этот элемент можно выбрать так;

  12. :root — дает указание применить стиль к корневому элементу (в html документе это тег <html>);

  13. :not() — дает ограничение на применение стилей по селектору (то есть селектор .red-block:not(div) применит указанный стиль ко всем элементам с классом .red-block, только есть этот элемент не <div>);

  14. :empty — выбирает пустые элементы;

  15. :first-of-type — применяет стиль к первому элементу этого типа, то есть если у вас есть два дива, стиль будет работать только для первого из них;

  16. :last-of-type — аналогично предыдущему, только для последнего элемента;

  17. :only-of-type — применяет стили к элементы, если он имеет уникальный тип внутри своего родителя;

  18. :nth-of-type() — выбирает указанный по счету с начала элемент текущего типа;

  19. :nth-last-of-type() — тоже самое, но отсчет с конца;

  20. :target — например, если у вас адрес имеет вид index.html#anchor, то этот псевдо класс задаст правило для элемента с id="anchor";

  21. :enabled — выбирает активные инпуты;

  22. :disabled — а этот неактивные;

  23. :checked — отмеченные чекбоксы и выбранные радиобаттоны;

  24. :indeterminate — для радиобаттонов и чекбоксов опеределяет состояние, когда они «никакие», то есть ни выбраны, ни не выбраны (ужас как написал ;-)

  25. :default — элемент по-умолчанию, например кнопка отправки формы;

  26. :valid — стиль для правильного инпута (когда указана data type в HTML 5);

  27. :invalid — когда, соответственно, инпут невалиден;

  28. :in-range — когда значение инпута находиться в заданных границах (type="range", задан min и max, но это все только в HTML 5);

  29. :out-of-range — когда не попадает в границы;

  30. :required — все обязательные поля;

  31. :optional — все необязательные;

  32. :read-only — те элементы, которые доступны только для чтения;

  33. :read-write — для чтения и записи.

Псевдоклассы

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

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

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

 Примечание

В браузерах Internet Explorer и Netscape Navigator реализованы только псевдоклассы для элементов связей А. Псевдоэлементы в них не используются вообще.

Псевдоклассы связей

Связь в документе HTML определяется тэгом <А> с параметром HREF. Обычно браузеры отображают посещенные связи отлично от непосещенных (например, разными цветами). Уровень 1 каскадных таблиц стилей регламентирует правила для отображения связей через псевдоклассы элемента А:

A:link { color: red } /* непосещенная связь */

A:visited { color: blue } /* посещенная связь */

A:active { color: green } /* активная связь */

A:hover { color: lime } /* связь, на которой расположен курсор мыши */

Любую связь в документе можно отнести к одному из перечисленных классов. Активная связь — это связь, которая выбрана в данный момент.

Примечание

Комментарии в каскадных таблицах стилей задаются аналогично комментариям в языке С: текст, заключенный между символами /* и */, является комментарием.

Примечание

Псевдокласс hover включен в каскадные таблицы стилей, уровень 2, который частично реализован в Internet Explorer 4.01.

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

Предупреждение

Браузер Internet Explorer 4.01 правильно реализует псевдоклассы связей, тогда как Netscape Navigator 4.0 не воспринимает псевдоклассы active и hover.

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

A:link { color: red } /* непосещенная связь */

:link { color: red } /* непосещенная связь */