SlideShare a Scribd company logo
Куда движется вёрстка и
верстальщики Яндекса.

Олег Мохов
Разработчик интерфейсов


Я.Субботник, Алматы, 15 октября 2011 года
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
6
6
Вышел в 2001 году

    Очень много проблем и
    неподдерживаемых решений

    Доля в рунете 1.7%
    и продолжает снижаться




6
Вышел в 2001 году

    Очень много проблем и
    неподдерживаемых решений

    Доля в рунете 1.7%
    и продолжает снижаться




6
Вышел в 2006 году

    Проблемы почти те же

    Доля в рунете 4.7%




7
IE8     Firefox 3

    10.4%     6.5%
8
¹/₄
10
Firefox 7   IE6
10
2011   2001
10
11
4 элемента




11
4 элемента
     разные решения в разных
     ситуациях




11
4 элемента
     разные решения в разных
     ситуациях
     время на внедрить и
     протестировать




11
4 элемента
     разные решения в разных
     ситуациях
     время на внедрить и
     протестировать
     удар по скорости рендеринга




11
12
Chrome   Firefox   Opera   IE



13
14
CSS3

     Не фиксим png24

     В разных браузерах может
     различаться порядок блоков




14
FF   IE
15
нет уголка

     FF                IE
15
нет png24 fix




          нет уголка

     FF                 IE
15
border-radius + before:        нет png24 fix




                           нет уголка

              FF                         IE
15
border-radius + before:        нет png24 fix




                           нет уголка

              FF                         IE
16
17
FF   IE




18
FF    IE




     placeholder


18
FF                    IE




     placeholder
                   CSS3 градиент

18
FF                    IE




     placeholder                        картинка
                   CSS3 градиент

18
19
19
+ transition
19
+ transition
19
Сервисом можно
 пользоваться!
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
22
23
24
25
.example-shadow
{
    position: relative;
}




                          26
.example-shadow
{
    position: relative;
}

.example-shadow:before
{
    position: absolute;
    top: 0; bottom: 0;
    left: 0; right: 0;
    display: block;
    content: “”;
}


                          27
.example-shadow
{
    position: relative;
}

.example-shadow:before
{
    position: absolute;
    top: 0; bottom: 0;
    left: 0; right: 0;
    z-index: -1;
    display: block;
    content: “”;
}

                          28
.example-shadow
{
    position: relative;
}

.example-shadow:before
{
    position: absolute;
    top: 0; bottom: 0;
    left: 0; right: 0;
    z-index: -1;
    display: block;
    content: “”;
    box-shadow: 0 0 14px #fff;
}
                                 29
30
31
31
32
33
34
.b-button
{
    position: relative;

    display: -moz-inline-box;
    display: inline-block;
    
    width: 100px;
    height: 50px;
    
    background: url(sprite.png) repeat-x;
}



.b-button:hover
{
    background-position: 0 100%;
}

                                            35
.b-button:before, .b-button:after
{
    position: absolute;
    top: 0; bottom: 0;
    right: 0; left: 0;
    z-index: 1;
    
    content: '';
    
    opacity: 1; transition: opacity 0.2s linear;
    background: url(sprite.png) repeat-x;
}



.b-button:after
{
    opacity: 0;
    background-position: 0 100%;
}

.b-button:hover:before { opacity: 0 !important; }

                                                    36
.b-button:hover:after { opacity: 1 !important; }
Тачевая вёрстка
38
iOS   Android




39
Подробнее через
     несколько минут



40
Каждый верстальщик Яндекса
          будет заниматься
          тачевой вёрсткой


41
Производительность

Хочется всё и сразу



                      42
На сервере




43
На сервере

     • Обфускация




43
На сервере

     • Обфускация
     • Уменьшение количества запросов к серверу




43
На сервере

     • Обфускация
     • Уменьшение количества запросов к серверу
     • Оптимизация картинок



43
На сервере

     • Обфускация
     • Уменьшение количества запросов к серверу
     • Оптимизация картинок
     • Правильные http-заголовки


43
На сервере

     • Обфускация
     • Уменьшение количества запросов к серверу
     • Оптимизация картинок
     • Правильные http-заголовки


43
На клиенте




44
На клиенте

     • Не использовать каскад




44
На клиенте

     • Не использовать каскад
     • Не селектить по тегам




44
На клиенте

     • Не использовать каскад
     • Не селектить по тегам
     • Растягивать DOM вширь, а не вглубь



