O CSS deve passar por um pipeline relativamente complexo, assim como HTML e JavaScript. O navegador deve baixar os arquivos do servidor e, em seguida, proceder para analisar e aplicá-los ao DOM. Devido a níveis extremos de otimização, esse processo é geralmente bastante rápido - para projetos da Web menores, não com base nas estruturas, o CSS geralmente compõe apenas uma pequena parte do consumo total de recursos.
Frameworks perturbam este equilíbrio. Inclua uma pilha GUI JavaScript como JQuery UI e assistir a CSS, JS e HTML Size Swyrocket. Muitas vezes, os desenvolvedores geralmente sentem a pinça por último - quando sentados por trás de uma poderosa estação de trabalho de oito núcleos com a Internet T3, ninguém se importa com a velocidade. Isso muda como latências ou dispositivos com restrição de CPU vêm para jogar.
Otimizar CSS requer uma abordagem multidimensional. Enquanto o código escrito à mão pode ser reduzido usando várias técnicas, passando por código-quadro à mão é ineficiente. Nesses casos, usar um minimizador automatizado produz melhores resultados.
Os seguintes passos nos levarão a uma jornada através do mundo da otimização de CSS. Nem cada um pode ser diretamente aplicável ao seu projeto, mas mantê-los em mente. Quer algo mais simples? Tente A. Construtor de sites .
A cláusula CSS mais rápida é aquela que nunca é analisada. Usando cláusulas de taquigrafia, como a Declaração de Margem mostrada abaixo, reduz radicalmente o tamanho dos seus arquivos CSS. Muitas formas abreviadas adicionais podem ser encontradas pelo Googling 'CSS Thathand'.
p {margin-top: 1px;
Margem-direita: 2px;
margem inferior: 3px;
margem esquerda: 4px; }
p {margem: 1px 2px 3px 4px; }
Eliminar partes desnecessárias do seu marcador, obviamente, causa imensas ganhos de velocidade. O navegador Chrome do Google tem essa funcionalidade fora da caixa. Basta ir para ver & gt; Desenvolvedor e GT; Ferramentas do desenvolvedor e abra a guia Fontes em uma versão recente e abra o menu de comando. Depois disso, selecione Mostrar cobertura e festejar os olhos na janela Análise de cobertura destacando o código não utilizado na página atual.
Navegar através da análise linha-linha não é necessariamente confortável. A auditoria de desempenho da Web do Chrome retorna informações semelhantes - simplesmente abri-lo da barra de ferramentas, view & gt; Desenvolvedor e GT; Ferramentas de Desenvolvedor e GT; Auditorias e deixe correr. Quando terminar, uma lista de elementos problemáticos aparecerá.
Tenha em mente que uma análise automatizada de um CSS sempre pode levar a erros. Realize um teste completo de todo o site depois de substituir seus arquivos CSS com os minifieds - um nunca sabe que erros o otimizador causou. E seguir em frente, decente hospedagem na web. pode ajudá-lo a passar os vincos em seu site.
Carregamento de estilos externos Custa o tempo devido à latência - qualquer pessoa se lembra do 'flash de conteúdo instável'? Os bits mais críticos do código podem, portanto, ir para a tag de cabeçalho. Certifique-se de não exagerar, no entanto. Tenha em mente que o código também deve ser lido por humanos realizando tarefas de manutenção.
& lt; html & gt;
& lt; head & gt;
& lt; estilo & gt;
.blue {cor: azul;}
& lt; / style & gt;
& lt; / head & gt;
& lt; corpo e gt;
& lt; div classe = "azul" & gt;
Olá Mundo!
& lt; / div & gt;
@import adiciona estrutura ao seu código CSS. Infelizmente, os benefícios não são de graça: como as importações podem ninharias, analisando-as em paralelo não é possível. Uma maneira mais paralelizável usa uma série de & lt; link & gt; Tags, que o navegador pode buscar de uma só vez.
@Import URL ("A.CSS");
@Import URL ("B.CSS");
@Import URL ("C.css");
v & lt; link rel = "Stylesheet" href = "a.css" & gt;
& lt; link rel = "stylesheet" href = "b.css" & gt;
& lt; link rel = "stylesheet" href = "c.css" & gt;
Anos atrás, um conjunto de PNGs semi-transparentes para criar efeitos translúcidos em sites era comum. Hoje em dia, os filtros CSS fornecem uma alternativa de salvamento de recursos. Como exemplo, o snippet que acompanha esta etapa garante que a imagem em questão apareça como uma versão em escala de cinza de si mesmo.
img {
-Webkit-Filter: Grayscale (100%); /* velho
Safari * /
Filtro: escala de cinza (100%);
}
A sabedoria comum ensina que os descritores de cores de seis dígitos são a maneira mais eficiente de expressar cores. Este não é o caso - em alguns casos, descrições de taquigrafia ou nomes de cores podem ser mais curtos.
Alvo {background-cor: #ffffff; }
alvo {fundo: #fff; }
CSS suporta uma ampla variedade de unidades e formatos numéricos. Eles são um alvo agradecido para otimização - ambos os zeros à direita e seguindo podem ser removidos, como é demonstrado no snippet abaixo. Além disso, tenha em mente que um zero sempre é um zero, e que adicionar uma dimensão não agrega valor às informações contidas.
preenchimento: 0.2em;
Margem: 20.0em;
Avalue: 0px;
preenchimento: .2em;
Margem: 20EM;
Avalue: 0;
Essa otimização é um pouco crítica, pois afeta as mudanças de código. A especificação CSS permite omitir o último ponto e vírgula em um grupo de propriedades. Como a poupança obtida por este método de otimização é mínima, mencionamos isso principalmente para aqueles que estão trabalhando em um otimizador automatizado.
p {
. . .
Tamanho da fonte: 1.33EM
}
Carregar vários pequenos sprites é ineficiente devido a sobrecargas de protocolo. Os Sprites CSS combinam uma série de pequenas fotos em um grande arquivo PNG, que é então quebrado através das regras CSS. Programas como Texturepacker. Simplifique muito o processo de criação.
.download {
Largura: 80px;
Altura: 31px;
Fundo-posição: -160px -160px
}
.download: pairar {
Largura: 80px;
Altura: 32px;
Fundo-posição: -80px -160px
}
Uma maneira interessante de aumentar o desempenho usa uma especialidade do padrão CSS. Valores numéricos sem uma unidade são assumidos como pixels - removendo o PX salva dois bytes para cada número.
H2 {preenchimento: 0px; Margem: 0px;}
H2 {PADDING: 0; Margem: 0}
A análise mostrou que algumas tags são mais caras do que outras. A lista que acompanha esta etapa é considerada especialmente com fome de desempenho - evitá-los quando tiver a oportunidade de fazê-lo.
raio de fronteira
Sombra da caixa
transformar
filtro
: nth-criança
Posição: fixo;
etc.
Espaço em branco - Pense guias, retornos de carruagem e espaços - torna o código mais fácil de ler, mas serve pouco propósito do ponto de vista de um analisador. Elimine-os antes do envio. Uma maneira ainda melhor envolve delegar este trabalho para um script shell ou aparelho similar.
Comentários também não servem a propósito para o compilador. Crie um analisador personalizado para removê-los antes da entrega. Não só isso economiza largura de banda, mas também garante que atacantes e cloners tenham dificuldade em entender o pensamento por trás do código em mãos.
A equipe de experiência do usuário do Yahoo criou um aplicativo que lida com muitas tarefas de compactação. Ele é enviado como um arquivo jar, disponivel aqui e pode ser executado com uma JVM de escolha.
Java -jar yuicompressor-x.y.z.jar
Uso: Java -jar yuicompressor-x.y.z.jar
[Opções] [Arquivo de entrada]
Opções globais
-h, --help exibe isso
em formação
--type & lt; js | CSS & GT; Especifica o
Tipo do arquivo de entrada
Se você preferir integrar o produto em Node.js, visite npmjs.com/package/yuicompressor. . O repositório mal mantido contém um conjunto de arquivos wrapper e uma API JavaScript.
Var Compressor = requer ('yuicompressor');
compressor.compess ('/ caminho / para /
arquivo ou string de js ', {
// Opções do compressor:
charset: 'utf8',
Tipo: 'JS',
Embora o desempenho do seletor CSS não seja quase tão crítico quanto alguns anos atrás (ver recurso), estruturas como SASS às vezes emitem código extremamente complexo. Dê uma olhada nos arquivos de saída de vez em quando e pense em maneiras de otimizar os resultados. Tem resultados para compartilhar com uma equipe? Mantenha arquivos em compartilháveis armazenamento na núvem .
Um velho ditado afirma que o arquivo mais rápido é aquele que nunca é enviado através dos fios. Fazer as solicitações de cache do navegador alcança isso eficientemente. Infelizmente, a configuração dos cabeçalhos de cache deve ocorrer no servidor. Faça um bom uso das duas ferramentas mostradas nas capturas de tela - elas fornecem uma maneira rápida de analisar os resultados de suas alterações.
Os designers geralmente não gostam de cache devido ao medo de problemas com as próximas mudanças. Uma maneira perfeita em torno do problema envolve incluindo tags com o nome do arquivo. Infelizmente, o esquema descrito no código que acompanha esta etapa não funciona em todos os lugares, pois alguns proxies se recusam ao cache arquivos com caminhos "dinâmicos".
& lt; link rel = "stylesheet" href = "style.css? V = 1.2.3" & gt;
Otimizar CSS é apenas parte do jogo. Se o seu servidor não usar a compactação HTTP / 2 e GZIP, é perdido muito tempo durante a transmissão de dados. Felizmente, consertar esses dois problemas geralmente é simples. Nosso exemplo mostra alguns ajustes para o servidor Apache comumente usado. Se você se encontrar em um sistema diferente, basta consultar a documentação do servidor.
pico /etc/httpd/conf/httpd.conf
AddoutPutFilterbytype Defla texto / html
AddoutPutFilterbyType Deflate Text / CSS
Este artigo foi originalmente publicado em emissão 282 da revista Creative Web Design Web designer . Comprar edição 282 aqui ou Inscreva-se no web designer aqui .
Artigos relacionados:
Pagina 1 de 2: Como desenhar um cavalo: passo a passo Como desenhar um ca..
A Adobe Capture CC é um aplicativo fantástico que permite encontrar fontes e cores simplesmente tirando uma foto. Você pode estar se perguntando quais fontes foram usadas em sua revista fa..
Bungie Lead Ambiente Artista Daniel Thiger nos corre através de suas técnicas para produzir materiais de texturização realist..
Materiais Marjolein usa óleo de linhaça como meio, que tem o benefício de secagem dentro de dias. Ao tr..
Arte impressionista foi fresca e espontânea, e executada com pinceladas em negrito que não revelou muito detalhes. ..
Pagina 1 de 2: Página 1 Página 1 Pági..
Quando eu queria criar uma peça divertida de Arte 3D. Com uma expressão pateta, vi um conceito de Randy Bishop E..
Para demonstrar construir uma criatura em zbrush eu estou usando este pedaço de Arte 3D. Estou trabalhando, desen..