SlideShare a Scribd company logo
Сложная вёрстка в примерах
Роман Комаров
Разработчик интерфейсов



Я.Субботник, Москва, 3 июля 2010 года


                                        1
Просто скопом всякое про вёрстку:

— Пара замечаний о независимых блоках.
— Несколько банальных, но полезных
  вещей, о которых не все вспоминают.
— inline-block и все все все.
— Вёрстка в условиях масштабирования.
— Активная область элемента.




                                         2
Всё это так или иначе используется в вёрстке новой Яндекс.Почты




                                                                  3
Пара замечаний о независимых блоках

Желательно избегать или же несколько раз
подумать перед использованием следующих
свойств при вёрстке врапперов абсолютно
независимых блоков:
— overflow: hidden;
— float: left|right;
— position: relative.




                                           4
overflow: hidden;

Делает практически невозможным вынос
каких-либо элементов за пределы
соответствующего блока.




                                       5
float
— Разрывают поток — неизвестно в каком
  контексте будет применяться блок.
— Существует достаточно проблем в разных
  браузерах.
— Если нужен блок шириной по контенту,
  лучше использовать inline-block.




                                           6
position: relative
— Создаётся контекст позиционирования —
  не всегда нужно.
— Проблемы с z-index в IE.




Хотя это очень полезное свойство и лечит
большое количество багов. Но если
получится что-то сверстать без его
использования — при прочих равных это
будет лучше.


                                           7
Несколько банальных, но полезных
вещей, о которых не все вспоминают


— Абсолютные блоки в контексте потока.
— Недостатки hasLayout.
— Возможности overflow:hidden.
— Разрыв ссылки («ссылка в ссылке»).
— CSS3 селекторы и псевдоэлементы для
  прогрессивного улучшения.




                                         8
Абсолютные блоки в контексте потока




                                      9
Блоки с hasLayout портят
схлопывающиеся блоки с неизвестной
шириной
В ие IE6:




В ие IE7:




                                     10
Возможности overflow:hidden
— Можно делать раскладки с одной колонкой
  неизвестной ширины (с ограничениями).

— Уже можно применять overflow-y и overflow-x.

— Если у блока с overflow нет позиционирования, то
  внутренние блоки с абсолютным позиционированием
  можно вытащить наружу.




                                                    11
Разрыв ссылки («ссылка в ссылке»)




                                    12
CSS3 селекторы и псевдоэлементы
для прогрессивного улучшения.




Примерно так оно выглядит в Fx 3.0, если не отключить:




                                                     13
inline-block и все все все
Контейнер мёда:

— Собственный контекст — «hasLayout» для всех.

— Гибкость — то, что нельзя сделать иначе.

— Универсальность.

Ведро дёгтя:

— Много хаков для поддержки в старых браузерах.

— Большое количество лишних врапперов.

— Практически во всех браузерах можно найти те или
  иные баги.

                                                     14
Меню на inline-block, выравненное по центру
и распределённое по ширине




                                              15
Вёрстка в условиях
масштабирования

— Относительные единицы и их округление

— Просвечивающие спрайты и картинки

— Визуальное соединение блоков




                                          16
Просвечивающие спрайты и картинки




— В опере при положительном зуме картинка в фоне
  даже при no-repeat добавляет справа левые
  пиксели.

— В опере (и IE7+) при зуме у спрайтов появляются
  паразитные пиксели со всех сторон.

— Тогда как в сафари появляются только сверху и
  справа.
                                                    17
Визуальное соединение блоков




Исправить можно:

— Изменить вёрстку так, чтобы были другие
  погрешности.

— Расположением блоков «внахлёст».

— Позиционируя с запасом.

                                            18
Активная область элемента


— Пиксель-хантинг на примере постраничной
  навигации.

— Инпуты и лейблы.

— Просветы в ссылках при большом межстрочном
  расстоянии.

— Большие блоки с неоднородным контентом —
  варианты решения.




                                               19
Пиксель-хантинг на примере
постраничной навигации.




                             20
Инпуты и лейблы




                  21
Просветы в ссылках при большом
межстрочном расстоянии




                                 22
Большие блоки с неоднородным
контентом — варианты решения.




— HTML5: блочные элементы внутри ссылки.
— Позиционирование прозрачного блока из
  ссылки наружу.



                                           23
Роман Комаров
Разработчик интерфейсов

119021, Россия, Москва,
ул. Льва Толстого, д.16

kizu@yandex-team.ru




                          24

More Related Content

Similar to Роман Комаров "Сложная вёрстка в примерах"

Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
ITCrowd Almaty
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
Pavel Chertorogov
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Yandex
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
CodeFest
 
