Por que não temos box-sizing: margin-box;
? Normalmente, quando colocamos box-sizing: border-box;
em nossas folhas de estilo, realmente queremos dizer o primeiro.
Exemplo:
Digamos que eu tenha um layout de página de 2 colunas. Ambas as colunas têm uma largura de 50%, mas parecem feias porque não há sarjeta (lacuna no meio); Abaixo está o CSS:
.col2 {
width: 50%;
float: left;
}
Para aplicar uma calha, você pode pensar que podemos definir uma margem certa na primeira das 2 colunas; algo assim:
.col2:first-child {
margin-right: 24px;
}
Mas isso faria a segunda coluna se agrupar em uma nova linha, porque o seguinte é verdadeiro:
50% + 50% + 24px > 100%
box-sizing: margin-box;
resolveria esse problema incluindo margem na largura calculada do elemento. Eu consideraria isso muito útil se não mais útil que box-sizing: border-box;
.
border: xxx solid transparent;
, pois a borda está incluída no border-box
. Isso vai quebrar algumas outras coisas, como box-shadow
.
box-sizing: margin-box
porque não funcionaria com o colapso da margem.
box-sizing: margin-box;
?" Porque, embora as margens horizontais não colapsem, essa proposição interferiria seriamente no colapso vertical das margens. De qualquer forma, se você deseja propor algo para padronização, o Stack Overflow não é o lugar certo. Experimente as listas de discussão.