44
Конкретнее




45
Конкретнее

     • png24 спрайты с фильтром тормозят в IE




45
Конкретнее

     • png24 спрайты с фильтром тормозят в IE
     • много селекторов + способны повесить FF




45
Конкретнее

     • png24 спрайты с фильтром тормозят в IE
     • много селекторов + способны повесить FF
     • box-shadow inset с шириной > 10px тормозит



45
Конкретнее

     • png24 спрайты с фильтром тормозят в IE
     • много селекторов + способны повесить FF
     • box-shadow inset с шириной > 10px тормозит
     • transition цвета даёт большую нагрузку на
      процессор



45
46
Обнаружили и
      исследовали

47
Исследовали и
      обнаружили

47
Исследование




48
Исследование

     • Влияние CSS-свойств на скорость рендеринга




48
Исследование

     • Влияние CSS-свойств на скорость рендеринга
     • Влияние сочетаний свойств, комбинации




48
Исследование

     • Влияние CSS-свойств на скорость рендеринга
     • Влияние сочетаний свойств, комбинации
     • Исследования скорости рендеринга графики в
      разных форматах




48
Выяснили




49
Выяснили

     • CSS3 свойства зачастую сильно быстрее экстра
       разметки, но не во всех случаях




49
Выяснили

     • CSS3 свойства зачастую сильно быстрее экстра
       разметки, но не во всех случаях
     • data:uri картинки рендерятся так же быстро,
       как и обычные картинки




49
Выяснили

     • CSS3 свойства зачастую сильно быстрее экстра
       разметки, но не во всех случаях
     • data:uri картинки рендерятся так же быстро,
       как и обычные картинки
     • Псевдоселекторы быстрее с указанием имени
       элемента (:link → a:link)



49
Доклад Михаила Корепанова
      на Я.Субботнике в Киеве
       http://video.yandex.ru/users/ya-events/view/275/




50
Куда мы идём?




51
Куда мы идём?


     • Новые технологии и graceful degradation




51
Куда мы идём?


     • Новые технологии и graceful degradation
     • Тачевая вёрстка



51
Куда мы идём?


     • Новые технологии и graceful degradation
     • Тачевая вёрстка
     • Ускорение рендеринга


51
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Самоускорение
CodeStyle



54
Группировка
     CSS-свойств
     •   шрифт
     •   позиционирование
     •   отображение
     •   размеры
     •   таблицы/списки
     •   текст
     •   цвета/эффекты


55
.b-switcher__tumbler
{
    width: 33px;
    height: 13px;
    margin: 0 5px;

    display: -moz-inline-box;
    display: inline-block;

    vertical-align: middle;
	   text-align: left;



    border: 1px solid #bbb5b3;
    background: #a1a1a1;
    -moz-border-radius: 3px;    /* Firefox */
    -webkit-border-radius: 3px; /* Safari, Chrome */
    border-radius: 3px;
    -moz-box-shadow: inset -2px 2px 3px 0 #666;    /* Firefox */
    -webkit-box-shadow: inset -2px 2px 3px 0 #666; /* Safari, Chrome */
    box-shadow: inset -2px 2px 3px 0 #666;
}
CSSComb
      http://csscomb.ru/




57
ZenCoding



58
ZenHTML




59
ZenHTML


     div.my1 + div.my2 > ul > li * 5




59
ZenHTML

 <div class='my1'></div>
 <div class='my2'>
  <ul>
    <li></li><li></li><li></li><li></li><li></li>
  </ul>
 </div>


59
ZenCSS
     po:r → position: relative
     po:a → position: absolute
      po:s → position: static
            f:l → float: left
          f:r → float: right



60
ZenCSS



      po:r

61
ZenCSS



      po r

61
ZenCSS
     por → position: relative
     poa → position: absolute
      pos → position: static
          fl → float: left
         fr → float: right



62
HayakuBundle


     po:r + por


63
HayakuBundle

      por;fl;tal;m0




64
HayakuBundle

     position: relative;
     float: left;
     text-align: left;
     margin: 0;

64
HayakuBundle

     margin-left: 10px
     margin-left: 1.1em




65
HayakuBundle

     margin-left: 10px
                   1
     margin-left: 1.1em




65
HayakuBundle

     margin-left: 10px
                   2
     margin-left: 1.1em




65
HayakuBundle
     https://github.com/kizu/Hayaku.tmbundle
       https://twitter.com/#!/HayakuBundle




66
BEM
     https://github.com/bem




