SlideShare a Scribd company logo
1 of 42
Основы CSS
Стажировка HTML5
Света Шарипова
Способы подключения стилей
1. Подключение стилей в отдельном документе
<head>
<link rel="stylesheet" href="main.css">
</head>
2. Подключение стилей в <head>
<head>
<style>
...
</style>
</head>
Способы подключения стилей
3. Инлайн-стили:
<div style="height: 300px;"></div>
4. Импорт стилей внутри документа .css
@import "newstyles.css";
Селекторы
Селектор тега: p { ... }
Селектор класса: .class { ... }
Селектор индентификатора: #id { ... }
Селектор атрибута: [data-title=”...”] { ... }
Селектор псевдокласса: :hover { ... }
Селектор псевдоэлемента: ::before { ... }
Универсальный селектор: * { ... }
Комбинирование селекторов
Все <div class=”wrapper”> div.wrapper { ... }
Только <div id=”modal”> div#modal { ... }
Все <a>, имеющие атрибут title a[title] { ... }
Все <a>, атрибут title которых содержит слово show a[title*=”show”] { ... }
Все <a>, title которых содержит show, отделенное пробелом a[title~=”show”] { ... }
Все <a>, title которых начинается с show a[title^=”show”] { ... }
Все <a>, title которых заканчивается на show a[title$=”show”] { ... }
Все <a>, при наведении на них курсора a:hover { ... }
Псевдоэлемент, являющийся первым потомком <a> a::before { ... }
Комбинирование селекторов
Все <p>, все <div>: div, p { ... }
Все <p>, являющиеся потомками <div>: div p { ... }
Все <p>, являющиеся прямыми потомками <div>: div > p { ... }
Все потомки <div>: div * { ... }
Все прямыe потомки <div>: div > * { ... }
Каждый <p>, следующий сразу после <div>: div + p { ... }
Все <p>, после <div>: div ~ p { ... }
Каскад и специфичность
При одинаковой специфичности, правило, которое находится ниже,
переопределяет все предыдущие:
p { color: red; }
p { color: blue; }
<link rel="stylesheet" href="main.css">
<style>
p {color: red;}
</style>
<link rel="stylesheet" href="main2.css">
Какого цвета текст в <p>?
<html>
<head>...</head>
<body>
<div>
<p class="text"> Lorem </p>
</div>
</body>
</html>
.text { color: blue;}
html body div p { color: red;}
Расчет специфичности
Расчет специфичности
Универсальный селектор * 0,0,0,0 Псевдокласс :not 0,0,0,0
Элемент, например p 0,0,0,1 Псевдоэлемент, например ::before 0,0,0,1
Класс, например .wrapper 0,0,1,0
Другой псевдокласс, например
:hover
0,0,1,0
Атрибут,
например [title] или [title=”show”]
или [title*=”show”] или
[title~=”show”]
или [title^=”show”] или
[title$=”show”]
0,0,1,0
ID, например #modal 0,1,0,0
Инлайн-стиль <style></style> 1,0,0,0
!important 1,0,0,0,0
Пример правила CSS Reset
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr,
acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong,
sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption,
tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer,
header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
Пример правил CSS Normalize
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
margin: 0;
}
Псевдоэлементы
::after
::before
::first-letter
::first-line - плохая поддержка, много багов
::selection - нет поддержки на iOS
::backdrop - плохая поддержка
Псевдоэлементы ::after и ::before
<div class="block__element">Some text</div>
.block__element::before {
content: “Pseudo “;
color: #f1652a;
}
.block__element::after {
content: ””;
display: inline-block;
width: 20px;
height: 20px;
background: #f1652a;
}
Псевдоэлементы ::after и ::before
Отсутствует свойство content
Применяется свойство display: none
Псевдоэлемент ::first-letter
<div class="block__element">Some text</div>
.block__element::first-letter{
color: #f1652a;
font-size: 2em;
}
Псевдоклассы
Плохая поддержка:
:default
:dir()
:fullscreen
:indeterminate
:left
:read-only
:read-write
:right
:scope
Псевдоклассы состояния
:active
:focus
:hover
:visited - только для ссылок
:link - только для ссылок
Порядок, чтобы
избежать переопределения:
:link — :visited — :hover — :active.
Псевдоклассы для стилизации форм
:checked
:disabled
:enabled
:in-range - плохая поддержка
:out-of-range - плохая поддержка
Псевдоклассы валидации
(частичная поддержка, IE10+)
:invalid
:optional
:required
:valid
Псевдоклассы порядка элементов
:first-child
:first-of-type
:last-child
:last-of-type
:nth-child()
:nth-last-child()
:nth-last-of-type()
:nth-of-type()
:only-child
:only-of-type
Псевдоклассы порядка элементов
:first-child и :first-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:first-of-type {
color: red;
}
Псевдоклассы порядка элементов
:first-child и :first-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:first-child {
color: red;
}
Псевдоклассы порядка элементов
:last-child и :last-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:last-of-type {
color: red;
}
Псевдоклассы порядка элементов
:last-child и :last-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:last-child {
color: red;
}
Псевдоклассы порядка элементов
:only-child и :only-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__element">Text</span>
<a class="block__element">Link</a>
</div>
<div class="block">
<a class="block__element">Link</a>
</div>
.block__element:only-child {
color: red;
}
Псевдоклассы порядка элементов
:only-child и :only-of-type
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
</div>
<div class="block">
<span class="block__element">Link</span>
<span class="block__other-element">Link</span>
</div>
.block__other-element:only-of-type {
color: red;
}
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:nth-child(2) {
color: red;
}
.block__element:nth-child(2n) {
color: red;
}
Из всех потомков выбирает
второго. Стили применяются,
если у выбранного потомка есть
класс block__element
Из всех потомков выбирает
каждого второго. Стили
применяются, если у выбранного
потомка есть класс block__element
Псевдоклассы :nth-child() и :nth-of-type()
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
</div>
.block__other-element:nth-child(3n) {
color: red;
}
.block__element:nth-child(3n+1) {
color: red;
}
Из всех потомков выбирает каждого
третьего. Стили применяются, если у
выбранного потомка есть класс
block__other-element
Начиная с первого потомка, выбирает
из всех каждого третьего. Стили
применяются, если у выбранного
потомка есть класс block__element
Псевдоклассы :nth-child() и :nth-of-type()
Из всех потомков выбирает
нечетные. Стили применяются,
если у выбранного потомка есть
класс block__element
Из всех потомков выбирает
четные. Стили применяются, если
у выбранного потомка есть класс
block__element
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
</div>
.block__element:nth-child(odd) {
color: red;
}
.block__element:nth-child(even) {
color: red;
}
Псевдоклассы :nth-child() и :nth-of-type()
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
</div>
.block__element:nth-child(3) {
color: red;
}
.block__element:nth-of-type(3) {
color: red;
}
Псевдоклассы :nth-child() и :nth-of-type()
Из всех потомков выбирает третьего.
Стили применяются, если у выбранного
потомка есть класс block__element
Так как block__element - это тег <a>,
выбирает третьего потомка среди
потомков с тегом <a>. Стили
применяются, если у выбранного потомка
есть класс block__element
Псевдоклассы порядка элементов
:nth-last-child() и :nth-last-of-type()
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
</div>
.block__element:nth-last-child (3n) {
color: red;
}
Счет начинается с конца.
Выбирает каждого третьего
потомка. Стили применяются,
если у выбранного потомка
есть класс block__element.
Так как <span> имеет другой
класс, его цвет не изменяется
Псевдоклассы порядка элементов
:nth-last-child() и :nth-last-of-type()
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
</div>
.block__other-element:nth-last-child (4) {
color: red;
}
Счет начинается с конца.
Выбирает четвертого потомка.
Стили применяются, если у
выбранного потомка есть класс
block__other-element.
Псевдоклассы порядка элементов
:nth-last-child() и :nth-last-of-type()
<div class="block">
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
<span class="block__other-element">Text</span>
<a class="block__element">Link</a>
<a class="block__element">Link</a>
</div>
.block__element:nth-last-of-type(3) {
color: red;
}
Счет начинается с конца.
Так как block__element -
это тег <a>, выбирает
третьего потомка среди
потомков с тегом <a>.
Стили применяются, если
у выбранного потомка
есть класс block__element
Другие псевдоклассы
:empty - выбирает пустые теги
:not() - выбирает теги за исключением тегов с
селектором в скобках
:lang() - выбирает теги по указанному языку
:root = html, но специфичность выше
:target - используется для стилизации цели “якоря”
Другие псевдоклассы - :empty
<div class="block">
<div class="block__element">This is element</div>
</div>
<div class="block">This is block</div>
<div class="block"></div>
.block {
width: 100px;
height: 50px;
}
.block:empty {
background: orange;
}
Другие псевдоклассы - :not()
<div class="block">
<div class="block__element">This is element</div>
</div>
<div class="block">This is block</div>
<div class="block"></div>
.block {
width: 100px;
height: 50px;
}
.block:not(:empty) {
background: orange;
}
Другие псевдоклассы - :lang()
<html lang="ru">
<head></head>
<body>
<div class="block">
<div class="block__element">Какой-то текст</div>
<div lang="en" class="block__element">Other text</div>
</div>
</body>
</html>
.block__element:lang(ru) {
color: blue;
}
.block__element:lang(en) {
color: green;
}
Другие псевдоклассы - :target
<a href="#mainInfo">Link to target</a>
<div id="mainInfo" class="block">This is target block</div>
<div class="block">This is block</div>
.block:target{
color: blue;
}
BEM
BEM
<div class="block">
<div class="block__element"></div>
<div class="block__element block__element--modifier"></div>
</div>
BEM
<div class="block">
<div class="block__element">
<div class="block__element__element">
</div>
</div>
</div>
<div class="block">
<div class="block__element">
<div class="other-block">
</div>
</div>
</div>
Полезные ссылки
Reset:
http://meyerweb.com/eric/tools/css/reset/
Normalize:
http://necolas.github.io/normalize.css/
BEM:
https://ru.bem.info/method/naming-convention/
https://css-tricks.com/bem-101/

