SlideShare a Scribd company logo
1 of 94
Download to read offline
CSS-селекторы
Арсений Форштретер
разработчик интерфейсов
24 сентября, ШРИ, Екатеринбург
Селектор тега
<div>Я див</div>
< p >А я абзац</p>
p { color: red; }
Я див
А я абзац
01.
02.
2
Универсальный селектор
<div>Я див</div>
<p>А я абзац</p>
* { color: red; }
Я див
А я абзац
01.
02.
3
Важно!
Используйте универсальный селектор с осторожностью!
4
Атрибуты
<div id ="..." class ="...">...</div>
5
id
<header id=" site-header ">Шапка сайта</header>
• id - строка, не содержащая пробельных символов.
• id должен быть уникальным.
6
Селектор идентификатора
<header id=" site-header ">Шапка сайта</div>
#site-header {
background: green;
}
Шапка сайта
01.
02.
03.
7
Class
<div class=" red ">Я — красный див</div>
• В отличие от id, не должен быть уникальным.
• У одного элемента может быть несколько классов!
<div class=" red bold ">А я — жирный красный див!</div>
9
Селектор класса
<div class=" red ">Я — красный див</div>
<div class=" red bold ">А я — жирный красный див!</div>
.red { color: red; }
.bold { font-weight: bold; }
Я — красный див
А я — жирный красный див!
01.
02.
01.
02.
10
Давайте элементам осмысленные
имена идентификаторов и классов!
Сложные селекторы
12
Множественный селектор
h1 { font-weight: bold; }
h2 { font-weight: bold; }
.heading { font-weight: bold; }
h1, h2, .heading {
font-weight: bold;
}
01.
02.
03.
01.
02.
03.
15
Селектор потомков
ol li { border-bottom: 2px solid green; }
<ol>
<li>Хлеб</li>
<li>Соль</li>
</ol>
01.
02.
03.
04.
16
Селектор потомков
ol li { border-bottom: 2px solid green; }
1. Хлеб
2. Соль
17
Комбинированные селекторы
<div class="message">Сообщение</div>
<div class="message error">Ошибка</div>
.message { border: 2px solid blue; }
.message.error { border-color: red; }
Сообщение
Ошибка
01.
02.
01.
02.
18
Есть ли разница?
.message.error { border-color: red; }
.error.message { border-color: red; }
01.
02.
19
Нет
Порядок простых селекторов в составе комбинированного ни на что
не влияет.
Как и порядок классов в атрибуте class.
20
Но!
Селектор тега всегда первый:
p.foo { ... }
Ибо:
.foop { ... }
21
Комбинированные селекторы
*.class == .class
23
Комбинированные селекторы
*.class == .class
24
Какого цвета будет див?
<div id="red" class="blue">;
Я таинственный див
</div>
#red { color: red; font-style: italic; }
.blue { color: blue; }
Я таинственный див
01.
02.
03.
01.
02.
25
А так?
<div class="blue red">;
Я oчень таинственный див
</div>
.red { color: red; font-style: italic; }
.blue { color: blue; }
Я очень таинственный див
01.
02.
03.
01.
02.
26
Специфичность
0 1 2 1
tag, ::pseudo-element
.class, :pseudo-class, [attr]
#id
style="..."
28
Теперь понятно
#red { color: red; } /* 0100 */
.blue { color: blue; } /* 0010 */
01.
02.
30
Теперь понятно
.red { color: red; } /* 0010 */
.blue { color: blue; } /* 0010 */
01.
02.
31
Посчитаем
p.note /* 0011 */
ul ol li /* 0003 */
#content p.note span /* 0112 */
#main #content .column /* 0210 */
<b style="..."></b> <!-- 1000 -->
01.
02.
03.
04.
05.
32
!important
a {
color: blue !important ;
font-weight: bold;
}
a.green { color: green; }
<a class="green" href="/">Зеленая ссылка</a>
01.
02.
03.
04.
34
!important
a {
color: blue !important ;
font-weight: bold;
}
a.green { color: green; }
Зеленая ссылка
01.
02.
03.
04.
35
Важно
Используйте !important с осторожностью!
36
Наследование
<div class="grey">
Я — серый див, а внутри <i>курсив</i>
</div>
.grey { color: #666 }
Я — серый див, а внутри курсив
01.
02.
03.
37
Наследуемые свойства
• Шрифты (font-*, line-height)
• Текст (text-*, letter-spacing)
• Цвет (color)
38
Но:
<div class="grey">
Я — серый див, а внутри
<a href="http://yandex.ru">ссылка</a>
</div>
.grey { color: #666 }
Я серый див, а внутри ссылка
01.
02.
03.
04.
39
Где-то в недрах браузера:
a { color: blue; }
40
Встроенные таблицы стилей
1. Стили браузера
2. Стили пользователя
И стили автора.
41
Каскад
1. Обходим дерево, берем конкретный элемент
2. Применяем унаследованные стили
3. Находим все правила, применимые к этому конкретному элементу
4. Разбиваем на 2 группы: с !important и без
42
Без !important
• Сортируем правила по источнику:
1. Стили браузера
2. Стили пользователя
3. Стили автора
• Сортируем по специфичности
• Если специфичность одинаковая, то в порядке следования в таблицах
стилей
• Последовательно применяем
43
С !important
• Опять сортируем по источнику (но уже в другом порядке!):
1. Стили автора c !important
2. Стили пользователя с !important
• Сортировка и применение правил аналогично предыдущему слайду
44
Пример
<p>Абзац</p>
45
Пример
p { color: black; } /* Браузер */
p { /* Пользователь */
color: yellow;
background: black !important;
}
p { /* Автор */
color: red;
background: blue !important;
}
01.
02.
03.
04.
05.
06.
07.
08.
09.
46
Результат
p { color: black; } /* Браузер */
p { color: yellow; } /* Пользователь */
p { color: red; } /* Автор */
p { background: blue !important } /* Aвтор */
p { background: black !important; } /* Пользователь */
01.
02.
03.
04.
05.
47
Результат
p { color: black; } /* Браузер */
p { color: yellow; } /* Пользователь */
p { color: red; } /* Автор */
p { background: blue !important } /* Aвтор */
p { background: black !important; } /* Пользователь */
Абзац
01.
02.
03.
04.
05.
48
Еще селекторы!
Атрибутные селекторы
img[alt] { ... }
<img src="" alt ="...">
50
Атрибутные селекторы
input[type=text] { ... }
<input type="text">
51
Атрибутные селекторы
[attr^=value] - начинается с value
[attr$=value] - заканчивается value
[attr*=value] - содержит value
[attr~=value] - содержит value, отделенное пробелами
[attr|=value] - содержит value, отделенное знаком "-"
01.
02.
03.
04.
05.
52
Селектор детей
<ol>
<li>Хлеб
<ul>
<li>Чёрный</li>
<li>Батон</li>
</ul>
</li>
<li>Соль</li>
</ol>
01.
02.
03.
04.
05.
06.
07.
08.
09.
53
Селектор детей
ol li { border-bottom: 2px solid green; }
1. Хлеб
• Чёрный
• Батон
2. Соль
54
Селектор детей
ol > li { border-bottom: 2px solid green; }
1. Хлеб
• Чёрный
• Батон
2. Соль
55
Селекторы соседей (Siblings selectors)
• + - ближайший сосед
• ~ - последующие соседи
56
Ближайший сосед (Adjacent sibling)
h1 + p { font-size: 1.5em; }
<h1>Заголовок</h1>
<p>Вводная часть</p>
<p>Текст</p>
01.
02.
03.
57
Ближайший сосед (Adjacent sibling)
h1 + p { font-size: 1.5em; }
Заголовок
Вводная часть
Текст
58
Последующие соседи (General siblings)
h3 ~ p { font-size: 0.5em }
<p>Текст</p>
<h3>Заголовок третьего уровня</h3>
<p>Неважное дополнение</p>
<p>Совсем неважное дополнение</p>
01.
02.
03.
04.
59
Последующие соседи (General siblings)
h3 ~ p { font-size: 0.5em }
Текст
Заголовок третьего уровня
Неважное дополнение
Совсем неважное дополнение
60
Псевдоклассы
• Состояние, вызванное действиями пользователя (:hover, :active, ...)
• Динамическое значение атрибутов (:disabled, :required, ...)
• Порядок на одном уровне вложенности (:first-child, ...)
• Другие особенности (:lang(), :not(), ...)
61
:hover
a:hover { color: red; }
62
Состояние, вызванное действиями
пользователя
:active — активная ссылка или кнопка
:visited — посещенная ссылка
:focus — поле ввода или ссылка в фокусе
:target — id элемента совпадает с хэшем в урле
...
01.
02.
03.
04.
05.
63
Динамическое значение атрибутов
:link — ссылка, имеющая атрибут href
:disabled — неактивный инпут
:checked — выбранный чекбокс или радиокнопка
:required — обязательное поле
...
01.
02.
03.
04.
05.
64
Важно
:checked != [checked]
65
Позиция на одном уровне вложенности
66
:first-child
p:first-child { text-indent: 2em; }
<div>
<p>Раз</p>
<p>Два</p>
<p>Три</p>
</div>
01.
02.
03.
04.
05.
67
Результат
Раз
Два
Три
68
А что если ?
<div>
<hr/>
<p>Раз</p>
<p>Два</p>
<p>Три</p>
</div>
01.
02.
03.
04.
05.
06.
69
Результат
Раз
Два
Три
70
:first-of-type
p:first-of-type { text-indent: 2em; }
<div>
<hr/>
<p>Раз</p>
<p>Два</p>
<p>Три</p>
</div>
01.
02.
03.
04.
05.
06.
71
Результат
Раз
Два
Три
72
Ключевая разница
p:first-child сначала берет первый дочерний элемент, затем
проверяет, является ли он параграфом
p:first-of-type сначала берет все параграфы, затем берет
первый из них
73
А также
p:last-child
p:last-of-type
p:only-child
p:only-of-type
01.
02.
03.
04.
74
Но и это еще не всё!
p:nth-child(...)
p:nth-of-type(...)
01.
02.
75
:nth-child(), :nth-of-type()
p:nth-child(2)
76
:nth-child(), :nth-of-type()
li:nth-child(odd) — нечётные
li:nth-child(even) — чётные
01.
02.
77
:nth-child(), :nth-of-type()
li:nth-child(odd) { background: #ccc }
<ol>
<li>Хлеб</li>
<li>Соль</li>
<li>Молоко</li>
<li>Сосиски</li>
</ol>
01.
02.
03.
04.
05.
06.
78
Результат
li:nth-child(odd) { background: #ccc }
1. Хлеб
2. Соль
3. Молоко
4. Сосиски
79
:nth-child(), :nth-of-type()
li:nth-child( 2n+1 ) { background: #ccc }
1. Хлеб
2. Соль
3. Молоко
4. Сосиски
80
:nth-child(), :nth-of-type()
div:nth-child(2n+1) { background: #ccc; }
div:nth-of-type(2n+1) { color: red; }
<div>Див</div>
<span>Спан</span>
<div>Див</div>
<div>Див</div>
<div>Див</div>
01.
02.
01.
02.
03.
04.
05.
81
Результат
div:nth-child(2n+1) { background: #ccc; }
div:nth-of-type(2n+1) { color: red; }
Див
Спан
Див
Див
Див
01.
02.
82
:not()
img:not([alt])
83
Псевдоэлементы
• Часть содержимого (::first-letter, ::first-line)
• Составные части полей ввода (::placeholder, ...)
• Generated content (::before, ::after)
84
Синтаксис псевдоэлементов
Согласно последней спецификации, псевдоэлементы начинаются
с ::
В старой спецификации они начинаются с : , как и псевдоклассы
85
:first-letter
<div class="ya">Яндекс</div>
.ya:first-letter { color: red }
Яндекс
87
:first-line
Применимы следующие группы свойств:
• font-*, line-height
• text-*, word-spacing
• background-*
В зависимости от браузера список может варьироваться
88
::placeholder
<input type="password" placeholder="Пароль" />
input::placeholder { color: green }
89
Generated content
Псевдоэлементы :before и :after
90
Generated content
<div class="error">Ошибка! Не удалось загрузить данные</div>
Удобнее было бы так:
<div class="error">Не удалось загрузить данные</div>
91
Generated content
<div class="error">Не удалось загрузить данные</div>
.error :before {
content: 'Ошибка! ';
color: red;
}
Ошибка! Не удалось загрузить данные
01.
02.
03.
04.
92
Полезные ссылки
• bit.ly/15oqICU, bit.ly/1gVqV5H — W3C
• bit.ly/1b8EYYi — W3Schools
• caniuse.com
• bit.ly/1gVqlVH — CSS-Tricks Almanac
• bit.ly/1fxb8MB — Статья про специфичность на Smashing Magazine
• bit.ly/16Wi9mn — CSS Specifity Wars
93
Спасибо!

More Related Content

What's hot

Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSON
Ivan Nemytchenko
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Глеб Тарасов
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
Alexey Ivanov
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
2ГИС Технологии
 
J query tutorial-for-beginners-1.0.1
J query tutorial-for-beginners-1.0.1J query tutorial-for-beginners-1.0.1
J query tutorial-for-beginners-1.0.1
labzzzz
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
 
Алексей Бережной — «jQuery»
Алексей Бережной — «jQuery»Алексей Бережной — «jQuery»
Алексей Бережной — «jQuery»
Yandex
 
Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.
Ontico
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
drupalconf
 

What's hot (15)

ДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургДАМП 2015 Екатеринбург
ДАМП 2015 Екатеринбург
 
Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSON
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
 
J query tutorial-for-beginners-1.0.0
J query tutorial-for-beginners-1.0.0J query tutorial-for-beginners-1.0.0
J query tutorial-for-beginners-1.0.0
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
 
Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их много
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
 
J query tutorial-for-beginners-1.0.1
J query tutorial-for-beginners-1.0.1J query tutorial-for-beginners-1.0.1
J query tutorial-for-beginners-1.0.1
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
 
Алексей Бережной — «jQuery»
Алексей Бережной — «jQuery»Алексей Бережной — «jQuery»
Алексей Бережной — «jQuery»
 
Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.Андрей Аксёнов, Sphinx Technologies Inc.
Андрей Аксёнов, Sphinx Technologies Inc.
 
Sphinx 2013
Sphinx 2013Sphinx 2013
Sphinx 2013
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 

Viewers also liked (9)

Triggers для Mysql
Triggers для MysqlTriggers для Mysql
Triggers для Mysql
 
Genetics of predispositions ppt
Genetics of predispositions pptGenetics of predispositions ppt
Genetics of predispositions ppt
 
Biotechnology 2012-03
Biotechnology 2012-03Biotechnology 2012-03
Biotechnology 2012-03
 
Biotechnology 2012-05 1
Biotechnology 2012-05 1Biotechnology 2012-05 1
Biotechnology 2012-05 1
 
Chapter 15 bacterial gene
Chapter 15 bacterial geneChapter 15 bacterial gene
Chapter 15 bacterial gene
 
Seed fungi
Seed fungiSeed fungi
Seed fungi
 
Unit 1 genetic engineering
Unit 1 genetic engineeringUnit 1 genetic engineering
Unit 1 genetic engineering
 
Conjugation Microbiology powerpoint presentation
Conjugation Microbiology powerpoint presentationConjugation Microbiology powerpoint presentation
Conjugation Microbiology powerpoint presentation
 
Bacterial Conjugation
Bacterial ConjugationBacterial Conjugation
Bacterial Conjugation
 

Similar to Арсений Форштретер: CSS-селекторы

Михаил Трошев — CSS: Систематизация базовых знаний
Михаил Трошев — CSS: Систематизация базовых знанийМихаил Трошев — CSS: Систематизация базовых знаний
Михаил Трошев — CSS: Систематизация базовых знаний
Yandex
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
tyomo4ka
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Ontico
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
private_face
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Ontico
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
Yandex
 

Similar to Арсений Форштретер: CSS-селекторы (20)

Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Артем Маркушев — HTML и CSS по кирпичикам. Детали.
 
Михаил Трошев — CSS: Систематизация базовых знаний
Михаил Трошев — CSS: Систематизация базовых знанийМихаил Трошев — CSS: Систематизация базовых знаний
Михаил Трошев — CSS: Систематизация базовых знаний
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
Scino: Front-end [part-1]
Scino: Front-end [part-1]Scino: Front-end [part-1]
Scino: Front-end [part-1]
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
 
Опыт работы с фреймворком ASP.NET MVC
Опыт работы с фреймворком ASP.NET MVCОпыт работы с фреймворком ASP.NET MVC
Опыт работы с фреймворком ASP.NET MVC
 
Сергей Сыркин - CSS
Сергей Сыркин - CSSСергей Сыркин - CSS
Сергей Сыркин - CSS
 
WinDbg со товарищи
WinDbg со товарищиWinDbg со товарищи
WinDbg со товарищи
 
Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
 
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSSWebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
 
Heroku. Zen cloud
Heroku. Zen cloudHeroku. Zen cloud
Heroku. Zen cloud
 

More from Yandex

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Арсений Форштретер: CSS-селекторы