Introdução

CSS fica na camada de apresentação do design do site. Se feito da maneira certa, adiciona beleza para seus usuários e a sensação certa para a marcação HTML por baixo. Do contrário, isso pode resultar em uma experiência ruim para o usuário e prejudicar a velocidade e o desempenho do seu site.

Neste artigo, você aprenderá como evitar algumas decisões comuns de codificação CSS que podem paralisar seu site. No final, você poderá acelerar seu site e melhorar a experiência do usuário-exatamente o que todo desenvolvedor deseja!

Cobriremos esses seis tópicos de CSS para melhorar seu código e aumentar o desempenho de seu site:

  1. Escreva seletores simples
  2. Evite animações excessivas
  3. Saiba quando animar propriedades caras
  4. @import demonstrativo
  5. Otimize o tamanho dos seus arquivos
  6. Evite imagens bitmap em base64

Uma nota rápida sobre por que o desempenho do site é importante

Independentemente da natureza do seu site e independentemente de ter um bom desempenho em uma variedade de navegadores da web, ele deve ser carregado rapidamente. Se não for rápido, seus usuários sairão e irão para outro lugar.

Se por acaso você vende produtos ou serviços em seu site, isso significa vendas reduzidas porque há muitas opções disponíveis na web e você deu ao usuário uma indicação clara para procurar outro lugar. Eles podem até desencorajar outras pessoas a usarem seu site no futuro, o que pode resultar em visualizações de página reduzidas.

Vamos começar!

1. Escreva seletores simples

CSS tem uma ampla e flexível variedade de opções de codificação que você pode usar para definir o estilo dos elementos HTML. Ao longo dos anos, os especialistas aconselharam os desenvolvedores a escrever seletores simples para reduzir a carga no navegador e manter o código limpo e simples.

Este próximo bloco de código demonstra o que significa simplicidade:

.hero-image { largura: 70%
} 

No entanto, CSS não o impede de escrever o seguinte:

 principal> div.blog-seção + artigo> * { /* Codifique aqui */
} 

Neste exemplo, nos bastidores, o navegador analisará o seletor da direita para a esquerda, começando com o seletor universal ( * ) e lendo até o seletor principal . Isso é mais trabalho para o navegador do que o normal. Mesmo que estejamos falando sobre uma diferença de milissegundos para analisar este seletor, esses milissegundos realmente somam quando este método do seletor ocorre várias vezes em sua folha de estilo.

Além disso, quanto mais longos seus seletores, mais bytes eles adicionam ao tamanho geral da sua folha de estilo.

2. Evite animações excessivas

Agora que a animação está disponível em CSS nativo, não há necessidade de usar JavaScript para adicionar animações às suas páginas da web. Isso torna a adição de animações ao seu site um pouco mais fácil e significa que, se bem feito, você pode aproveitá-las para criar uma melhor experiência do usuário.

Quando você exagera, no entanto, pode distrair o usuário da tarefa que está tentando realizar ao visitar o seu site. Lembre-se também de que cada animação que você adiciona leva tempo para ser analisada, portanto, o excesso de animação pode desacelerar ou interromper o navegador da Web.

3. Saiba quando animar propriedades caras

É simples: as propriedades que fazem com que a página inteira seja remodelada não devem ser animadas. Essas propriedades são normalmente chamadas de “caras” porque podem criar um tempo de carregamento significativo em seu site. Alguns deles são:

  • margin
  • padding
  • height
  • width

A razão para isso é que, quando você altera propriedades como margem e outras dimensões de um único elemento DOM, isso causa alterações em todos os outros elementos.

Algumas outras propriedades, como opacity e transform , podem ser animadas porque não afetam o layout de outros elementos. Isso possibilita que os navegadores da web descarreguem esses cálculos para a GPU de forma ainda mais rápida.

Algumas outras propriedades CSS são mais comumente usadas, mas ainda levarão mais tempo para serem pintadas. Algumas dessas propriedades incluem:

  • :nth-child
  • box-shadow
  • border-radius
  • position: fixed

Quando eles aparecerem na casa das centenas na sua folha de estilo, haverá impacto no desempenho do seu site. Use essas propriedades com moderação.

4. declaração de @<”import

A instrução @import é usada principalmente para incluir ativos como fontes, embora possa incluir outros arquivos CSS. CSS é o bloqueio de renderização, o que significa que quando você usa a instrução @import em seu arquivo CSS para buscar uma fonte ou outro arquivo CSS, o navegador buscará o ativo antes de continuar processando o código CSS restante.

