Depois que as pessoas se acostumam com algo, é difícil alterá-lo. Por vários motivos, há cada vez mais navegadores novos, mas os antigos não podem ser eliminados. O crescimento é sempre mais rápido que a morte, fazendo com que a compatibilidade do navegador se torne um assunto interminável. Falando em compatibilidade de navegador, CSS HACK naturalmente vem à mente. Hoje, geralmente temos uma equipe ou um time de pessoas fazendo a mesma coisa em uma empresa. Precisamos ter especificações unificadas de codificação para facilitar a manutenção. A forma de resolver a compatibilidade é (deve ser, porque é a mais provável que haja problemas) uma das especificações mais importantes a serem resolvidas.
Em termos de soluções de compatibilidade, se quisermos formular uma especificação unificada, pessoalmente penso que os três pontos seguintes devem ser os princípios básicos:
Colocar o custo em primeiro lugar aqui não significa que não estejamos dispostos a perseguir a perfeição, mas que perseguir a perfeição demasiado deliberadamente pode por vezes dificultar o nosso progresso depois do custo, deve ser sustentável e legível, o que é muito importante para a equipa, e é crucial; o resultado final é a redução de custos.
Vamos salvar esses três princípios primeiro e dar uma olhada em nossos métodos usuais de escrita para resolver problemas compatíveis (uma lista detalhada de métodos de Hack será anexada posteriormente):
1. Hack do seletor de CSS
/* Ópera */
@media todos e (-webkit-min-device-pixel-ratio:10000), nem todos e (-webkit-min-device-pixel-ratio:0)
{cabeça ~ corpo .sofish {display: bloco;}}
As vantagens e desvantagens desta forma de escrever são :
2. Hack de propriedade CSS
.sofish{
preenchimento: 10px;
preenchimento:9px9; /* tudo isto */
preenchimento:8px ; /* ie8-9 */
*preenchimento:5px; /* ie6-7 */
+preenchimento:7px; /* ie7 */
_preenchimento:6px; /* ie6 */
}
As vantagens e desvantagens desta forma de escrever são :