Pergunta

W3 especifica que apenas quatro regras CSS são permitidos para a tabela colunas (com o elemento <col>) -. fronteira, fundo, largura e visibilidade

Alguém sabe as razões por trás dessa decisão? Se você pode ter bordas e fundos, por que não fontes e cores?

Foi útil?

Solução

Ian Hixie explica em detalhes aqui: O mistério de por apenas quatro propriedades aplicam-se a colunas da tabela . citação relevante:

A cor do texto é dependente da propriedade 'cor' do seu elemento. A menos que especificado, a 'cor' da propriedade (basicamente) padrão é 'herdar', que significa "tirar o valor do elemento pai".

Assim, por algum texto em uma célula, a cor é determinada pela propriedade 'cor' da célula, que é retirado da linha, que é retirado da mesa, que é retirado do pai da tabela, e assim por diante .

E sobre a coluna? Bem, a coluna não é um dos ancestrais da célula, para que ele nunca recebe um olhar-in! E é aí que reside o problema.

Outras dicas

Apenas uma facada selvagem no escuro com base na minha compreensão limitada:

Eu acho que styling através de elementos relacionados coluna é restrito porque embora <col> e <colgroup> representam colunas de células, ele realmente não contê-los (eles estão realmente contido pelas <tr>s). Com isso vem questões de precedência e especificidade e em cascata (desde cascata só pode ser feito entre os elementos contidos / recipiente) - quando conflitantes regras de estilo do <tr> e <col> (o que seria o mesmo nível em uma hierarquia de herança múltipla) ocorrem - o que deve a célula realmente usar?

Quanto ao porquê de esse punhado particular de atributos de estilo é permitido no entanto:. Idéia

Uma palavra: ambigüidade. As células têm de ser filhos de linhas; não seria uma tabela de outra forma. Mas não há nenhuma coluna a descer. Usando meios colspan que uma célula pode estar em duas colunas. Ao invés de tentar chegar a algum confundindo saída, porque não basta deixar o lugar desenvolvedor um class em cada célula enésimo?

Se você olhar atentamente para a especificação para a qual você ligar, você vai ver as tentativas de ambigüidade resolução. A propriedade width especifica um mínimo; o background leva um banco traseiro para a linha e célula; e border faz referência a um "algoritmo de resolução de conflitos". A única razão pela qual não há sequer um algoritmo para border é porque ele é razoavelmente entendido que deve "ganhar" (veja o algoritmo para detalhes). Mas você pode imaginar a tentar descobrir qual color ou font deve "ganhar"?

Possivelmente porque cada linha na tabela não tem necessariamente de exibir uma célula para a coluna (por exemplo, por causa de um colspan). Qual coluna deve essa célula herdá-la do estilo de? Apenas um palpite.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top