Encapsulamento de classes CSS #1048
Replies: 11 comments
-
Recomendo a segunda @lciceris, apenas adicionaria o padrão BEM, nesse caso, basta trocar o |
Beta Was this translation helpful? Give feedback.
-
A segunda é bem melhor mesmo, como o @mahenrique94 disse. 😄 A especificidade da classe fica menor, aqui tem uma imagem desse artigo que é bem interessante sobre isso. |
Beta Was this translation helpful? Give feedback.
-
Faça o possível para sempre usar apenas os Darth Maul. |
Beta Was this translation helpful? Give feedback.
-
@lciceris Existem algumas abordagens utilizando JavaScript que fazem esse papel de encapsulamento pra você. Entre elas, as mais famosas: Como todas as coisas do mundo, existe uma lista awesome maneira com comparativo entre as libs. Sem nenhuma lib, existem diversas técnicas também. Você provavelmente deve conhecer algumas delas, mas entre todas acredito que o BEM é a que melhor funciona. |
Beta Was this translation helpful? Give feedback.
-
@lhbzr incrível a didática dessa explicação com star wars 👏👏👏 |
Beta Was this translation helpful? Give feedback.
-
Valeu pessoal, todos os comentários deram um baita help aqui 😀 |
Beta Was this translation helpful? Give feedback.
-
@lhbzr ótima imagem, mas fiquei com uma dúvida. No exemplo, que o @lciceris deu, a especificidade não seria a mesma? Acredito que em cada vai ser 3x class selector, "0,3,0 Sith Power", a única diferença é a convenção e/ou metodologia que está sendo usada para nomear as classes. |
Beta Was this translation helpful? Give feedback.
-
Eu indicaria usar o RSCSS. Você faria assim: <div class"component">
<div class="title">
<span class="span"></span>
</div>
</div>
.component {
> .title {
> .span {
}
}
} O seletor |
Beta Was this translation helpful? Give feedback.
-
Existe uma diferença importante pra ser considerada, como o @lhbzr comentou, a especificiadade. .component {
&-title {
&-span {
}
}
} result em : .component-title-span {} Enquanto .component {
.title {
.span {
}
}
} resulta em: .component .title .span {} Ou seja, |
Beta Was this translation helpful? Give feedback.
-
Hoje em dia muitos frameworks já fazem encapsulamento a nível de componente, o que significa que as vezes nem faz sentido usar padrões mais complexos de nomenclatura no seu CSS, porque ele simplesmente não vai correr risco de entrar em conflito. Se esse for seu caso (estiver usando um desses frameworks), acredito que possa continuar com o seu primeiro exemplo: .component {
.title {
.span {
}
}
} Caso você não use nenhum tipo de encapsulamento, eu particularmente recomendo o RSCSS assim como o @klauskpm explicou, pela simplicidade e limpeza que ele possibilita no código. |
Beta Was this translation helpful? Give feedback.
-
@bernardodiasc Obrigado pelo esclarecimento. Preciso estudar mais o Sass, não lembrava desse modificador "ampersand (&) character". |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Fala pessoal, tive uma dúvida aqui de encapsulamento de css, pensei em 2 formas de fazer:
1-
2-
Qual seria a mais adequada de usar e pq ?
Beta Was this translation helpful? Give feedback.
All reactions