67
Олег Мохов
Разработчик интерфейсов
mokhov@yandex-team.ru
twitter: olmokhov

More Related Content

PDF
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Yandex
 
PDF
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Yandex
 
PDF
Mihail Korepanov
yaevents
 
PDF
Быстро о быстром
Roman Dvornov
 
PPT
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
IT-Portfolio
 
PDF
Не бойся, это всего лишь данные... просто их много
Roman Dvornov
 
PDF
Баба Яга против!
Roman Dvornov
 
PPTX
Chef @DevWeb
Alex Chistyakov
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Yandex
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Yandex
 
Mihail Korepanov
yaevents
 
Быстро о быстром
Roman Dvornov
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
IT-Portfolio
 
Не бойся, это всего лишь данные... просто их много
Roman Dvornov
 
Баба Яга против!
Roman Dvornov
 
Chef @DevWeb
Alex Chistyakov
 

What's hot (20)

PPTX
Анализ сеток сайтов на основе графов перелинковки
Playtini
 
PPT
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
IT-Portfolio
 
PDF
Иван Карев — Клиентская оптимизация
Yandex
 
PDF
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Yandex
 
PPTX
Little Service in 2h
Alexei Yuzhakov
 
PDF
Haritonov
kuchinskaya
 
PDF
DOM-шаблонизаторы – не только "быстро"
Roman Dvornov
 
PPTX
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Ontico
 
PDF
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
 
PDF
SPA инструменты
Roman Dvornov
 
PDF
Современный фронтенд за 30 минут.
Vladimir Malyk
 
PPT
Фотострана, Дмитрий Смирнов
EYevseyeva
 
PDF
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
IT-Portfolio
 
PDF
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Roman Dvornov
 
PDF
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
 
PDF
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
Anastasia Rostova
 
PDF
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
Yandex
 
Анализ сеток сайтов на основе графов перелинковки
Playtini
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
IT-Portfolio
 
Иван Карев — Клиентская оптимизация
Yandex
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Yandex
 
Little Service in 2h
Alexei Yuzhakov
 
Haritonov
kuchinskaya
 
DOM-шаблонизаторы – не только "быстро"
Roman Dvornov
 
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Ontico
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
 
SPA инструменты
Roman Dvornov
 
Современный фронтенд за 30 минут.
Vladimir Malyk
 
Фотострана, Дмитрий Смирнов
EYevseyeva
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
IT-Portfolio
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Roman Dvornov
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
Anastasia Rostova
 
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
Yandex
 
Ad

Similar to Олег Мохов "Куда движется вёрстка и верстальщики Яндекса" (20)

PDF
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Yandex
 
PDF
Олег Мохов "О чём ещё говорят верстальщики"
Yandex
 
PDF
Олег Мохов "CSS3 фарш"
Yandex
 
PDF
Роман Комаров "Сложная вёрстка в примерах"
Yandex
 
PDF
сложная вёрстка в примерах
yaevents
 
PDF
Роман Комаров — «Механизм работы браузера»
Yandex
 
PDF
Css3 для веб дизайнеров
Vgrafike.ru
 
PPTX
RESPONSIVE WEB DESIGN
Pavel Tsukanov
 
PDF
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Ontico
 
PDF
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
ADN Digital Studio
 
KEY
Css3 в руках дизайнера
Vadim Patsev
 
PDF
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Yandex
 
PDF
Denis Bugarchev
yaevents
 
PPTX
Презентация на тему "WEB-программирование"
Gotti Vartanyan
 
PDF
Олег Мохов "Драматическая история одной маленькой промостранички"
Yandex
 
PDF
Фронтенд разработка без боли
Anton Piskunov
 
PDF
Владимир Гриненко "Верстка для touch-устройст (webkit)"
Yandex
 
PDF
Проверка
9500096983
 
PDF
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Yandex
 
PDF
Cовременный станок верстальщика
mcslayer
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Yandex
 
Олег Мохов "О чём ещё говорят верстальщики"
Yandex
 
Олег Мохов "CSS3 фарш"
Yandex
 
Роман Комаров "Сложная вёрстка в примерах"
Yandex
 
сложная вёрстка в примерах
yaevents
 
Роман Комаров — «Механизм работы браузера»
Yandex
 
Css3 для веб дизайнеров
Vgrafike.ru
 
RESPONSIVE WEB DESIGN
Pavel Tsukanov
 
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Ontico
 
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
ADN Digital Studio
 
