Estou trabalhando em algumas revisões críticas de estilo para o site WordPress de um cliente que foram projetadas por outra equipe.
O CSS parece ser uma bagunça emaranhada. Uma das idiossincrasias que eu encontrei é que estilo principal do tema style.css
, @imports outro estilo de um subdiretório: css/default.css
. Enquanto isso, o default.css
@imports também a folha de estilo principal na parte superior do arquivo.
Eu removi as diretivas @import e adicionei o conteúdo de default.css
to style.css
, mas isso quebra o layout, independentemente de eu colocar os default.css
estilos na parte superior ou inferior do style.css
arquivo. O loop @import faz alguma coisa na cascata que de alguma forma faz o layout "funcionar".
Eu nunca vi nada assim antes. Parece óbvio que eu deveria desembaraçar as folhas de estilo e sequenciar os seletores para aumentar a especificidade. Mas existe alguma lógica razoável para criar deliberadamente dois arquivos CSS que se importam? Parece loucura, mas é possível que haja uma razão de princípios por trás disso?
Sou especializado em desenvolvimento front-end, não em WordPress. Observo que o WordPress analisa a folha de estilo do tema principal para obter informações sobre o tema. A recursão @import é algo útil para o WordPress de alguma forma?
@import
?Respostas:
@import é uma grande bagunça em relação ao tempo de carregamento da página. Depois de concluir as tarefas de CSS, seu cliente vem com a idéia de otimização do tempo de carregamento e, o mais tardar, a pergunta sobre como se livrar do @import aumentará novamente.
Em primeiro lugar, eu tentaria substituir @import por <link>. Em seguida, tente com o dev-tools para determinar quais classes estão em conflito. Depois disso, tente mover as regras CSS do arquivo CSS importado com a adição de! Important.
Pode acontecer que haja alguns problemas com os caminhos (relativos) dos arquivos no arquivo CSS importado ...?
Às vezes, ajuda a carregar no navegador o site com CSS @imported, para que pareça que o cliente espera, copie todo o CSS com a ajuda das ferramentas de desenvolvimento, salve-o em um arquivo CSS e substitua todos os arquivos CSS por este recém-criado 1.
A idéia global que eu tentaria realizar é mover todas as regras CSS para o mesmo arquivo, fazê-las funcionar e, em seguida, mover as regras CSS da área acima da dobra para a cabeça do arquivo HTML.
fonte