Pregunta

W3 especifica que sólo cuatro reglas CSS son permitidos para las columnas de la tabla (con el <col> elemento) - frontera, de fondo, el ancho y la visibilidad.

¿Alguien sabe las razones detrás de esta decisión?Si usted puede tener bordes y fondos, ¿por qué no las fuentes y los colores?

¿Fue útil?

Solución

Ian Hixie explica en detalle aquí: El misterio de por qué sólo cuatro propiedades se aplican a columnas de la tabla.Cotización:

El color del texto depende de la propiedad 'color' de su elemento.A menos que se especifique, la propiedad 'color' (básicamente) por defecto 'heredar', que significa "tomar el valor del elemento padre".

Así que por un poco de texto en una celda, el color está determinado por la propiedad 'color' de la célula, la cual es tomada de la fila, que es tomado de la tabla, que es tomado de la tabla padre, y así sucesivamente.

¿Qué acerca de la columna?Así, la columna no es uno de los celulares de los antepasados, así que nunca se de una mirada-en!Y ahí radica el problema.

Otros consejos

Sólo una puñalada salvaje en la oscuridad basado en mi limitada comprensión:

Creo que el estilo a través de elementos relacionados con la columna está restringido porque aunque <col> y <colgroup> representan columnas de celdas, no contiene realmente ellos (que en realidad están contenidas por los <tr>s). Con esto viene cuestiones de precedencia y especificidad y en cascada (ya que en cascada sólo puede hacerse entre contenida / elementos contenedores) - Cuando las reglas de estilo en conflicto desde el <tr> y <col> (que sería el mismo nivel en una jerarquía de herencia múltiple) ocurrir - que debería la célula utiliza realmente?

En cuanto a por qué ese puñado particular de atributos de estilo que se permite sin embargo:. Ni idea

En una palabra: la ambigüedad. Las células tienen que ser hijos de filas; no sería una mesa de otra manera. Pero no hay ninguna columna para descender desde. Usando colspan significa que una célula puede estar en dos columnas. En lugar de tratar de llegar a alguna forma confusa a cabo, ¿por qué no dejar que el lugar desarrollador un class en cada célula enésima?

Si te fijas bien en la especificación a la que se vincula, verá los intentos de resolución de ambigüedad. La propiedad width especifica un mínimo; la background toma un asiento trasero a la fila y la célula; y border hace referencia a un "algoritmo de resolución de conflictos". La única razón por la que hay incluso un algoritmo para border es porque se entiende razonablemente que deben "ganar" (véase el algoritmo para más detalles). Pero, ¿podría imaginar tratando de averiguar lo que color o font deben "ganar"?

Posiblemente porque cada fila de la tabla no necesariamente tiene que mostrar una célula para su columna (por ejemplo a causa de un colspan). ¿Qué columna debe heredar esa celda es el estilo de? Sólo una suposición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top