Задать вопрос

Есть ли смысл при вёрстке всем элементам прописывать box-sizing: border-box?

На первый взгляд кажется, что очень удобно прописать где-нибудь в reset.css свойство box-sizing: border-box. Например, если один элемент вложен в другой и должен занимать ширину 100% от родительской и у него есть, скажем, левый и правый паддинги, то не нужно беспокоится о том, что он выйдет за пределы родителя.
Но какие здесь могут быть подводные камни?
  • Вопрос задан
  • 4136 просмотров
Подписаться 7 Оценить 2 комментария
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Использование данного решения - вопрос привычки. Мозг начинает по-другому считать, к этом надо привыкнуть. Назад к "классической" модели возвращаться не захочется) Использовать ли? Мой выбор - да. Упрощает жизнь, ибо логичнее и понятнее. Поддержка во всех современных браузерах есть. Для старых (включая IE) есть полифил, или же старым вообще выдавать упрощенную версию.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Bandicoot
@Bandicoot
Вась-программист
Нет, старые браузеры это не поддерживают
Ответ написан
rumkin
@rumkin
Много где используется этот подход для сетки и форм. Но на все элементы навешивать не стоит, это лишь повлечет трудности в дальнейшем. Ну и важно понимать айдиторию проекта.
Я занимался разработкой front-end для достаточно крупного проекта, аудиторией которого были гики или продвинутые пользователи, нифронтенд бекенд в IE даже не видел (вообще ни разу, за чуть более чем год работы). Доработать под IE пришлось небольшую часть, но не html, а — js. Жалоб не было, а проект растет быстрее, чем разрабатывается, не стали париться.
Ответ написан
icelaba
@icelaba
Знаю и умею всё
Зачем использовать? Теряется "магия html", тот самый пикантный момент когда верстка едет в неизвестных направлениях при незначительных правках незначительного элемента :-)
А вообще да - вопрос привычки. Я предпочитаю не использовать, но согласен - сильно упрощает жизнь
Ответ написан
Комментировать
@exdeniz
Всегда использую:

*, *:before, *:after {
  -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
 }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы