Çarpışmaların önlenmesi kapsamında sınıfları organize etme tekniklerinden biri, bir ebeveynin sınıfını genişletmek + bir sonek eklemektir.SCSS. Referans ikinci seviye artan seçici
.a{
&__b{}
&__c{}
&__d{}
: - Örneğin: yapısı böyle sağlanabilir yukarıda böylece,
&
küstahlık/SCSS dosyalarında, kod çoğaltma değil hususlar itibaren
<div class="a">
<div class="a__b">
<div class="a__c">
<span class="a__d">
, tek bir ve işareti yardımıyla bir üst başvurabilir
.a__b {}
.a__c {}
.a__d {}
Ama zorluklar bir sonucu olarak böyle bir css
almak gerektiğinde görünür: içine transfomed edilir
.a:hover{
color: red;
}
.a:hover .a__b{
color: blue;
}
Ana fikir seçicilerin çoğaltılması değil, bir soru ortaya çıkıyor - ikinci düzey ana öğeye başvurmanın bir yolu var mı? &&
'un bir sorun olmadığını biliyorum, ancak ikili ampersan davranışı simüle etmenin bir yolu var mı?
.a{
&:hover{
color: red;
& __b { /* & -> .a:hover, but I need just .a */
color: blue;
}
}
}
değil bir sorun, .a
yineleniyor: Ayrıca
.a:hover { //here
color: red;
.a__b { //here
color: blue;
}
}
değil bir sorun:
.a { //ok
&:hover {
color: red;
.a__b { //oops, duplicated selector
color: blue;
}
}
}
Yani, çarpışmalar sınıfları var birçok kez kaçınma düşüncelerden uzun isimler. Yinelenen seçmenler kodun korkutucu görünmesidir. Düşünün, .a
seçicisinin yerine şu: .custom-layers-list-panel-conatiner
. Yinelenen sınıflardan kaçınmanın bir başka nedeni, ebeveyn sınıfı değiştiğinde, her yerde değiştirilmelidir. Evet, günümüzde bazı özel araçlarla oldukça önemsiz bir görev ama yine de hataların ortaya çıkabileceği bir yer.
Evet, işte bu kadar! Teşekkürler –
rica ederim :) –
Bu harika! Bu cevapları kabul edemem ve iki kere cevap veremem yazık oldu :) –