Отладка вёрстки: типичные ошибки и как их найти

Даже у опытных верстальщиков вёрстка иногда ведёт себя не так, как ожидалось — блок не встаёт на место, отступ появляется непонятно откуда, элемент вылезает за границы контейнера. Хорошая новость в том, что большинство таких проблем укладываются в небольшой список типичных причин.

Первым делом стоит открыть инструменты разработчика и посмотреть блочную модель выбранного элемента — часто оказывается, что путаница возникает из-за суммирования padding и border поверх заданной ширины, если box-sizing не установлен в border-box, о чём легко забыть в разгар работы.

Схлопывание внешних отступов по вертикали — ещё одна частая причина неожиданных расстояний между блоками, особенно у тех, кто только начинает разбираться в CSS. Расстояние между двумя соседними блоками не всегда равно сумме их margin, а может определяться по большему из двух значений.

Если элемент неожиданно исчез со страницы, стоит проверить, не выставлена ли у него или у родителя нулевая высота, overflow hidden при переполненном содержимом, либо display none где-то в унаследованных стилях. Панель стилей в инструментах разработчика обычно быстро показывает, какое именно правило сработало.

Проблемы с z-index и порядком наложения элементов часто связаны с тем, что z-index работает только у элементов с заданным position, отличным от static — если элемент остаётся static, значение z-index на нём попросту игнорируется браузером, что сбивает с толку, пока это не станет известно.

Полезная привычка при отладке — временно добавлять яркую рамку каждому подозрительному блоку через outline, не влияющий на раскладку в отличие от border. Это быстро показывает реальные границы элементов, которые иногда сильно отличаются от того, что казалось при взгляде только на содержимое.

Разбор частых причин неожиданного поведения вёрстки и способов их диагностики хорошо описан в разделе про отладку CSS на MDN.

Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×