Дронов Владимир
Шрифт:
В результате данный стиль будет применен к каждой нечетной строке нашей таблицы.
Если мы создадим такой стиль:
TR: nth-child(2n+0) { text-align: center }
то он будет применен ко второй и четвертой (четным) строкам нашей таблицы. Кстати, мы можем сделать запись чуть короче:
TR: nth-child(2n) { text-align: center }
Ранее мы рассматривали примеры с разбиением дочерних элементов на группы. Но мы можем отменить разбиение, указав нулевое количество элементов в группе. В этом случае Web-обозреватель найдет b– й дочерний элемент и применит стиль к нему.
Так, если мы создадим такой стиль:
TR: nth-child(0n+2) { text-align: center }
то Web-обозреватель применит его ко второй строке таблицы. Мы можем записать данный стиль и так:
TR: nth-child(2) { text-align: center }
и Web-обозреватель правильно его обработает.
Вместо указания формулы в скобках мы можем поставить там предопределенные значения odd и even. Первое привязывает стиль к нечетным дочерним элементам, второе — к четным:
TR: nth-child(odd) { background-color: grey } TR: nth-child(even) { background-color: yellow }
Первый стиль будет применен к нечетным строкам таблицы, второй — к четным. Псевдокласс: nth-last-child аналогичен рассмотренному нами псевдоклассу
:nth-child за тем исключением, что отсчет дочерних элементов ведется не с начала, а с конца родительского элемента.
Пример:
TR: nth-last-child(1) { text-align: center }
Данный стиль будет применен к последней строке таблицы. Пример:
#cmain P: nth-last-child(2) { font-weight: bold }
А этот стиль будет применен к предпоследнему (второму с конца) абзацу в контейнере cmain.
НА ЗАМЕТКУ
Еще стандарт CSS описывает псевдоклассы: nth-of-type и: nth-last-of-type. Насколько удалось выяснить автору, они работают так же, как и псевдоклассы: nth- child и: nth-last-child. Хотя, возможно, в следующих реализациях они будут действовать по-другому.
Последний структурный псевдокласс, который мы изучим, — :empty. Он привязывает стиль к элементам, не имеющим дочерних элементов.
Пример:
P: empty { display: none }
Этот стиль будет привязан к пустым (не имеющим содержимого) абзацам.
Псевдоклассы :not и *
Особый псевдокласс: not позволяет привязать стиль к любому элементу Web- страницы, не удовлетворяющему заданным условиям. Таким условием может быть любой селектор:
<основной селектор>:not(<селектор выбора>) { <стиль> }
Стиль будет привязан к элементу Web-страницы, удовлетворяющему основному селектору и не удовлетворяющему селектору выбора.
Пример:
DIV: not(#cmain) { background-color: yellow }
Здесь мы указали в качестве основного селектора стиль переопределения тега <DIV>, а в качестве селектора выбора — именованный стиль cmain. В результате данный стиль будет применен ко всем блочным контейнерам, за исключением cmain.
А вот стиль, который будет применен ко всем строкам таблицы, за исключением первой:
TR: not(:nth-child(1)) { background-color: grey }
Псевдокласс * ("звездочка") обозначает любой элемент Web-страницы. Пример:
#cmain > *:first-child { border-bottom: medium solid black }
Этот стиль будет применен к первому элементу любого типа, который непосредственно вложен в контейнер cmain.
Представление для нашего Web-сайта, часть 8
Да, специальные селекторы — мудреная штука… Разобраться в них без хорошей практики невозможно. Так давайте попрактикуемся.
Вот список параметров Web-страниц нашего Web-сайта, которые мы зададим с помощью специальных селекторов.
— Текст непосещенных и посещенных гиперссылок — не подчеркнут, цвет #576C8C (темно-синий).
— Текст посещенных гиперссылок, расположенных в полосе навигации, — не подчеркнут, цвет #576C8C. Мы задали для непосещенных и посещенных гиперссылок в полосе навигации одинаковые параметры — так принято.
— Текст посещенных гиперссылок, не расположенных в полосе навигации, — не подчеркнут, цвет #A1AFBA (синий).