Deve adicionar que se um navegador define um atributo por padrão, você pode precisar contornar. Isso não parece ser um problema em navegadores "modernos", no entanto, é um problema que tenho visto, portanto, certifique-se de verificar o desempenho entre navegadores.
Por exemplo, descobri que no IE anterior a 9, colSpan é definido para todos os TDs em uma tabela, portanto, qualquer célula tem o valor colspan oculto de 1.
Portanto, se você tiver como alvo "qualquer TD com atributo colspan" que aplicar em seu webdoc, mesmo o td não tendo nenhum atributo colspan definido, como qualquer TD sendo uma única célula, receberá o estilo css. Ou seja, menos de 9 basicamente estilizará todos eles!
O único motivo de preocupação com isso são todos os usuários do XP restantes que não podem atualizar acima do IE8.
Por exemplo, tenho um grupo de tabelas onde o conteúdo pode mudar de ponta a ponta, deixando de 1 a 7 células em branco no final ou no início.
Desejo aplicar uma cor a todas as células em branco no final ou no início, utilizando o atributo colspan. Usar o seguinte não funcionará no IE inferior a 9
#my td[colspan] {background-color:blue;}
... todos os TDs serão estilizados (engraçado, já que o estilo do atributo condicional era supostamente superior no IE, mas estou divagando ...).
Usar o seguinte funciona em todos os navegadores quando defino o valor de colspan como 'single' para qualquer célula solitária / TD que desejo incluir no esquema de estilo, no entanto, é um 'hack' e não validará corretamente ...
#my td[colspan="single"] {background-color:blue;}
#my td[colspan="2"] {background-color:blue;}
#my td[colspan="3"] {background-color:blue;}
#my td[colspan="4"] {background-color:blue;}
#my td[colspan="5"] {background-color:blue;}
#my td[colspan="6"] {background-color:blue;}
#my td[colspan="7"] {background-color:blue;}
Alternativamente, você deve ser capaz de resolver o problema de maneira mais apropriada usando um estilo condicional usando "if lt IE 9" para substituir. Seria a maneira correta de fazer isso, mas lembre-se de que você deve ocultar o "css adequadamente construído" do IElt9 no processo, e acho que a única maneira adequada de fazer isso é com folhas de estilo seletivas.
A maioria de nós já faz isso de qualquer maneira, mas independentemente disso, você ainda deve considerar e testar se um navegador aplica um atributo automático quando não vê nenhum, e como ele pode lidar com sua sintaxe correta para definir o estilo dos valores de atributo.
(aliás, o colspan não está na especificação do css ainda [a partir do css3], então este exemplo não gera nenhum erro de validação.)
empty