Лекция3.2

Содержание

Слайд 2

CSS — Cascading Styles Sheet

Каскадные таблицы стилей (CSS) используется для задания внешнего

CSS — Cascading Styles Sheet Каскадные таблицы стилей (CSS) используется для задания
вида элементов HTML или других текстовых форматов. Наиболее удобный способ записи стилей заключается в использовании отдельного файла с расширением «.css», но можно их включать непосредственно в HTML код.

Слайд 3

Хокон Виум Ли

Учёный, специалист в области информатики, предложивший каскадные таблицы стилей (CSS). В англоязычных текстах

Хокон Виум Ли Учёный, специалист в области информатики, предложивший каскадные таблицы стилей
его часто называют howcome, а норвежское имя считается трудночитаемым.
В 1994 году предложил концепцию каскадных таблиц стилей.
В 2006 году в Университете Осло защитил диссертацию по теме «Каскадные таблицы стилей».

https://web.archive.org/web/20080906003804/http://people.opera.com/howcome/

Слайд 4

ПРИМЕР СТИЛЕЙ

Тег через атрибут color задает зеленый цвет.

ПРИМЕР СТИЛЕЙ Тег через атрибут color задает зеленый цвет.

Слайд 5

ПРИМЕР СТИЛЕЙ

Тег через атрибут color задает красный цвет. Установка размера

ПРИМЕР СТИЛЕЙ Тег через атрибут color задает красный цвет. Установка размера текста
текста (font-size) с помощью пикселей (30 px) дает вам полный контроль над размером текста. Изменять цвет необходимо несколько раз.

Слайд 6

ПРИМЕР СТИЛЕЙ

Тег предназначен для определения строчных элементов документа. HTML class позволяет

ПРИМЕР СТИЛЕЙ Тег предназначен для определения строчных элементов документа. HTML class позволяет
присвоить класс элементу «primary» (его имя). Изменения цвета происходит в одном месте. CSS font-size устанавливает размер шрифта.

Слайд 7

ПРИМЕР СТИЛЯ CSS

CSS color: red позволяет устанавливать красный цвет для всех страниц

ПРИМЕР СТИЛЯ CSS CSS color: red позволяет устанавливать красный цвет для всех
где есть класс элемента «primary».

Слайд 8

СТИЛЬ

В этой записи h1 описывает HTML тег, для которого задается стиль, а

СТИЛЬ В этой записи h1 описывает HTML тег, для которого задается стиль,
в фигурных скобках приводится описание самого стиля.
Описание стиля состоит из нескольких записей, которые заканчиваются точкой с запятой. Одна запись описывает некоторое свойства стиля, в примере задается свойство цвета текста (blue - синий).

Слайд 9

РАЗДЕЛЕНИЕ СТРУКТУРЫ И ВНЕШНЕГО ВИДА

РАЗДЕЛЕНИЕ СТРУКТУРЫ И ВНЕШНЕГО ВИДА

Слайд 10

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 11

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 12

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 13

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 14

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 15

ПРИМЕРЫ CSS

ПРИМЕРЫ CSS

Слайд 16

ПРЕИМУЩЕСТВА CSS

Простота последующего изменения дизайна, изменяя css файл.
Несколько дизайнов страницы с одним

ПРЕИМУЩЕСТВА CSS Простота последующего изменения дизайна, изменяя css файл. Несколько дизайнов страницы
и тем же HTML-кодом (светлая&темная тема страницы).
Уменьшение времени загрузки страниц сайта.
Уменьшение загрузки сайта, так как кода становится меньше.
Кэширование CSS-файлов в браузере.
Дополнительные возможности стилизации страниц которых не было в HTML.

Слайд 17

СИНТАКСИС CSS-ПРАВИЛА

селектор

свойство

значение

правило

описание

СИНТАКСИС CSS-ПРАВИЛА селектор свойство значение правило описание

Слайд 18

СХЕМА РАБОТЫ БРАУЗЕРА

CSS COM дерево накладывается на DOM дерево=результирующее дерево.

СХЕМА РАБОТЫ БРАУЗЕРА CSS COM дерево накладывается на DOM дерево=результирующее дерево.

Слайд 19

ТИПЫ СЕЛЕКТОРОВ

Базовые селекторы.
Комбинаторы.
Псевдоклассы.
Псевдоэлементы.

ТИПЫ СЕЛЕКТОРОВ Базовые селекторы. Комбинаторы. Псевдоклассы. Псевдоэлементы.

Слайд 20

БАЗОВЫЕ СЕЛЕКТОРЫ