More Related Content

Similar to Основы CSS (HTML5 тема 02 - основы CSS)

Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.DataArt
 
18. синтаксис css
18. синтаксис css18. синтаксис css
18. синтаксис cssSergei Dubrov
 
Css part2
Css part2Css part2
Css part2ISsoft
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-sideTechnosphere1
 
Лекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЛекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЯковенко Кирилл
 
Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Alexey Furmanov
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 
презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в cssRusov1
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSDataArt
 
Css Intro. Vlad Savitsky
Css Intro. Vlad SavitskyCss Intro. Vlad Savitsky
Css Intro. Vlad SavitskyVlad Savitsky
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressIgor Sazonov
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4Technopark
 
Web осень 2012 лекция 8
Web осень 2012 лекция 8Web осень 2012 лекция 8
Web осень 2012 лекция 8Technopark
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSDenis Latushkin
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилейRoman Brovko
 
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).SmartTools
 
презентация Day4
презентация Day4презентация Day4
презентация Day4Bulatov Edward
 

Similar to Основы CSS (HTML5 тема 02 - основы CSS) (20)

Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
 
18. синтаксис css
18. синтаксис css18. синтаксис css
18. синтаксис css
 
Css part2
Css part2Css part2
Css part2
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
 
Лекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЛекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилей
 
