Objetivo do asterisco antes de uma propriedade CSS


101

O seguinte foi retirado da redefinição CSS do Yahoo. Alguém pode explicar o propósito dos asteriscos?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}

Respostas:


117

É um hack CSS específico do navegador para as versões 7 ou anteriores do Internet Explorer.

*valor da propriedade

Embora o Internet Explorer 7 tenha corrigido seu comportamento quando um nome de propriedade é prefixado com um sublinhado ou um hífen, outros prefixos de caracteres não alfanuméricos são tratados como no IE6. Portanto, se você adicionar um caractere não alfanumérico, como um asterisco (*), imediatamente antes do nome de uma propriedade, a propriedade será aplicada no IE e não em outros navegadores. Ao contrário do método de hífen e sublinhado, a especificação CSS não faz reservas para o asterisco como prefixo, portanto, o uso desse hack pode resultar em comportamento inesperado conforme as especificações CSS evoluem.

* propriedade: o valor aplica-se ao valor da propriedade no IE 7 e abaixo. Pode ou não funcionar em versões futuras. Aviso: usa CSS inválido.

De: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml



1

Todos os navegadores, exceto o IE, ignoram as regras. É conhecido como o star hack. Acho que o IE7 irá ignorar as regras no modo padrão.

Nesse caso, a regra da fonte é definida e substituída pelo IE 6 e, às vezes, pelo 7.


Este não é o hack star-html. Esse vai no seletor e é CSS válido.
bobince

@bobince Star Hack e Star HTML Hack são duas coisas diferentes: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington


0

É um hack CSS, essa regra só será aplicada ao IE7 e versões anteriores.

Eu não recomendaria usá-lo, há maneiras melhores de consertar as incompatibilidades do IE.


0

Colocar caracteres como esse é um hack / workaround para fazer o IE 6 usar uma propriedade de estilo, enquanto oculta-o de navegadores mais "sãos".

A partir daqui :

Para encurtar a história, o analisador CSS do Internet Explorer é excessivamente agressivo ao tentar descobrir os nomes das propriedades e, na verdade, ignora os caracteres não alfanuméricos iniciais. Pelos meus testes, este parece ser o caso de pelo menos IE5 em diante.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.