Com o tempo, as pessoas perceberam que aquela matemática não era interessante. Logo, criaram uma propriedade do CSS chamada box-sizing. Quando você define box-sizing: border-box; em um elemento, os valores do padding e do border não são adicionados em sua largura. Aqui está o mesmo exemplo da página anterior, porém com a propriedade box-sizing: border-box; aplicada nos dois elementos:
.simple {
width: 500px;
margin: 20px auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.fancy {
width: 500px;
margin: 20px auto;
padding: 50px;
border: solid blue 10px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}Temos o mesmo tamanho agora!
</div>Legal!
</div>Já que isso é bem melhor, algumas pessoas definem que todos os elementos em suas páginas funcionem dessa forma. Alguns escrevem o seguinte CSS em suas páginas:
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}Isso assegura que todos os elementos serão dimensionados da maneira mais intuitiva.
Uma vez que a propriedade box-sizing é muito nova, é recomendado utilizar os "vendor prefixes" -webkit- e -moz- por enquanto, como foram demonstrados nos exemplos. E tenha em mente que essa propriedade é somente IE8+.