Я переношу свои темы Bootstrap с v2.3.2 на v3.0.0 и заметил одну вещь: многие измерения рассчитываются по-другому из-за следующих стилей в bootstrap.css.
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
Может ли кто-нибудь объяснить, почему Bootstrap переключает размер всех элементов на границу? Я подозреваю, что это связано с новой системой сетки, основанной на процентах, но приведенный выше селектор, очевидно, применим не только к элементам сетки.
Кажется немного радикальным, имхо :-)
Кто-нибудь хочет дать некоторое представление?
css
twitter-bootstrap
twitter-bootstrap-3
boxsizer
Александр Рехштайнер
источник
источник
*:before
и*:after
необходимы также применить эту модель коробки к:before
и:after
псевдо-элементам.html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; }
Ответы:
В примечаниях к выпуску говорится: ( http://blog.getbootstrap.com/2013/08/19/bootstrap-3-released/ )
Лично я считаю, что большинство преимуществ получает сеточная система. В Bootstrap Twitter все сетки плавные. Столбцы определяются в процентах от общей ширины. Но желоб имеет фиксированную ширину в пикселях. По умолчанию отступ 15 пикселей с обеих сторон столбца. Сочетание ширины в пикселях и процентов может быть сложным. С
border-box
этим вычислением легко, потому чтоborder-box
значение (в отличие от значения по умолчанию для содержимого) делает окончательный визуализированный блок объявленной шириной, а любые границы и отступы вырезаны внутри блока. ( http://css-tricks.com/box-sizing/ )Также читайте: http://www.paulirish.com/2012/box-sizing-border-box-ftw/
источник
content-box
. Теперь у вас есть что-то, что составляет 100% + 2 пикселя. Уborder-box
вас нет этой проблемы, все равно 100%.