Лекция 10. Основы CSS.
Лекция 10. Основы CSS.Лекция 10. Основы CSS.
Лекция 10. Основы CSS.
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
презентация 4. введение в css
презентация 4. введение в cssпрезентация 4. введение в css
презентация 4. введение в css
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
 
Css Intro. Vlad Savitsky
Css Intro. Vlad SavitskyCss Intro. Vlad Savitsky
Css Intro. Vlad Savitsky
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
 
Web осень 2012 лекция 8
Web осень 2012 лекция 8Web осень 2012 лекция 8
Web осень 2012 лекция 8
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSS
 
04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей04 - Web-технологии. CSS - язык описания стилей
04 - Web-технологии. CSS - язык описания стилей
 
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
Стажировка 2016-07-06 03 Евгений Тарасенко. Основы HTML и CSS (часть 1).
 
Jquery
JqueryJquery
Jquery
 
презентация Day4
презентация Day4презентация Day4
презентация Day4
 
презентация Day4
презентация Day4презентация Day4
презентация Day4
 

More from Noveo

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииNoveo
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Noveo
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Noveo
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Noveo
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Noveo
 
Yii2
Yii2Yii2
Yii2Noveo
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизацияNoveo
 
Rest
RestRest
RestNoveo
 
PHP basic
PHP basicPHP basic
PHP basicNoveo
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP AdvancedNoveo
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQLNoveo
 
