Dlaczego nie mamy box-sizing: margin-box;
? Zazwyczaj, kiedy umieszczamy box-sizing: border-box;
w naszych arkuszach stylów, naprawdę mamy na myśli ten pierwszy.
Przykład:
Powiedzmy, że mam układ strony z 2 kolumnami. Obie kolumny mają szerokość 50%, ale wyglądają trochę brzydko, ponieważ nie ma rynny (luka w środku); Poniżej znajduje się CSS:
.col2 {
width: 50%;
float: left;
}
Aby zastosować rynnę, możesz pomyśleć, że możemy po prostu ustawić prawy margines na pierwszej z 2 kolumn; coś takiego:
.col2:first-child {
margin-right: 24px;
}
Ale to spowodowałoby zawinięcie drugiej kolumny do nowego wiersza, ponieważ jest prawdziwe:
50% + 50% + 24px > 100%
box-sizing: margin-box;
rozwiązałoby ten problem poprzez uwzględnienie marginesu w obliczonej szerokości elementu. Uważam to za bardzo przydatne, jeśli nie bardziej przydatne niż box-sizing: border-box;
.
border: xxx solid transparent;
, ponieważ granica jest uwzględniona w border-box
. To jednak zepsuje kilka innych rzeczy, takich jak box-shadow
.
box-sizing: margin-box
ponieważ nie działałoby to z zapadaniem marginesów.
box-sizing: margin-box;
?" Ponieważ chociaż marginesy poziome się nie załamują, taka propozycja poważnie kolidowałaby z załamaniem marginesów pionowych. W każdym razie, jeśli chcesz zaproponować coś do standaryzacji, Stack Overflow nie jest właściwym miejscem. Wypróbuj listy mailingowe.