A semântica CSS está relacionada à criação de códigos organizados, claros e fáceis de compreender.
Diferente do HTML, onde a semântica define o significado do conteúdo, no CSS ela está ligada à forma como criamos nomes de classes, estruturas e estilos.
Semântica significa atribuir significado aos elementos.
| Tecnologia | Semântica |
|---|---|
| HTML | Define o significado do conteúdo. |
| CSS | Organiza e apresenta os estilos. |
Um exemplo de código difícil de entender:
.red {
color:red;
}
.box1 {
margin:20px;
}
Os nomes não explicam a finalidade do elemento.
Classes devem representar o papel do elemento.
.menu-principal {
background:#333;
}
.card-produto {
padding:20px;
}
O nome explica sua utilização.
| Evitar | Utilizar |
|---|---|
| .azul | .botao-principal |
| .caixa1 | .card-aluno |
| .textoGrande | .titulo-secao |
BEM significa:
.menu {
}
.menu__item {
}
.menu__item--ativo {
}
.card {
border:1px solid #ccc;
}
.card__titulo {
font-size:24px;
}
.card--destaque {
background:#eee;
}
css/
│
├── reset.css
├── layout.css
├── components.css
├── pages.css
└── responsive.css
A separação facilita encontrar e alterar estilos.
| Arquivo | Responsabilidade |
|---|---|
| reset.css | Normalizar estilos. |
| layout.css | Estrutura da página. |
| components.css | Componentes reutilizáveis. |
| responsive.css | Adaptação mobile. |
Criar classes reutilizáveis evita repetição de código.
.botao {
padding:10px;
border-radius:5px;
}
.botao-principal {
background:blue;
}
| Benefício | Resultado |
|---|---|
| Organização | Código mais limpo. |
| Manutenção | Alterações rápidas. |
| Equipe | Maior entendimento. |
| Escalabilidade | Projetos maiores. |
| Erro | Problema |
|---|---|
| .vermelho | Classe depende da aparência. |
| .div1 | Não possui significado. |
| CSS gigante | Dificulta manutenção. |
| Conceito | Descrição |
|---|---|
| Semântica CSS | Código organizado e significativo. |
| Classes | Devem representar funções. |
| BEM | Padrão de nomenclatura. |