9. Class
<div class=" red ">Я — красный див</div>
• В отличие от id, не должен быть уникальным.
• У одного элемента может быть несколько классов!
<div class=" red bold ">А я — жирный красный див!</div>
9
10. Селектор класса
<div class=" red ">Я — красный див</div>
<div class=" red bold ">А я — жирный красный див!</div>
.red { color: red; }
.bold { font-weight: bold; }
Я — красный див
А я — жирный красный див!
01.
02.
01.
02.
10
39. Но:
<div class="grey">
Я — серый див, а внутри
<a href="http://yandex.ru">ссылка</a>
</div>
.grey { color: #666 }
Я серый див, а внутри ссылка
01.
02.
03.
04.
39
42. Каскад
1. Обходим дерево, берем конкретный элемент
2. Применяем унаследованные стили
3. Находим все правила, применимые к этому конкретному элементу
4. Разбиваем на 2 группы: с !important и без
42
43. Без !important
• Сортируем правила по источнику:
1. Стили браузера
2. Стили пользователя
3. Стили автора
• Сортируем по специфичности
• Если специфичность одинаковая, то в порядке следования в таблицах
стилей
• Последовательно применяем
43
44. С !important
• Опять сортируем по источнику (но уже в другом порядке!):
1. Стили автора c !important
2. Стили пользователя с !important
• Сортировка и применение правил аналогично предыдущему слайду
44
52. Атрибутные селекторы
[attr^=value] - начинается с value
[attr$=value] - заканчивается value
[attr*=value] - содержит value
[attr~=value] - содержит value, отделенное пробелами
[attr|=value] - содержит value, отделенное знаком "-"
01.
02.
03.
04.
05.
52
59. Последующие соседи (General siblings)
h3 ~ p { font-size: 0.5em }
<p>Текст</p>
<h3>Заголовок третьего уровня</h3>
<p>Неважное дополнение</p>
<p>Совсем неважное дополнение</p>
01.
02.
03.
04.
59
60. Последующие соседи (General siblings)
h3 ~ p { font-size: 0.5em }
Текст
Заголовок третьего уровня
Неважное дополнение
Совсем неважное дополнение
60
61. Псевдоклассы
• Состояние, вызванное действиями пользователя (:hover, :active, ...)
• Динамическое значение атрибутов (:disabled, :required, ...)
• Порядок на одном уровне вложенности (:first-child, ...)
• Другие особенности (:lang(), :not(), ...)
61
73. Ключевая разница
p:first-child сначала берет первый дочерний элемент, затем
проверяет, является ли он параграфом
p:first-of-type сначала берет все параграфы, затем берет
первый из них
73
88. :first-line
Применимы следующие группы свойств:
• font-*, line-height
• text-*, word-spacing
• background-*
В зависимости от браузера список может варьироваться
88