A harmadik példád az egyszerű szelektorok láncolásáról szól a descendant combinator segítségével, ami olyan, mint a child combinator egy homályosabb és lassabb változata. Ha nem támogatod az IE6-ot, akkor inkább a gyermek kombinátort használd helyette.
Például #twitter p
vs #twitter>p
. A böngésző először összegyűjti az összes p
elemet, majd egy szinttel feljebb megy, és ellenőrzi, hogy ez az elem megkapta-e a “twitter” azonosítót. Ha nem, akkor a böngésző itt megáll, ha a gyermek kombinátort használta. A descendant combinatorral egészen a gyökércsomópontig utazik (ha nem talál útközben néhány #twitter
-et). Tehát a hamis pozitív eredmények mindig valamivel lassabbak a leszálló kombinátorral.
A nagyobb probléma a leszálló kombinátorral a homályossága, ami növeli az ütközések lehetőségét. Ennek mellékhatásaként a tetszőlegesen beágyazható struktúrák létrehozása sokkal trükkösebbé válik.
.container #twitter p
is túlságosan specifikus. Tényleg azt akarjuk, hogy p
elemei #twitter
belsejében másképp nézzenek ki, ha #twitter
nem .container
belsejében van?
Egy másik probléma, hogy .container
egy hely és nem a struktúra része. Tehát igen… ez a szabály nem újrafelhasználható.
Skálázható CSS = újrafelhasználható kód = osztályok. Az id-alapú szabályok definíció szerint nem újrafelhasználhatóak.
Legutóbbi hozzászólások