Базовых селекторов существует 5 видов:
1. Color green применяется ко всем

БАЗОВЫЕ СЕЛЕКТОРЫ Базовых селекторов существует 5 видов: 1. Color green применяется ко
тегам .
2. Стиль по классу: для всех элементов у которых есть .text сделаем границу 3px dotted (точечную) #00f (синего цвета).

Слайд 21

БАЗОВЫЕ СЕЛЕКТОРЫ

class – это атрибут, а “text” – значение.
Если несколько class для

БАЗОВЫЕ СЕЛЕКТОРЫ class – это атрибут, а “text” – значение. Если несколько
одного элемента может быть несколько, разделяются они пробелом “text secondary”.
ID – идентификатор. “footer” – имя идентификатора может быть только одно. “footer” имя, которое мы придумали.

Слайд 22

БАЗОВЫЕ СЕЛЕКТОРЫ

2. Для одного элемента можно задавать несколько class. Селектор .text.secondary содержит

БАЗОВЫЕ СЕЛЕКТОРЫ 2. Для одного элемента можно задавать несколько class. Селектор .text.secondary
font-size(размер шрифта) 20px.
3. Кроме класса можно задать любому элементу id (идентификатор). ID у элемента может быть только один. Для #footer стили background-collor (цвет фона элемента) #000 (black), #fff (white).

Слайд 23

БАЗОВЫЕ СЕЛЕКТОРЫ

4. Можно задавать стили в зависимости от атрибутов элементов. Атрибуты записываются

БАЗОВЫЕ СЕЛЕКТОРЫ 4. Можно задавать стили в зависимости от атрибутов элементов. Атрибуты
в квадратных скобках. «text-decoration: none», т.е убрать подчеркивание у которых есть атрибут target=“_blank”.
5. Универсальный селектор. * применится ко всем тегам.

Слайд 24

БАЗОВЫЕ СЕЛЕКТОРЫ

target=“_blank”, т. е ссылка должна открываться в новой вкладке.

БАЗОВЫЕ СЕЛЕКТОРЫ target=“_blank”, т. е ссылка должна открываться в новой вкладке.

Слайд 25

КОМБИНАТОРЫ

1. Дочерний элемент часто используется. Применить цвет красный (color: red) ко всем

КОМБИНАТОРЫ 1. Дочерний элемент часто используется. Применить цвет красный (color: red) ко
элементам «p», которые находятся внутри элементов с классом «.content».
2. Применять к непосредственным детям «.content > p».
3. Применять к соседним элементам «.content + p».
4. Применять к следующим элементам «li ~ li».

Слайд 26

КОМБИНАТОРЫ

1. Как видно в примере “content” содержит 3 раза тег

.

КОМБИНАТОРЫ 1. Как видно в примере “content” содержит 3 раза тег .
Два раза тег

находятся внутри “content”. Один тег

не находится внутри “content”, поэтому цвет текста не стал красным.

Слайд 27

ПСЕВДОКЛАССЫ

ПСЕВДОКЛАССЫ

Слайд 28

ПСЕВДОКЛАССЫ

Псевдокласс — это селектор, который выбирает элементы, находящиеся в специфическом состоянии, например,

ПСЕВДОКЛАССЫ Псевдокласс — это селектор, который выбирает элементы, находящиеся в специфическом состоянии,
они являются первым элементом своего типа, или на них наведён указатель мыши. Они обычно действуют так, как если бы вы применили класс к какой-то части вашего документа, что часто помогает сократить избыточные классы в разметке и даёт более гибкий, удобный в поддержке код.
Псевдоклассы — это ключевые слова, которые начинаются с двоеточия.
:pseudo-class-name

Слайд 29

ПРИМЕР CSS

Если бы мы хотели сделать шрифт первого абзаца статьи более крупным

ПРИМЕР CSS Если бы мы хотели сделать шрифт первого абзаца статьи более
и жирным, мы могли бы добавить класс к этому абзацу, а затем добавить CSS к этому классу, как показано в примере справа:

Слайд 30

ПРОСТОЙ ПРИМЕР ПСЕВДОКЛАССА

Однако поддержка может оказаться утомительной — что если новый абзац

ПРОСТОЙ ПРИМЕР ПСЕВДОКЛАССА Однако поддержка может оказаться утомительной — что если новый
будет добавлен в верхнюю часть документа? Тогда нам нужно будет передвинуть класс к новому абзацу. Вместо добавления класса мы могли бы использовать селектор псевдокласса :first-child — он всегда будет нацелен на первый дочерний элемент в статье, и нам больше не нужно будет редактировать HTML.

