Pergunta

Eu só começou a trabalhar para um bem grande empresa e meu grupo gerencia todos os seus sites voltados ao público. Abri a folha de estilo para a primeira vez hoje e ter visto mais de 20 instâncias dos designers usando o hack voz familiar para corrigir um bug do IE. (Eu não sei por que eles permitem que os designers gráficos para escrever qualquer tipo de marcação em tudo)

O que é a opinião pública geral do hack voz familiar. Valerá a pena o tempo para recomendar usando o IE comentários condicionais para incluir estilos personalizados lençóis?

Foi útil?

Solução

Hacks de qualquer tipo são perigosos, pois eles são propensos a ter efeitos indesejados em navegadores futuros (lotes rompeu com IE7). As formas seguras de filtragem CSS são:

  • (Para IE apenas) Usando comentários condicionais. Estes irão sempre funciona em navegadores da Microsoft e sempre ser ignorado por todos os outros navegadores como eles estão dentro de comentários
  • segmentação metragem - usando seletores CSS que só são suportadas pelos navegadores modernos para parar navegadores mais antigos que tentam interpretar as regras. No entanto, o fato de que um navegador reconhece sintaxe não significa que ele manipula-lo corretamente. Tudo que você garantir aqui é que os navegadores mais antigos não vai tentar tornar estas regras não que os modernos vai fazê-las corretamente

Sempre que possível use o subconjunto de CSS suportados corretamente por todos os principais navegadores. Isto está melhorando ao longo do tempo como navegadores buggier mais velhos cair para percentagens ignorable de seus usuários.

Outras dicas

O "voice-family" corte, mais conhecido como o Tantek Celik Box Model Hack, é usado para regras CSS hide específicas de IE4 / 5 no Windows por causa de implementações incorrectas da norma CSS nos navegadores. É uma tentativa de entregar a folha de estilo único e mais correta para todos os navegadores, sem recorrer ao navegador sniffing e várias folhas de estilo.

Ironicamente este hack é o resultado de muitas horas-homem (meses?) De experimentação e testes para desenvolver um estilo compatível com os padrões que funciona em mais velhos, mais recente, e os browsers futuros. É uma das várias soluções que foram criadas para compensar o estado horrível do cumprimento navegador para o padrão CSS.

Veja Jeffrey Zeldman Designing com Padrões Web para um olhar em profundidade por aderir aos padrões (tanto quanto possível) é um objetivo digno, e por que usar o navegador sniffing e várias folhas de estilo só provoca dores de cabeça para o desenvolvedor:

http://www.amazon.com/Designing-Web-Standards-Jeffrey -Zeldman / dp / 0321385551 /

Um exemplo é a corrida armamentista para manter-se com combinações de navegador / sistema operacional, para não mencionar os telefones celulares e outros dispositivos futuros com a navegação capacidade. O código de detecção tem de ser alterado a cada nova combinação, e por causa da maneira que muitos navegadores mascarar como Netscape Navigator, a detecção pode se tornar um emprego a tempo inteiro.

Outra boa referência é o Projeto Web Standards, que tem um monte de boas informações e tutoriais sobre o assunto:

http://www.webstandards.org/

Se você mover seu estilo de codificação no sentido de padrões de conformidade, você geralmente não precisa ser tão preocupados com o lançamento de futuros navegadores. Sim, você ainda tem que testar contra eles, mas você não tem que escrever e, em seguida, folhas de estilo personalizados de teste para cada um.

Meu sentimento sobre hacks como este é que você deve evitá-los, se puder. Se for possível para obter a tradução correta em navegadores sem recorrer a tais enganos, então você deve fazê-lo da maneira certa. No entanto, por vezes, os navegadores têm implementações CSS de buggy, e é necessário o uso de hacks como este.

Não use condicional inclui. Use um href="http://rafael.adm.br/css_browser_selector" rel="nofollow noreferrer"> seletor CSS , é muito mais elegante. Você pode direcionar aulas em navegadores individuais (e / ou versões):

.myClass {...}

.ie6 .myClass {...}

scroll top