2015-11-02 22 views
5

In base allo spec, il valore predefinito di vertical-align è baseline.Valore predefinito dell'allineamento verticale per le celle di tabella

baseline

Allineare la linea di base della scatola con la linea di base del box genitore. Se la casella non ha una linea di base, allineare il bordo del margine inferiore con della linea di base del genitore.

Tuttavia, quando si tratta di celle della tabella (td) sembra che il valore di default è sempre middle.

middle

Allineare il punto medio verticale della scatola con la linea di base del box genitore più metà altezza x del genitore.

Vorrei una conferma ufficiale di questo comportamento, ma non riesco a trovare nulla nella documentazione del W3C. Tutto quello che ho trovato dice che il valore predefinito è baseline.

Dove si dice che il valore predefinito di vertical-align è middle per le celle di tabella?

risposta

8

Come detto dalle specifiche, il valore iniziale di vertical-align è sempre baseline:

verticale allineare

  • iniziale: baseline

Tuttavia , come esp lained in The cascade,

Conforming user agents deve applicare un foglio di stile di default (o si comportano come se lo facessero).

Il foglio di stile predefinito di un agente utente deve presentare gli elementi della lingua del documento in modo che soddisfino le aspettative generali di presentazione della lingua del documento .

Vedere A sample style sheet for HTML per un foglio di stile predefinito consigliato per documenti HTML.

E questo foglio di stile raccomandato contiene

thead, tbody, 
tfoot   { vertical-align: middle } 
td, th, tr  { vertical-align: inherit } 

Pertanto, se (origine autore) non si fornisce alcun valore per tbody 's né td' s vertical-align, la cascata sarà recuperare il valore middle da l'origine dell'agente utente.

Nota il foglio di stile predefinito dipende dall'implementazione, pertanto alcuni browser potrebbero impostare valori vertical-align diversi per elementi diversi.