MySQL
MySQLMySQL
MySQLNoveo
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Noveo
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)Noveo
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Noveo
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Noveo
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Noveo
 
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Noveo
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)Noveo
 

More from Noveo (20)

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрии
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)
 
Yii2
Yii2Yii2
Yii2
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
 
Rest
RestRest
Rest
 
PHP basic
PHP basicPHP basic
PHP basic
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
MySQL
MySQLMySQL
MySQL
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
 
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
 

Основы CSS (HTML5 тема 02 - основы CSS)

  • 2. Способы подключения стилей 1. Подключение стилей в отдельном документе <head> <link rel="stylesheet" href="main.css"> </head> 2. Подключение стилей в <head> <head> <style> ... </style> </head>
  • 3. Способы подключения стилей 3. Инлайн-стили: <div style="height: 300px;"></div> 4. Импорт стилей внутри документа .css @import "newstyles.css";
  • 4. Селекторы Селектор тега: p { ... } Селектор класса: .class { ... } Селектор индентификатора: #id { ... } Селектор атрибута: [data-title=”...”] { ... } Селектор псевдокласса: :hover { ... } Селектор псевдоэлемента: ::before { ... } Универсальный селектор: * { ... }
  • 5. Комбинирование селекторов Все <div class=”wrapper”> div.wrapper { ... } Только <div id=”modal”> div#modal { ... } Все <a>, имеющие атрибут title a[title] { ... } Все <a>, атрибут title которых содержит слово show a[title*=”show”] { ... } Все <a>, title которых содержит show, отделенное пробелом a[title~=”show”] { ... } Все <a>, title которых начинается с show a[title^=”show”] { ... } Все <a>, title которых заканчивается на show a[title$=”show”] { ... } Все <a>, при наведении на них курсора a:hover { ... } Псевдоэлемент, являющийся первым потомком <a> a::before { ... }
  • 6. Комбинирование селекторов Все <p>, все <div>: div, p { ... } Все <p>, являющиеся потомками <div>: div p { ... } Все <p>, являющиеся прямыми потомками <div>: div > p { ... } Все потомки <div>: div * { ... } Все прямыe потомки <div>: div > * { ... } Каждый <p>, следующий сразу после <div>: div + p { ... } Все <p>, после <div>: div ~ p { ... }
  • 7. Каскад и специфичность При одинаковой специфичности, правило, которое находится ниже, переопределяет все предыдущие: p { color: red; } p { color: blue; } <link rel="stylesheet" href="main.css"> <style> p {color: red;} </style> <link rel="stylesheet" href="main2.css">
  • 8. Какого цвета текст в <p>? <html> <head>...</head> <body> <div> <p class="text"> Lorem </p> </div> </body> </html> .text { color: blue;} html body div p { color: red;}
  • 10. Расчет специфичности Универсальный селектор * 0,0,0,0 Псевдокласс :not 0,0,0,0 Элемент, например p 0,0,0,1 Псевдоэлемент, например ::before 0,0,0,1 Класс, например .wrapper 0,0,1,0 Другой псевдокласс, например :hover 0,0,1,0 Атрибут, например [title] или [title=”show”] или [title*=”show”] или [title~=”show”] или [title^=”show”] или [title$=”show”] 0,0,1,0 ID, например #modal 0,1,0,0 Инлайн-стиль <style></style> 1,0,0,0 !important 1,0,0,0,0
  • 11. Пример правила CSS Reset html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
  • 12. Пример правил CSS Normalize html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } body { margin: 0; }
  • 13. Псевдоэлементы ::after ::before ::first-letter ::first-line - плохая поддержка, много багов ::selection - нет поддержки на iOS ::backdrop - плохая поддержка
  • 14. Псевдоэлементы ::after и ::before <div class="block__element">Some text</div> .block__element::before { content: “Pseudo “; color: #f1652a; } .block__element::after { content: ””; display: inline-block; width: 20px; height: 20px; background: #f1652a; }
  • 15. Псевдоэлементы ::after и ::before Отсутствует свойство content Применяется свойство display: none
  • 16. Псевдоэлемент ::first-letter <div class="block__element">Some text</div> .block__element::first-letter{ color: #f1652a; font-size: 2em; }
  • 18. Псевдоклассы состояния :active :focus :hover :visited - только для ссылок :link - только для ссылок Порядок, чтобы избежать переопределения: :link — :visited — :hover — :active.
  • 19. Псевдоклассы для стилизации форм :checked :disabled :enabled :in-range - плохая поддержка :out-of-range - плохая поддержка Псевдоклассы валидации (частичная поддержка, IE10+) :invalid :optional :required :valid
  • 21. Псевдоклассы порядка элементов :first-child и :first-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__element">Text</span> <a class="block__element">Link</a> </div> .block__element:first-of-type { color: red; }
  • 22. Псевдоклассы порядка элементов :first-child и :first-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__element">Text</span> <a class="block__element">Link</a> </div> .block__element:first-child { color: red; }
  • 23. Псевдоклассы порядка элементов :last-child и :last-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__element">Text</span> <a class="block__element">Link</a> </div> .block__element:last-of-type { color: red; }
  • 24. Псевдоклассы порядка элементов :last-child и :last-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__element">Text</span> <a class="block__element">Link</a> </div> .block__element:last-child { color: red; }
  • 25. Псевдоклассы порядка элементов :only-child и :only-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__element">Text</span> <a class="block__element">Link</a> </div> <div class="block"> <a class="block__element">Link</a> </div> .block__element:only-child { color: red; }
  • 26. Псевдоклассы порядка элементов :only-child и :only-of-type <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> </div> <div class="block"> <span class="block__element">Link</span> <span class="block__other-element">Link</span> </div> .block__other-element:only-of-type { color: red; }
  • 27. <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> </div> .block__element:nth-child(2) { color: red; } .block__element:nth-child(2n) { color: red; } Из всех потомков выбирает второго. Стили применяются, если у выбранного потомка есть класс block__element Из всех потомков выбирает каждого второго. Стили применяются, если у выбранного потомка есть класс block__element Псевдоклассы :nth-child() и :nth-of-type()
  • 28. <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> </div> .block__other-element:nth-child(3n) { color: red; } .block__element:nth-child(3n+1) { color: red; } Из всех потомков выбирает каждого третьего. Стили применяются, если у выбранного потомка есть класс block__other-element Начиная с первого потомка, выбирает из всех каждого третьего. Стили применяются, если у выбранного потомка есть класс block__element Псевдоклассы :nth-child() и :nth-of-type()
  • 29. Из всех потомков выбирает нечетные. Стили применяются, если у выбранного потомка есть класс block__element Из всех потомков выбирает четные. Стили применяются, если у выбранного потомка есть класс block__element <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> </div> .block__element:nth-child(odd) { color: red; } .block__element:nth-child(even) { color: red; } Псевдоклассы :nth-child() и :nth-of-type()
  • 30. <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> <span class="block__other-element">Text</span> </div> .block__element:nth-child(3) { color: red; } .block__element:nth-of-type(3) { color: red; } Псевдоклассы :nth-child() и :nth-of-type() Из всех потомков выбирает третьего. Стили применяются, если у выбранного потомка есть класс block__element Так как block__element - это тег <a>, выбирает третьего потомка среди потомков с тегом <a>. Стили применяются, если у выбранного потомка есть класс block__element
  • 31. Псевдоклассы порядка элементов :nth-last-child() и :nth-last-of-type() <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> <a class="block__element">Link</a> </div> .block__element:nth-last-child (3n) { color: red; } Счет начинается с конца. Выбирает каждого третьего потомка. Стили применяются, если у выбранного потомка есть класс block__element. Так как <span> имеет другой класс, его цвет не изменяется
  • 32. Псевдоклассы порядка элементов :nth-last-child() и :nth-last-of-type() <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> <a class="block__element">Link</a> </div> .block__other-element:nth-last-child (4) { color: red; } Счет начинается с конца. Выбирает четвертого потомка. Стили применяются, если у выбранного потомка есть класс block__other-element.
  • 33. Псевдоклассы порядка элементов :nth-last-child() и :nth-last-of-type() <div class="block"> <a class="block__element">Link</a> <a class="block__element">Link</a> <a class="block__element">Link</a> <span class="block__other-element">Text</span> <a class="block__element">Link</a> <a class="block__element">Link</a> </div> .block__element:nth-last-of-type(3) { color: red; } Счет начинается с конца. Так как block__element - это тег <a>, выбирает третьего потомка среди потомков с тегом <a>. Стили применяются, если у выбранного потомка есть класс block__element
  • 34. Другие псевдоклассы :empty - выбирает пустые теги :not() - выбирает теги за исключением тегов с селектором в скобках :lang() - выбирает теги по указанному языку :root = html, но специфичность выше :target - используется для стилизации цели “якоря”
  • 35. Другие псевдоклассы - :empty <div class="block"> <div class="block__element">This is element</div> </div> <div class="block">This is block</div> <div class="block"></div> .block { width: 100px; height: 50px; } .block:empty { background: orange; }
  • 36. Другие псевдоклассы - :not() <div class="block"> <div class="block__element">This is element</div> </div> <div class="block">This is block</div> <div class="block"></div> .block { width: 100px; height: 50px; } .block:not(:empty) { background: orange; }
  • 37. Другие псевдоклассы - :lang() <html lang="ru"> <head></head> <body> <div class="block"> <div class="block__element">Какой-то текст</div> <div lang="en" class="block__element">Other text</div> </div> </body> </html> .block__element:lang(ru) { color: blue; } .block__element:lang(en) { color: green; }
  • 38. Другие псевдоклассы - :target <a href="#mainInfo">Link to target</a> <div id="mainInfo" class="block">This is target block</div> <div class="block">This is block</div> .block:target{ color: blue; }
  • 39. BEM
  • 40. BEM <div class="block"> <div class="block__element"></div> <div class="block__element block__element--modifier"></div> </div>
  • 41. BEM <div class="block"> <div class="block__element"> <div class="block__element__element"> </div> </div> </div> <div class="block"> <div class="block__element"> <div class="other-block"> </div> </div> </div>