Ich migriere meine Bootstrap-Designs von Version 2.3.2 auf Version 3.0.0. Eine Sache, die mir aufgefallen ist, ist, dass viele Dimensionen aufgrund der folgenden Stile in bootstrap.css unterschiedlich berechnet werden.
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
Kann jemand erklären, warum Bootstrap die Boxgröße aller Elemente auf Border-Box umstellt? Ich vermute, es hat damit zu tun, dass das neue Rastersystem prozentual basiert, aber der obige Selektor gilt natürlich nicht nur für die Rasterelemente.
Scheint ein bisschen radikal imho :-)
Möchte jemand einen Einblick geben?
css
twitter-bootstrap
twitter-bootstrap-3
boxsizer
Alexander Rechsteiner
quelle
quelle
*:before
und*:after
werden benötigt, um dieses Box-Modell auch auf die:before
und:after
Pseudo-Elemente anzuwenden .html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; }
Antworten:
In den Versionshinweisen heißt es: ( http://blog.getbootstrap.com/2013/08/19/bootstrap-3-released/ )
Persönlich denke ich, dass die meisten Vorteile dem Netzsystem zugute kommen. Im Bootstrap von Twitter sind alle Gitter flüssig. Spalten werden als Prozentsatz der Gesamtbreite definiert. Die Rinne hat jedoch eine feste Breite in Pixel. Standardmäßig ein Abstand von 15 Pixel auf beiden Seiten der Spalte. Die Kombination aus Breite in Pixel und Prozentsatz kann komplex sein. Mit
border-box
dieser Berechnung ist einfach , da derborder-box
Wert (in Bezug auf das Inhalte-Feld Standardgegen) trifft die endgültige gerenderte Box erklärte Breite, und jede Grenze und padding Schnitt in der Box. ( http://css-tricks.com/box-sizing/ )Lesen Sie auch: http://www.paulirish.com/2012/box-sizing-border-box-ftw/
quelle
content-box
. Jetzt haben Sie etwas, das 100% + 2 Pixel ist. Mitborder-box
haben Sie dieses Problem nicht, es ist immer noch 100%.