Existe uma lista de condicionais do navegador para uso, incluindo folhas de estilo?

StackOverflow https://stackoverflow.com/questions/46124

  •  09-06-2019
  •  | 
  •  

Pergunta

Já vi pessoas fazendo coisas assim em seu HTML:

<!--[if IE]>
  <link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->

Isso funciona em todos os navegadores modernos e existe uma lista de tipos de navegadores que funcionarão com esse tipo de instrução if?

Editar

Obrigado Ross.Interessante saber sobre gt, lt, gte e lte.

Foi útil?

Solução

Isso funciona em todos os navegadores porque qualquer coisa, exceto o IE, vê <!--IGNORED COMMENT-->.Somente o IE lê o comentário se ele contiver uma cláusula condicional.Dê uma olhada em Este artigo

Você também pode especificar qual versão do IE.Por exemplo:

<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->

Outras dicas

Se você puder usar Javascript, existem várias opções:

navigator.appName
navigator.appVersion 

link

Ou algo mais robusto usando uma biblioteca como jQuery.

Finalmente, você poderia usar o Detecção de navegador objeto do QuirksMode.

Assim que tiver o nome e a versão do navegador, você poderá inserir HTML para vincular a uma folha de estilo ou incluir outras tags.

Além da resposta de Ross, você só pode direcionar o mecanismo de renderização do Internet Explorer com comentários condicionais;não existe uma construção semelhante para outros navegadores.Por exemplo, você não pode escrever comentários condicionais direcionados ao Firefox, mas que são ignorados pelo Internet Explorer.

A maneira como obtenho o mesmo efeito do exemplo acima é farejar a string do agente do usuário.Em seguida, entrego um arquivo CSS adequado para esse navegador.Isso não é perfeito porque às vezes as pessoas alteram a string do agente do usuário para compatibilidade.

A outra maneira de atingir navegadores diferentes é utilizar hacks específicos do navegador.Eles são particularmente desagradáveis ​​porque geralmente dependem de bugs no navegador e os bugs podem ser corrigidos!

A detecção de agente de usuário é a melhor solução completa, na minha opinião.

Os comentários condicionais são exclusivamente para o IE (versão 5 e posterior).A documentação oficial da Microsoft é aqui.Se você for usá-los, a melhor estratégia é incluir condicionalmente folhas de estilo externas ou arquivos javascript após as inclusões normais.Isso significa que no IE seu código específico do IE substituirá todo o resto.Em qualquer outro navegador o código será tratado como comentários e ignorado pelo analisador.

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