Слайд 31

ПСЕВДОКЛАССЫ

:last-child — находит любой элемент, являющийся последним в его родителе.
:only-child — находит

ПСЕВДОКЛАССЫ :last-child — находит любой элемент, являющийся последним в его родителе. :only-child
любой элемент, являющийся единственным потомком родителя. Это тоже, что и :first-child:last-child или :nth-child(1):nth-last-child(1), но с меньшей специфичностью.
:invalid — находит любые или
элементы, контент которых не проходит валидацию (en-US), в соответствии с типом поля. Он позволяет вам легко менять внешний вид полей, что позволяет пользователю видеть и исправлять ошибки.

Все псевдоклассы ведут себя подобным образом. Они нацелены на какой-то фрагмент вашего документа, находящийся в определённом состоянии, и ведут себя так, как если бы вы добавили класс в свой HTML.

Слайд 32

ПСЕВДОКЛАСС :last-child

ПСЕВДОКЛАСС :last-child

Слайд 33

ПСЕВДОКЛАСС :last-child

Результат.

ПСЕВДОКЛАСС :last-child Результат.

Слайд 34

ПСЕВДОКЛАСС :invalid

Этот пример представляет собой простую форму, цвета элементов которой зелёные, когда

ПСЕВДОКЛАСС :invalid Этот пример представляет собой простую форму, цвета элементов которой зелёные,
данные корректные, и красные, когда нет.

Слайд 35

ПСЕВДОКЛАСС :invalid

Этот пример представляет собой простую форму, цвета элементов которой зелёные, когда

ПСЕВДОКЛАСС :invalid Этот пример представляет собой простую форму, цвета элементов которой зелёные,
данные корректные, и красные, когда нет.

Слайд 36

ПСЕВДОКЛАСС :only-child

Синтаксис.
parent child:only-child {
property: value;
}

ПСЕВДОКЛАСС :only-child Синтаксис. parent child:only-child { property: value; }

Слайд 37

ПСЕВДОКЛАСС :only-child

Пример со списком.

ПСЕВДОКЛАСС :only-child Пример со списком.

Слайд 38

ПСЕВДОКЛАСС :only-child

ПСЕВДОКЛАСС :only-child

Слайд 39

ДИНАМИЧЕСКИE ПСЕВДОКЛАССЫ

:hover — он применяется только в том случае, если пользователь наводит

ДИНАМИЧЕСКИE ПСЕВДОКЛАССЫ :hover — он применяется только в том случае, если пользователь
указатель мыши на элемент, обычно на ссылку.
:focus — применяется только в том случае, если пользователь фокусируется на элементе, используя управление с клавиатуры.

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

Слайд 40

ДИНАМИЧЕСКИE ПСЕВДОКЛАССЫ

ДИНАМИЧЕСКИE ПСЕВДОКЛАССЫ

Слайд 41

ПСЕВДОКЛАССЫ

ПСЕВДОКЛАССЫ

Слайд 42

ПСЕВДОЭЛЕМЕНТЫ

ПСЕВДОЭЛЕМЕНТЫ

Слайд 43

ПСЕВДОЭЛЕМЕНТЫ

Псевдоэлементы ведут себя сходным образом, однако они действуют так, как если бы

ПСЕВДОЭЛЕМЕНТЫ Псевдоэлементы ведут себя сходным образом, однако они действуют так, как если
вы добавили в разметку целый новый HTML-элемент, а не применили класс к существующим элементам. Псевдоэлементы начинаются с двойного двоеточия ::.

Слайд 44

ПСЕВДОЭЛЕМЕНТЫ

ПСЕВДОЭЛЕМЕНТЫ

Слайд 45

НАСЛЕДОВАНИЕ

НАСЛЕДОВАНИЕ

Слайд 46

НАСЛЕДОВАНИЕ

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

НАСЛЕДОВАНИЕ Во всех современных браузерах есть просмотр DOM дерева, инспектор HTML. HTML:
у которого class «content». Внутри него есть теги

и
с классом «footnote».
CSS: margin-left (отступ слева), font-size (размер шрифта).
Тег

унаследовал стили у своего родителя «content». Стили для отступов margin-left по-умолчанию не наследуется.

Слайд 47

НАСЛЕДОВАНИЕ

Унаследовать ненаследуемое свойство с помощью «inherit». Для .footnot унаследовать свойство «margin-left».

НАСЛЕДОВАНИЕ Унаследовать ненаследуемое свойство с помощью «inherit». Для .footnot унаследовать свойство «margin-left».

