Usando comentários condicionais, é fácil segmentar o Internet Explorer com regras CSS específicas do navegador:
<!--[if IE 6]>
...include IE6-specific stylesheet here...
<![endif]-->
Às vezes, é o mecanismo Gecko (Firefox) que se comporta mal. Qual seria a melhor maneira de segmentar apenas o Firefox com suas regras de CSS e não um único outro navegador? Ou seja, não apenas o Internet Explorer deve ignorar as regras somente do Firefox, mas também o WebKit e Opera.
Nota: Estou procurando uma solução 'limpa'. Usar um sniffer de navegador JavaScript para adicionar uma classe 'firefox' ao meu HTML não se qualifica como limpo na minha opinião. Eu gostaria de ver algo que depende dos recursos do navegador, assim como comentários condicionais são apenas 'especiais' para o IE…
Respostas:
OK, eu encontrei. Essa é provavelmente a solução mais limpa e fácil existente e não depende do JavaScript ativado.
É baseado em mais uma extensão CSS específica da Mozilla. Há uma lista completa dessas extensões CSS aqui: Extensões Mozilla CSS .
fonte
domain()
filtro. Por exemplo@-moz-document domain(google.com) {...}
, as regras CSS incluídas serão aplicadas apenas no domínio google.com.Atualizado (do comentário de @Antoine)
Você pode usar
@supports
Mais
@supports
aquifonte
Veja como lidar com três navegadores diferentes: IE, FF e Chrome
fonte
Aqui estão alguns hacks do navegador para segmentar apenas o navegador Firefox,
Usando hackers seletores.
Hacks JavaScript
Hacks de consulta de mídia
Isso vai funcionar no Firefox 3.6 e posterior
Se precisar de mais informações, visite browserhacks
fonte
_:moz-tree-row(hover)
que será o único capaz de processar o que.selector{}
vem depois. Atualmente, este hacks específico funciona em todas as versões do Firefox, consulte browserhacks.com para saber mais sobre isso.Primeiro de tudo, um aviso. Eu realmente não defendo a solução que apresento abaixo. O único CSS específico do navegador que escrevo é para o IE (especialmente o IE6), embora eu desejasse que não fosse o caso.
Agora, a solução. Você pediu que fosse elegante, então eu não sei o quão elegante é, mas com certeza vai segmentar apenas as plataformas Gecko.
O truque só funciona quando o JavaScript está ativado e faz uso das ligações do Mozilla ( XBL ), que são muito usadas internamente no Firefox e em todos os outros produtos baseados no Gecko. Para uma comparação, isso é como a propriedade CSS de comportamento no IE, mas muito mais poderosa.
Três arquivos estão envolvidos na minha solução:
ff.html
ff.xml
ff.css
Atualização: A solução acima não é tão boa. Seria melhor se, em vez de anexar um novo elemento LINK, ele adicionasse a classe "firefox" ao elemento BODY. E é possível, apenas substituindo o JS acima pelo seguinte:
A solução é inspirada nos comportamentos moz de Dean Edwards .
fonte
O uso de regras específicas do mecanismo garante uma segmentação eficaz do navegador.
fonte
Uma variação da sua ideia é ter uma
server-side USER-AGENT detector
que descubra qual folha de estilo anexar à página. Dessa forma, você pode ter umfirefox.css, ie.css, opera.css, etc
.Você pode realizar algo semelhante no próprio Javascript, embora não o considere limpo.
Eu fiz uma coisa semelhante por ter uma
default.css
que incluiall common styles and then specific style sheets
são adicionados para substituir ou melhorar os padrões.fonte
Agora que o Firefox Quantum 57 está com melhorias substanciais - e potencialmente inovadoras - para o Gecko conhecidas coletivamente como Stylo ou CSS Quantum, você pode se encontrar em uma situação em que precisa distinguir entre versões herdadas do Firefox e Firefox Quantum.
Da minha resposta aqui :
fonte
A única maneira de fazer isso é através de vários hacks CSS, o que aumentará a probabilidade de sua página falhar nas próximas atualizações do navegador. Se for o caso, será MENOS seguro do que usar um sniffer do navegador js.
fonte
O suporte a CSS está vinculado ao javascript, como uma observação lateral.
https://developer.mozilla.org/en-US/docs/Web/CSS/Mozilla_Extensions
fonte
O código a seguir tende a lançar avisos de estilo de fiapos:
Em vez disso, use
Me ajudou a sair! Obtenha a solução para o aviso de estilo de cotão daqui
fonte