¿Por qué no se permiten las columnas de la tabla de estilos?

W3 especifica que solo se permiten cuatro reglas CSS para las columnas de la tabla (con el elemento

): borde, fondo, ancho y visibilidad.

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

Ian Hixie explica en detalle aquí: El misterio de por qué solo cuatro propiedades se aplican a las columnas de la tabla . Cita relevante:

El color del texto depende de la propiedad ‘color’ de su elemento. A menos que se especifique, la propiedad ‘color’ (básicamente) se predetermina a ‘heredar’, lo que significa “tomar el valor del elemento padre”.

Entonces, para un texto en una celda, el color está determinado por la propiedad ‘color’ de la celda, que se toma de la fila, que se toma de la tabla, que se toma de la matriz de la tabla, y así sucesivamente.

¿Qué hay de la columna? Bueno, la columna no es uno de los antepasados ​​de la célula, por lo que nunca se ve. Y ahí radica el problema.

Solo una puñalada salvaje en la oscuridad basada en mi entendimiento limitado:

Creo que el estilo a través de elementos relacionados con la columna está restringido porque aunque

y

representan columnas de celdas, en realidad no las contiene (en realidad están contenidas por los

s). Con esto vienen los problemas de precedencia y especificidad y en cascada (ya que la cascada solo se puede hacer entre elementos contenidos / contenedores) – cuando las reglas de estilo en conflicto desde

y

(que serían del mismo nivel en una jerarquía de herencia múltiple) ocurrir, ¿qué debería usar realmente la célula?

En cuanto a por qué ese puñado de atributos de estilo en particular está permitido: sin idea.

Una palabra: ambigüedad. Las celdas deben ser hijos de filas; no sería una mesa de otro modo. Pero no hay una columna desde la que descender. Usar colspan significa que una celda puede estar en dos columnas. En lugar de tratar de encontrar una salida confusa, ¿por qué no dejar que el desarrollador coloque una class en cada enésima celda?

Si observa detenidamente la especificación a la que se vincula, verá bashs de resolución de ambigüedad. La propiedad width especifica un mínimo; el background pasa a un segundo plano en la fila y la celda; y el border referencia a un “algoritmo de resolución de conflictos”. La única razón por la que hay incluso un algoritmo para la border es porque se entiende razonablemente quién debe “ganar” (ver el algoritmo para más detalles). ¿Pero podrías imaginar intentar qué color o font debería “ganar”?

Posiblemente porque cada fila en la tabla no necesariamente tiene que mostrar una celda para su columna (por ejemplo, debido a un colspan). ¿De qué columna debería heredar la celda su estilo? Solo una suposición.

    Intereting Posts