Слайд 48

НАСЛЕДУЕМЫЕ СТИЛИ

Это стили, которые относятся: к шрифту, к размеру, к цветам текста.

НАСЛЕДУЕМЫЕ СТИЛИ Это стили, которые относятся: к шрифту, к размеру, к цветам текста.

Слайд 49

НЕНАСЛЕДУЕМЫЕ СТИЛИ

Это стили, которые относятся: к размеру, отступам, фоновые картинки.

НЕНАСЛЕДУЕМЫЕ СТИЛИ Это стили, которые относятся: к размеру, отступам, фоновые картинки.

Слайд 50

СПЕЦИФИЧНОСТЬ СЕЛЕКТОРОВ

К одному и тому же HTML элементу можно применить

СПЕЦИФИЧНОСТЬ СЕЛЕКТОРОВ К одному и тому же HTML элементу можно применить стили
стили с помощью разных селекторов.
Зеленый цвет для всех элементов у которых есть класс «.bar» и они должны находится внутри div. Все 3 селектора подходят.

Слайд 51

СПЕЦИФИЧНОСТЬ СЕЛЕКТОРОВ

Цвет текста синий, так как для определение того, какое свойство будет

СПЕЦИФИЧНОСТЬ СЕЛЕКТОРОВ Цвет текста синий, так как для определение того, какое свойство
в итоге у нас используется понятие специфичность селекторов или вес селектора. Вес «#foo .bar» больше, чем других.
Если специфичность одинаковая, то применялось свойство, которое написано ниже.

Слайд 52

РАСЧЕТ СПЕЦИФИЧНОСТЬ

0001 – каждая цифра от 0 до 256-тиричное число. Каждый тег

РАСЧЕТ СПЕЦИФИЧНОСТЬ 0001 – каждая цифра от 0 до 256-тиричное число. Каждый
или псевдоэлемент добавляет единицу в 1 разряд.

0010 – Класс, псевдокласс, атрибут добавляет единицу во 2 разряд.

Слайд 53

РАСЧЕТ СПЕЦИФИЧНОСТЬ

0100 – идентификатор добавляет единицу во 3 разряд.

1000 – инлайн-стили добавляет

РАСЧЕТ СПЕЦИФИЧНОСТЬ 0100 – идентификатор добавляет единицу во 3 разряд. 1000 –
единицу в 4 разряд.

Слайд 54

РАСЧЕТ СПЕЦИФИЧНОСТЬ

«#foo .bar» больше, чем другие селекторы.
Свойство «important» позволяет повысить специфичность.

РАСЧЕТ СПЕЦИФИЧНОСТЬ «#foo .bar» больше, чем другие селекторы. Свойство «important» позволяет повысить специфичность.

Слайд 55

РАСЧЕТ СПЕЦИФИЧНОСТЬ

Свойство «important» позволяет повысить специфичность. Поэтому текст стал оранжевым.

РАСЧЕТ СПЕЦИФИЧНОСТЬ Свойство «important» позволяет повысить специфичность. Поэтому текст стал оранжевым.

Слайд 56

СЕЛЕКТОРЫ

:focus.

6

СЕЛЕКТОРЫ :focus. 6

Слайд 57

СЛОЖНЫЕ CЕЛЕКТОРЫ
ul > ul.

СЛОЖНЫЕ CЕЛЕКТОРЫ ul > ul.

Слайд 58

ПРОБЛЕМЫ

Селектор .text #name div.red.small { … }
Если захотите переиспользовать какие-то стили, которые

ПРОБЛЕМЫ Селектор .text #name div.red.small { … } Если захотите переиспользовать какие-то
описаны тут { … },
чтобы они использовались в другом месте вашего кода, то необходимо повторить структуру .text #name div.red.small.
Если переопределяете, то пишите более сложный селектор.

Слайд 59

РЕШЕНИЕ

БЭМ (БЛОК, ЭЛЕМЕНТ, МОДИФИКАТОР) – компонентный подход в веб-разработке. В его основе

РЕШЕНИЕ БЭМ (БЛОК, ЭЛЕМЕНТ, МОДИФИКАТОР) – компонентный подход в веб-разработке. В его
лежит принцип разделения интерфейса на независимые блоки.
Придумали его в Яндексе. БЭМ – широкая методология.

Слайд 60

БЭМ

https://ru.bem.info/

БЭМ https://ru.bem.info/

Слайд 61

ЗНАЧЕНИЯ АТРИБУТОВ

ЗНАЧЕНИЯ АТРИБУТОВ