Ecco il codice HTML: http://jsfiddle.net/jC8DL/1/Perché il dimensionamento della casella è diverso in base alla tabella vs 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>
e sembra che questo nel mio Chrome:
credo di aver capito tutto fino all'ultimo. Il mio ispettore Chrome mostra che lo stile box-sizing
calcolato della tabella è content-box
, quindi mi aspetto che si comporti come il secondo div e che l'overflow e l'aspetto brutti. Perché è diverso? Questo è documentato da qualche parte nelle specifiche HTML/CSS?
È perché 'div' sono elementi di blocco. Prova ad aggiungere 'display: block;' al tavolo interno. Mostrerà lo stesso del div. –
@Bram Vanroy: 1) Questo è solo [accattonaggio della domanda] (https://en.wikipedia.org/wiki/Begging_the_question) quindi. 2) Il punto centrale di questa domanda è chiedersi perché un tavolo si comporti diversamente da un blocco; cosa farebbe cambiare il tavolo in un blocco? – BoltClock
@BoltClock Hai erroneamente interpretato il mio commento (è, quindi, un * commento *). Stavo spiegando in breve perché questa differenza si verifica. Non ho provato a rispondere alla domanda; Comunque non l'ho postato come risposta. –