Node JS проблемы надежности, и пути их решения
Node JS проблемы надежности, и пути их решенияNode JS проблемы надежности, и пути их решения
Node JS проблемы надежности, и пути их решения
Alexander Kucherenko
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Yandex
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchev
yaevents
 

Similar to Роман Комаров "Сложная вёрстка в примерах" (10)

Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Node JS проблемы надежности, и пути их решения
Node JS проблемы надежности, и пути их решенияNode JS проблемы надежности, и пути их решения
Node JS проблемы надежности, и пути их решения
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchev
 
Aaa
AaaAaa
Aaa
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
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айт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Роман Комаров "Сложная вёрстка в примерах"

  • 1. Сложная вёрстка в примерах Роман Комаров Разработчик интерфейсов Я.Субботник, Москва, 3 июля 2010 года 1
  • 2. Просто скопом всякое про вёрстку: — Пара замечаний о независимых блоках. — Несколько банальных, но полезных вещей, о которых не все вспоминают. — inline-block и все все все. — Вёрстка в условиях масштабирования. — Активная область элемента. 2
  • 3. Всё это так или иначе используется в вёрстке новой Яндекс.Почты 3
  • 4. Пара замечаний о независимых блоках Желательно избегать или же несколько раз подумать перед использованием следующих свойств при вёрстке врапперов абсолютно независимых блоков: — overflow: hidden; — float: left|right; — position: relative. 4
  • 5. overflow: hidden; Делает практически невозможным вынос каких-либо элементов за пределы соответствующего блока. 5
  • 6. float — Разрывают поток — неизвестно в каком контексте будет применяться блок. — Существует достаточно проблем в разных браузерах. — Если нужен блок шириной по контенту, лучше использовать inline-block. 6
  • 7. position: relative — Создаётся контекст позиционирования — не всегда нужно. — Проблемы с z-index в IE. Хотя это очень полезное свойство и лечит большое количество багов. Но если получится что-то сверстать без его использования — при прочих равных это будет лучше. 7
  • 8. Несколько банальных, но полезных вещей, о которых не все вспоминают — Абсолютные блоки в контексте потока. — Недостатки hasLayout. — Возможности overflow:hidden. — Разрыв ссылки («ссылка в ссылке»). — CSS3 селекторы и псевдоэлементы для прогрессивного улучшения. 8
  • 9. Абсолютные блоки в контексте потока 9
  • 10. Блоки с hasLayout портят схлопывающиеся блоки с неизвестной шириной В ие IE6: В ие IE7: 10
  • 11. Возможности overflow:hidden — Можно делать раскладки с одной колонкой неизвестной ширины (с ограничениями). — Уже можно применять overflow-y и overflow-x. — Если у блока с overflow нет позиционирования, то внутренние блоки с абсолютным позиционированием можно вытащить наружу. 11
  • 13. CSS3 селекторы и псевдоэлементы для прогрессивного улучшения. Примерно так оно выглядит в Fx 3.0, если не отключить: 13
  • 14. inline-block и все все все Контейнер мёда: — Собственный контекст — «hasLayout» для всех. — Гибкость — то, что нельзя сделать иначе. — Универсальность. Ведро дёгтя: — Много хаков для поддержки в старых браузерах. — Большое количество лишних врапперов. — Практически во всех браузерах можно найти те или иные баги. 14
  • 15. Меню на inline-block, выравненное по центру и распределённое по ширине 15
  • 16. Вёрстка в условиях масштабирования — Относительные единицы и их округление — Просвечивающие спрайты и картинки — Визуальное соединение блоков 16
  • 17. Просвечивающие спрайты и картинки — В опере при положительном зуме картинка в фоне даже при no-repeat добавляет справа левые пиксели. — В опере (и IE7+) при зуме у спрайтов появляются паразитные пиксели со всех сторон. — Тогда как в сафари появляются только сверху и справа. 17
  • 18. Визуальное соединение блоков Исправить можно: — Изменить вёрстку так, чтобы были другие погрешности. — Расположением блоков «внахлёст». — Позиционируя с запасом. 18
  • 19. Активная область элемента — Пиксель-хантинг на примере постраничной навигации. — Инпуты и лейблы. — Просветы в ссылках при большом межстрочном расстоянии. — Большие блоки с неоднородным контентом — варианты решения. 19
  • 22. Просветы в ссылках при большом межстрочном расстоянии 22
  • 23. Большие блоки с неоднородным контентом — варианты решения. — HTML5: блочные элементы внутри ссылки. — Позиционирование прозрачного блока из ссылки наружу. 23
  • 24. Роман Комаров Разработчик интерфейсов 119021, Россия, Москва, ул. Льва Толстого, д.16 kizu@yandex-team.ru 24