Oto HTML: http://jsfiddle.net/jC8DL/1/Dlaczego rozmiar pudełkowy działa inaczej w stosunku do stołu i elementu div?
<div style='width:300px;border:1px solid green'>
<div>Outer div</div>
<div style='width:100%;border:1px solid red;margin:10px;'>
Inner div, 10px margin.
</div>
<div style='width:100%;border:1px solid red;padding:10px;'>
Inner div, 10px padding.
</div>
<div style='width:100%;border:1px solid red;padding:10px;box-sizing:border-box'>
Same, with box-sizing: border-box
</div>
<table style='width:100%;border:1px solid red;padding:10px;'>
<tr><td>Inner table, 10px padding</td></tr>
</table>
</div>
A wygląda to w moim Chrome:
Myślę, że rozumiem wszystko, aż do ostatniego. Mój inspektor Chrome pokazuje, że styl obliczany w tabeli to w stylu content-box
, więc oczekuję, że będzie zachowywał się jak drugi element div, a przepełnienie i wygląd będą brzydkie. Dlaczego jest inaczej? Czy jest to udokumentowane gdzieś w specyfikacji HTML/CSS?
To dlatego, że 'div's są elementami blokowymi. Spróbuj dodać 'display: block;' do wewnętrznej tabeli. Wyświetli to samo, co div. –
@Bram Vanroy: 1) To tylko [błaganie o to pytanie] (https://en.wikipedia.org/wiki/Begging_the_question). 2) Cała kwestia tego pytania polega na zapytaniu, dlaczego tabela zachowałaby się inaczej niż blok; co by zmieniło tabelę w blok? – BoltClock
@BoltClock Źle zinterpretowałeś mój komentarz (jest to zatem * komentarz *). Wyjaśniłem w skrócie, dlaczego ta różnica występuje. Nie próbowałem odpowiedzieć na pytanie; I tak nie napisałem tego jako odpowiedzi. –