Domanda

W3 specifica che solo quattro regole CSS sono consentiti per la tavola colonne (con l'elemento <col>) -. bordo, sfondo, larghezza e visibilità

Qualcuno sa le ragioni di questa decisione? Se si può avere bordi e sfondi, perché no font e colori?

È stato utile?

Soluzione

Ian Hixie spiega in dettaglio qui: Il mistero del perché solo quattro proprietà si applicano alle colonne della tabella . quote rilevanti:

  

Il colore del testo dipende dalla proprietà 'color' del suo elemento. Se non diversamente specificato, la 'color' (in pratica) default 'eredita', che significa "prendere il valore dell'elemento genitore".

     

Quindi, per un testo in una cella, il colore è determinato dalla proprietà 'color' della cellula, che è preso dalla prima fila, che è preso dalla tabella, che è tratto da padre del tavolo, e così via .

     

Che cosa circa la colonna? Ebbene, la colonna non è uno degli antenati della cellula, in modo che non ottiene mai un look-in! E qui sta il problema.

Altri suggerimenti

Basta una pugnalata selvaggio nel buio in base alla mia comprensione limitata:

Credo che lo stile tramite relativi elementi delle colonne è limitato perché anche se <col> e <colgroup> rappresentano colonne di celle, che in realtà non contiene loro (sono in realtà contenevano dai <tr>s). Con questo viene questioni di precedenza e specificità e in cascata (in quanto a cascata può essere fatto solo tra contenute / elementi container) - quando le regole di stile contrastanti tra la <tr> e <col> (che sarebbe lo stesso livello in una gerarchia di ereditarietà multipla) verificare - che dovrebbe la cellula effettivamente utilizzare?

Per quanto riguarda il motivo per cui quel particolare manciata di stile attributi è consentito però:. Idea

Una sola parola: l'ambiguità. Le cellule devono essere figli di righe; non sarebbe un tavolo altrimenti. Ma non c'è colonna a scendere da. Utilizzando colspan significa che una cellula potrebbe essere in due colonne. Piuttosto che cercare di trovare un qualche modo confuso fuori, perché non solo lascia il posto sviluppatore un class su ogni cellula ennesima?

Se si guarda da vicino le specifiche a cui si collega, si vedrà tentativi di risoluzione di ambiguità. La struttura specifica width minimo; la background prende un sedile posteriore per la riga e cellule; e border fa riferimento a un "algoritmo di risoluzione dei conflitti". L'unica ragione per cui c'è anche un algoritmo per border è perché è ragionevolmente capito chi dovrebbe "vincere" (vedi l'algoritmo per i dettagli). Ma si potrebbe immaginare cercando di capire quale color o font devono "vincere"?

Forse perché ogni riga della tabella non necessariamente per visualizzare una cella per la colonna (ad esempio a causa di un colspan). Quale colonna deve ereditare quella cella il suo stile da? Solo una supposizione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top