/* styles.css */
/** * O navegador buscaria base.css antes * processando o código restante em styles.css */
@import url ("base.css"); 

Quando o ativo é um arquivo de fonte, o navegador usará a fonte disponível no sistema enquanto aguarda o download da outra fonte. Após o download, ele trocará a fonte do sistema pela fonte baixada. Portanto, seu usuário pode estar lendo seu conteúdo em uma fonte e, de repente, a fonte muda para outra. Isso é ruim para a experiência do usuário.

Aqui está um exemplo de carregamento de uma fonte com a instrução @import :

/** * Exemplo de carregamento de uma fonte com o * declaração @import. * A fonte só está disponível após o download.
*/
@import url ('https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap'); 

Em vez disso, recomendamos o uso da tag link no head de seu HTML para carregar suas fontes da seguinte maneira:

  

Aqui, rel="preload" e as="font" informam ao navegador para iniciar o download da fonte o mais rápido possível. Você também pode tomar medidas para garantir que o arquivo de fonte que está pré-carregando corresponda aos do seu CSS para evitar que o usuário baixe duas versões da mesma fonte e desperdice sua largura de banda.

​​5. Otimize o tamanho dos seus arquivos

Em design e desenvolvimento web, o tamanho é importante. Esteja você lidando com uma imagem, um arquivo HTML ou JavaScript ou outros recursos de mídia, existe uma regra de ouro: sempre compactue.

Reduza o tamanho do seu arquivo CSS por minificação. As imagens em seu site devem ser otimizadas para reduzir a velocidade de carregamento, o que pode significar o uso de uma ferramenta online como TinyPNG -ou, se você estiver criando suas próprias imagens, aproveitando ferramentas como Salvar para a Web no Photoshop.

6. Evite imagens de bitmap em base64

Imagens em base64 estão entre as opções para incorporar imagens em uma página da web. Ao longo dos anos, especialistas como Harry Roberts mostraram por que as imagens base64 são ruins para o desempenho por vários motivos:

  • Eles aumentam significativamente o tamanho geral do arquivo CSS
  • Eles são baixados independentemente de serem usados ​​ou visualizados
  • A codificação Base64 resulta em um tamanho de arquivo de imagem maior do que o normal
  • O navegador deve analisar toda a string base64 antes que possa ser usada

Na imagem abaixo, observe o aumento no tamanho de cada imagem antes e depois da conversão para base64 :

Antes e depois da conversão da imagem base64

Veja o que acontece quando adicionamos essas três imagens base64 a um arquivo CSS com apenas 14 linhas de código:

/** * Código Base64 truncado.
*/
@media screen e (min-width: 20em) { html { imagem de fundo: url ('dados: imagem/png; base64, iVBO...'); } rodapé { imagem de fundo: url ('dados: imagem/png; base64, iVBO...'); } .non-existing-class { imagem de fundo: url ('dados: imagem/png; base64, iVBO...'); } } 

O tamanho do arquivo aumentou para mais de 500 KB. Além de ser enorme, o navegador do usuário também gastará tempo baixando esse arquivo, independentemente de a imagem ser usada ou não.

aumento do tamanho do arquivo de imagem base64

Enquanto isso, no código a seguir, o navegador faria o download da imagem sob demanda com base na janela de visualização do navegador.

 html { preenchimento: 2em; imagem de fundo: url ("images/asnim_mobile.jpg");
} @media screen e (min-width: 20em) { html { imagem de fundo: url ("images/asnim_tablet.jpg"); }
} @media screen e (min-width: 48em) { html { imagem de fundo: url ("images/asnim.jpg"); tamanho do fundo: capa; }
} 

Você pode verificar isso executando as seguintes etapas:

  1. Crie três imagens de tamanhos diferentes para pontos de interrupção diferentes, conforme mostrado no bloco de código anterior
  2. Replique o bloco de código com suas imagens como imagens de fundo
  3. Inicie seu navegador e abra a guia Rede nas ferramentas do desenvolvedor
  4. Redimensione a janela de visualização do seu navegador e observe

Conclusão

Quando você pegar as lições aprendidas neste artigo e aplicá-las em seus futuros projetos da web, saiba que estará contribuindo para uma web melhor! Se você tem um site que precisa de uma reformulação de desempenho, refatore seu código usando as lições aprendidas neste artigo e diga-nos como fica nos comentários.

Leituras adicionais

Procure algumas dicas sobre CSS adicional e atualizações gerais de desempenho da web que você pode fazer:

A postagem Melhore o desempenho do CSS com essas 6 dicas apareceu primeiro no LogRocket Blog .