Css3 в руках дизайнера
Vadim Patsev
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Yandex
 
Denis Bugarchev
yaevents
 
Презентация на тему "WEB-программирование"
Gotti Vartanyan
 
Олег Мохов "Драматическая история одной маленькой промостранички"
Yandex
 
Фронтенд разработка без боли
Anton Piskunov
 
Владимир Гриненко "Верстка для touch-устройст (webkit)"
Yandex
 
Проверка
9500096983
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Yandex
 
Cовременный станок верстальщика
mcslayer
 
Ad

More from Yandex (20)

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

Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"

  • 1. Куда движется вёрстка и верстальщики Яндекса. Олег Мохов Разработчик интерфейсов Я.Субботник, Алматы, 15 октября 2011 года
  • 10. 6
  • 11. 6
  • 12. Вышел в 2001 году Очень много проблем и неподдерживаемых решений Доля в рунете 1.7% и продолжает снижаться 6
  • 13. Вышел в 2001 году Очень много проблем и неподдерживаемых решений Доля в рунете 1.7% и продолжает снижаться 6
  • 14. Вышел в 2006 году Проблемы почти те же Доля в рунете 4.7% 7
  • 15. IE8 Firefox 3 10.4% 6.5% 8
  • 17. 10
  • 18. Firefox 7 IE6 10
  • 19. 2011 2001 10
  • 20. 11
  • 22. 4 элемента разные решения в разных ситуациях 11
  • 23. 4 элемента разные решения в разных ситуациях время на внедрить и протестировать 11
  • 24. 4 элемента разные решения в разных ситуациях время на внедрить и протестировать удар по скорости рендеринга 11
  • 25. 12
  • 26. Chrome Firefox Opera IE 13
  • 27. 14
  • 28. CSS3 Не фиксим png24 В разных браузерах может различаться порядок блоков 14
  • 29. FF IE 15
  • 31. нет png24 fix нет уголка FF IE 15
  • 32. border-radius + before: нет png24 fix нет уголка FF IE 15
  • 33. border-radius + before: нет png24 fix нет уголка FF IE 16
  • 34. 17
  • 35. FF IE 18
  • 36. FF IE placeholder 18
  • 37. FF IE placeholder CSS3 градиент 18
  • 38. FF IE placeholder картинка CSS3 градиент 18
  • 39. 19
  • 40. 19
  • 45. 22
  • 46. 23
  • 47. 24
  • 48. 25
  • 49. .example-shadow { position: relative; } 26
  • 50. .example-shadow { position: relative; } .example-shadow:before { position: absolute; top: 0; bottom: 0; left: 0; right: 0; display: block; content: “”; } 27
  • 51. .example-shadow { position: relative; } .example-shadow:before { position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: -1; display: block; content: “”; } 28
  • 52. .example-shadow { position: relative; } .example-shadow:before { position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: -1; display: block; content: “”; box-shadow: 0 0 14px #fff; } 29
  • 53. 30
  • 54. 31
  • 55. 31
  • 56. 32
  • 57. 33
  • 58. 34
  • 59. .b-button {     position: relative;     display: -moz-inline-box;     display: inline-block;          width: 100px;     height: 50px;          background: url(sprite.png) repeat-x; } .b-button:hover {     background-position: 0 100%; } 35
  • 60. .b-button:before, .b-button:after {     position: absolute;     top: 0; bottom: 0;     right: 0; left: 0;     z-index: 1;          content: '';          opacity: 1; transition: opacity 0.2s linear;     background: url(sprite.png) repeat-x; } .b-button:after {     opacity: 0;     background-position: 0 100%; } .b-button:hover:before { opacity: 0 !important; } 36 .b-button:hover:after { opacity: 1 !important; }
  • 62. 38
  • 63. iOS Android 39
  • 64. Подробнее через несколько минут 40
  • 65. Каждый верстальщик Яндекса будет заниматься тачевой вёрсткой 41
  • 68. На сервере • Обфускация 43
  • 69. На сервере • Обфускация • Уменьшение количества запросов к серверу 43
  • 70. На сервере • Обфускация • Уменьшение количества запросов к серверу • Оптимизация картинок 43
  • 71. На сервере • Обфускация • Уменьшение количества запросов к серверу • Оптимизация картинок • Правильные http-заголовки 43
  • 72. На сервере • Обфускация • Уменьшение количества запросов к серверу • Оптимизация картинок • Правильные http-заголовки 43
  • 74. На клиенте • Не использовать каскад 44
  • 75. На клиенте • Не использовать каскад • Не селектить по тегам 44
  • 76. На клиенте • Не использовать каскад • Не селектить по тегам • Растягивать DOM вширь, а не вглубь 44
  • 78. Конкретнее • png24 спрайты с фильтром тормозят в IE 45
  • 79. Конкретнее • png24 спрайты с фильтром тормозят в IE • много селекторов + способны повесить FF 45
  • 80. Конкретнее • png24 спрайты с фильтром тормозят в IE • много селекторов + способны повесить FF • box-shadow inset с шириной > 10px тормозит 45
  • 81. Конкретнее • png24 спрайты с фильтром тормозят в IE • много селекторов + способны повесить FF • box-shadow inset с шириной > 10px тормозит • transition цвета даёт большую нагрузку на процессор 45
  • 82. 46
  • 83. Обнаружили и исследовали 47
  • 84. Исследовали и обнаружили 47
  • 86. Исследование • Влияние CSS-свойств на скорость рендеринга 48
  • 87. Исследование • Влияние CSS-свойств на скорость рендеринга • Влияние сочетаний свойств, комбинации 48
  • 88. Исследование • Влияние CSS-свойств на скорость рендеринга • Влияние сочетаний свойств, комбинации • Исследования скорости рендеринга графики в разных форматах 48
  • 90. Выяснили • CSS3 свойства зачастую сильно быстрее экстра разметки, но не во всех случаях 49
  • 91. Выяснили • CSS3 свойства зачастую сильно быстрее экстра разметки, но не во всех случаях • data:uri картинки рендерятся так же быстро, как и обычные картинки 49
  • 92. Выяснили • CSS3 свойства зачастую сильно быстрее экстра разметки, но не во всех случаях • data:uri картинки рендерятся так же быстро, как и обычные картинки • Псевдоселекторы быстрее с указанием имени элемента (:link → a:link) 49
  • 93. Доклад Михаила Корепанова на Я.Субботнике в Киеве http://video.yandex.ru/users/ya-events/view/275/ 50
  • 95. Куда мы идём? • Новые технологии и graceful degradation 51
  • 96. Куда мы идём? • Новые технологии и graceful degradation • Тачевая вёрстка 51
  • 97. Куда мы идём? • Новые технологии и graceful degradation • Тачевая вёрстка • Ускорение рендеринга 51
  • 101. Группировка CSS-свойств • шрифт • позиционирование • отображение • размеры • таблицы/списки • текст • цвета/эффекты 55
  • 102. .b-switcher__tumbler { width: 33px; height: 13px; margin: 0 5px; display: -moz-inline-box; display: inline-block; vertical-align: middle; text-align: left; border: 1px solid #bbb5b3; background: #a1a1a1; -moz-border-radius: 3px; /* Firefox */ -webkit-border-radius: 3px; /* Safari, Chrome */ border-radius: 3px; -moz-box-shadow: inset -2px 2px 3px 0 #666; /* Firefox */ -webkit-box-shadow: inset -2px 2px 3px 0 #666; /* Safari, Chrome */ box-shadow: inset -2px 2px 3px 0 #666; }
  • 103. CSSComb http://csscomb.ru/ 57
  • 106. ZenHTML div.my1 + div.my2 > ul > li * 5 59
  • 107. ZenHTML <div class='my1'></div> <div class='my2'> <ul> <li></li><li></li><li></li><li></li><li></li> </ul> </div> 59
  • 108. ZenCSS po:r → position: relative po:a → position: absolute po:s → position: static f:l → float: left f:r → float: right 60
  • 109. ZenCSS po:r 61
  • 110. ZenCSS po r 61
  • 111. ZenCSS por → position: relative poa → position: absolute pos → position: static fl → float: left fr → float: right 62
  • 112. HayakuBundle po:r + por 63
  • 113. HayakuBundle por;fl;tal;m0 64
  • 114. HayakuBundle position: relative; float: left; text-align: left; margin: 0; 64
  • 115. HayakuBundle margin-left: 10px margin-left: 1.1em 65
  • 116. HayakuBundle margin-left: 10px 1 margin-left: 1.1em 65
  • 117. HayakuBundle margin-left: 10px 2 margin-left: 1.1em 65
  • 118. HayakuBundle https://github.com/kizu/Hayaku.tmbundle https://twitter.com/#!/HayakuBundle 66
  • 119. BEM https://github.com/bem 67