CSS II
Сегодня:
-
Иерархия
-
Псевдоклассы
-
Псевдоэлементы
-
Комбинации
-
Специфичность
-
Наследование
-
Значения и единицы измерения
Иерархия
<body>
<section>
<h2>Подписаться на рассылку:</h2>
<p>После вашего согласия вам будут приходить уведомления</p>
<form class="main">
<div class="field">
<label for="name" class="check-label">Ваше Имя</label>
<input type="text"
id="name"
placeholder="Имя"
class="filled">
</div>
</form>
</section>
</body>-
Родительский
-
Дочерний
Псевдоселекторы
- :active
- :any
- :checked
- :default
- :dir()
- :disabled
- :empty
- :enabled
- :first
- :first-child
- :first-of-type
- :fullscreen
- :focus
- :hover
- :indeterminate
- :in-range
- :invalid
- :lang()
- :last-child
- :last-of-type
- :left
- :link
- :not()
- :nth-child()
- :nth-last-child()
- :nth-last-of-type()
- :nth-of-type()
- :only-child
- :only-of-type
- :optional
- :out-of-range
- :read-only
- :read-write
- :required
- :right
- :root
- :scope
- :target
- :valid
- :visited
- .
- .
Динамические псевдоклассы
- :hover
- :active
- :focus
- :link
- :visited
Динамические псевдоклассы
- disabled
- enabled
Динамические псевдоклассы
- valid
- invalid
Структурные псевдоклассы
- :root
- :first-child/last-child
- :nth-child/nth-last-child(2n+1)
- :nth-of-type/nth-last-of-type(-n+4)
- :only-child/only-of-type
- :empty
<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>:first-child

- ::after
- ::before
- ::first-letter
- ::first-line
- ::selection
- ::backdrop
Я пример
Я тоже
::first-letter { color: red }
::first-line { color: blue }
Псевдоэлементы
Комбинации
Комбинации
<a href="/" class="red">На главную</a>
<div class="info">
Задача организации, в особенности же
реализация намеченных плановых заданий
обеспечивает широкому кругу
(специалистов) участие в формировании
направлений прогрессивного развития.
</div>
<div>
<img src="./cats.png">
</div>div.info { border: 1px solid black; }
.info.red { color: red; }
a[href].red { opacity: .9; }
a.red:hover { color: purple; }
#red#big { opacity: .9 }Комбинаторы
-
div div - потомок
-
div > div - сын
-
div + div - младший брат
-
div ~ div - младшие братья
<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>
ul li

<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>
li li

<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>
html > *

<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>
li:first-child + li

<html>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
</ul>
</li>
</ul>
<p></p>
</html>
li:first-child ~ li

Перерыв

Специфичность

<p class="red yellow">
Красный или желтый
</p>.yellow {
color: yellow;
}
.red {
color: red;
}Красный или желтый
Каскад
<p class="red yellow">
Красный или желтый
</p>p.yellow {
color: yellow;
}
.red {
color: red;
}Красный или желтый
<p id="red" class="yellow">
Красный или желтый
</p>p.yellow {
color: yellow;
}
#red {
color: red;
}Красный или желтый
Идентификатор
классы
псевдоклассы
атрибуты
элемент
псевдоэлемент
id="example"
#example { }
class="example"
.example { }
div
div { }
универсальный селектор, комбинаторы потомков, детей и прочие не влияют на специфичность
Специфичность
div {
color: blue;
font-weight: bold;
font-size: 12px;
}
div#id {
font-size: 15px;
}
html div {
color: red;
}/* 0 0 1 */
/* 1 0 1 */
/* 0 0 2 */
Специфичность
div {
color: blue;
font-weight: bold;
font-size: 12px;
}
div#id {
font-size: 15px;
}
html div {
color: red;
}/* 0 0 1 */
/* 1 0 1 */
/* 0 0 2 */
/* 0 0 1 */
/* 0 0 1 */
Специфичность
color: blue; /* 0 0 1 */
font-weight: bold; /* 0 0 1 */
font-size: 12px; /* 0 0 1 */
color: red; /* 0 0 2 */
font-size: 15px; /* 1 0 1 */
Специфичность
color: blue; /* 0 0 1 */
font: 13px Arial; /* 0 0 1 */
font-size: 12px; /* 0 0 1 */
font-weight: bold; /* 0 0 1 */
color: red; /* 0 0 2 */
font-size: 15px; /* 1 0 1 */
<div style="color: blue"></div>
div {
color: green !important;
}
<div style="color: white !important"></div>
Специфичность
Инлайн стили по умолчанию приоритетнее стилей в CSS
Стили в CSS с !important приоритетнее инлайн стилей
Инлайн стили с !important приоритетнее всего
(на самом деле нет)
p.class
.class-1.class-2:first-child
#id#id
/* 0 1 1 */
/* 0 3 0 */
/* 2 0 0 */
Специфичность
Наследование
<div>
Привет,
<abbr title="школа">
Школа
</abbr>
</div>
div {
color: green; /* 0 0 1 */
/* abbr { color : green } – нет специфичности */
}
Привет, школа
Привет, школа
Наследование
Наследование
Стили, которые наследуются (Полный список)
color
cursor
direction
empty-cells
font-family
font-size
font-weight
font-style
font-variant
font
word-spacing
letter-spacing
list-style-type
list-style-position
list-style-image
list-style
line-height
quotes
text-align
text-indent
text-transform
visibility
white-space
Порядок применения стилей
- Стили браузера
- Стили пользователя и/или плагинов браузера
- Стили страницы
- Стили пользователя и/или плагинов браузера с !important
Значения свойств
Числовые значения
- Целые числа (1, 2, 3...)
- Дробные числа (.5, 1.5)
- Процентные значения (50%)
Абсолютные единицы измерения длины
- Миллиметры (mm)
- Сантиметры (cm)
- Дюймы (in)
- Пункты – используется в типографиях, 1 дюйм = 72 пункта (pt)
- Пики – 12 пунктов (pc)
Абсолютные единицы удобны при определении CSS для печати. В вебе же практически не используются
Относительные единицы измерения длины
- пикселы* (px)
- em – зависит от размера шрифта (em)
- rem – зависит от размера шрифта корневого элемента (rem)
- ex – зависит от высоты символа x в данном шрифте
- ch – зависит от ширины символа 0 в данном шрифте
- vh/vw – 1/100 высоты и ширины viewport'а соответственно
- vmax – 1/100 от максимума между высотой и шириной viewport'а
- vmin – 1/100 от минимума между высотой и шириной viewport'а
Способы задания цвета
- Именованные цвета – red
- Функциональный – rgb(255, 0, 0) или rgba(255, 0, 0, 1)
- Шестнадцатиричный – #ff0000 или #f00
- Шестнадцатиричный с прозрачностью - #ff000000

Thanks for your attention!
CSS II
By Techno School
CSS II
- 18