Pistas e ligações a artigos para criação de folhas de estilo devem ser aqui coligidas. Para introdução do problema que estamos a tentar resolver ver [entrada no blogue do Simon]. Para ferramentas que ajudem na manutenção de folhas de estilo, ver TheToolsWillSaveUs.
- [Arquitectar CSS], por Garrett Dimon, é uma boa revisão do problema com ideias fortes sobre como repartir as regras de CSS em diversos ficheiros.
- [Redundância versus Dependência] por, Dave Shea, onde explora o equilíbrio entre dois extremos de desenvolvimento de CSS.
- [CSS Modular], por Mike Stenhouse, descreve um esquema simples onde as regras são agrupadas em diferentes ficheiros baseadas em assuntos: tipografia, formulários, arranjos e cor.
- [Organização de CSS], por Doug Bowman, pistas sobre agrupamento e indicação de grupos. (Por acaso acho que a separação do CSS em vários ficheiros é contraprodutivo em termos de manutenção, mas pode ser só minha opinião.)
- [CSS que Pode Ser Facilmente Mantido], por Nathan Steiner, as suas pistas pessoais em resposta à chamada do Simon.
- [Inclusão PHP em CSS], por Nick Bair, descreve o uso dos mecanismo de inclusão do PHP de modo a oferecer uma solução de ficheiro único para um CSS com facilidade de ser mantido.
- [Técnicas de Ramificação] por Thierry Koblentz.
- [Jogar de foma justa com o CSS das outras crianças], por Mike Stenhouse, tenta criar directrizes para fazer manutenção de CSS e codificação em equipa mais fáceis.
Segregar os seus estilos
Limitar especificamente o "alcance" das declarações de estilo. Por exemplo, tenho um certo estilo aplicado a conteúdo prefixo isso com um #conteudo, mesmo que não seja necessário. Especificar a parte da estrutura semântica a que o estilo se aplica irá essencialmente segregar o estilo de modo a que a cascata não afecte mais nada por acidente.
De forma similar separo o posicionamento da tipografia.
Desenvolver "conceitos" para o sítio/aplicação ajuda a manter as coisas sãs. Toda a decoração para cada conceito vai para o(s) seu(s) próprio(s) ficheiro(s). Exemplos de conceitos:
- Carrinho de compras (carrinho-ecra.css / carrinho-impresso.css)
- Tabelas de doces coloridas
- Formulários de entrada de dados
Estes ficheiros podem depois ser ligados a tantas folhas de estilo quantas as necessárias.
CSS Fácil de Manter
As minhas recomendações para CSS Fácil de Manter. Admito que possa haver aqui alguma repetição mas estou a tentar ser mais conciso aqui.
- Repartir o seu CSS no conceito coerente mais pequeno possível
estrutura.css carrinhodecompras.css basesdedados.css descricoesdeprodutos.css ...
- Organizar ficheiros num conjunto de pastas que lhe permitam perceber a finalidade de cada ficheiro. Mantenha aquelas coisas que tenham elevada probabilidade de alteração como (cor, tipografia, gráficos, etc) projecto a projecto, ou semana a semana em localizações diferentes
ecra/estrutura.css ecra/carrinhodecompras.css ... impresso/estrutura.css impresso/carrinhodecompras.css ... brand/estrutura.css brand/carrinhodecompras.css...
- Use ID raramente: ID tem que ser única numa página e assim sendo ao usarmos id em elementos estruturais significa que só iremos ter por exemplo um bloco conteudo numa página. Se for cuidadoso, #conteudo p é tão específico como .content p e <div class="conteudo">...</div> pode ser largado em tantos lugares quantos os necessários. Pode usar ID para algo como <div class="produto" id="produto00121">...</div> mas deve ter muito cuidado para se assegurar que só se refere uma vez numa página a produto00121.
- Evite usar o mesmo nome de classe para diferentes finalidades: A cascata pode ser muito poderosa mas, por vezes, há a tentação de usar o mesmo nome de classe genérico em vários sítios. Se não segregar o seu CSS bem, pode correr perigo.
- Usar sempre o mesmo nome de classe para finalidade similar: Visto a cascata ser tão poderosa deve reutilizar o mesmo nome de classe em diferentes classes quando representam o mesmo conceito.
- Usar nomes de classes que revelem intencionalidade: Pode ser tentador usar nomes de classes breves mas demasiado cifrados (.s, .lbl) que no caso de não manter um glossário actualizado de nomes de classes irá esquecer o que querem dizer. Pode também correr perigo com navegadores desactualizados que podem ocasionalmente ser confundidos por nomes de classes breves que comecem da mesma forma (i.e. .err e .erros são, por vezes, confundidos.)
- Colocar o seu nome de classe no elemento mais exterior onde faça sentido e Não Se Repita a Sí Mesmo (DRY): Por vezes irá ver coisas como:
<div class="tituloproduto">...</div> <div class="descricaoproduto">...</div> <div class="ligacoesproduto">...</div>
É melhor escrever:
<div class="produto"> <h3>...</h3> <div class="descricao">...</div> <div class="ligacoes">...</div> </div>
- Usar vários nomes de classes em todo o lado: As an example, if you have a form, fields are typically either required or optional and have an error or not. Without using multiple classnames you often end up with the following:
.exigido {...} .opcional {...} .erroexigido{...} .erroropcional{...}
Isto frequentemente leva a muita duplicação de CSS visto a diferença entre exigido e opcional é normalmente um asterísco para indicar que determinado campo tem que ser preenchido. De forma similar campos onde haja erros são normalmente coloridos a vermelho ou são de algum outro modo realçados. Uma solução melhor é usar vários nomes de classes:
.campo {... propriedades comuns a campos, posicionamento, etc ...} .exigido {... adicionar imagem de fundo ...} .erro{... cor de texto diferente ...} <div class="campo">...</div> <div class="campo exigido"> ... </div> <div class="campo erro"> ... </div>
A única vez que isto lhe poderá trazer problemas sucede quando nos campos exigidos quando com erros o IE não compreender .exigido.erro correctamente.
Esta entrada é uma tradução de http://css-discuss.incutio.com/?page=MaintainableCss.
2 comentários:
Nice blog. Já ficou marcado.
@braço.
O bitate é mais eclético do que este.
Demorei algum tempo até começar a colocar aqui algumas entradas com algo que não tinha a haver directamente com desenvolvimento de sítios e conexos.
Quanto as suas flexões há aqueles que são de uso corrente e outras que nem tanto. É provável que aí se encontre a razão da ausência.
Enviar um comentário