Kezdő sminkes vagyok és most tanulgatom a dolgokat, de most nagyon megakadtam. Megpróbálom körül írni a "problémám".
Arról van szó, hogy létre hoztam egy régiót vagy blockot a page.tpl.php fájlban így:
<div id="valami"><?php print render($page['valami']); ?> </div>
Ehhez tartozó részt formáztam css-el, hogy vízszintes menüt kapjak, float left list style none stb stb. Azzal a problémával szembesültem, hogy a meglévő sminknek többi formázását is átörökölte. Megkapta a másik menü hover effectjét hátterét stb.
Ezt szeretném valahogy függetleníteni! Hogy az ehhez tartozó régióhoz a menü css formázásom független legyen.
Ha rendesen beirom hogy
#valami ul li { bármi }
akkor erre ne érvényesüljön a globális li lu, ami a sminkben van.
Drupal verzió:
Fórum:
Nem tudom van-e kevésbé munkaigényes módszer.
a CSS-ben, de én felül szoktam írni mindent, amit kell:
Ha minden az utolsó vacakig felüldefiniálsz akkor ez megvalósul:
ehhez tartozó régióhoz a menü css formázásom független legyen
Mindig nézd a firebug-al hogy érvényesül-e az új szabályod, mert előfordulhat, hogy az eredeti menü szabálya valamiért specifikusabb, felülírja az új szabályodat. Ilyenkor ha specifikusabbá teszed a szabályt, akkor be tudsz "előzni".
specifikusabb
Css-ben hiába definiálom felül minden részét.
Ez a kód mindig érvényesül rá:
De azt a megoldást találtam ki erre reggel, hogy letöltök egy superfish menüt és azt használom.
Azért érvényesül mert a smink
Azért érvényesül mert a smink css-e mélyebben definiálja a megjelenést, a Te esetedben ezt kell:
ezzel már érvényesül is
ha több szintű a menü akkor pedig így folytasd:
ul>li = ekkor csak az első szintet fogja formázni:
ul>li>ul>li = ez meg csak a második szintet.
Hajrá!
Ez így pontatlan:
Nem igaz, mert ez a formázás mindkét
li
szintre érvényesülni fog.Nagy Gusztáv
köszönöm
Köszönöm szépen a segítségeket, nagyon sok hasznos dolgot tanultam :)
jogos
ul elé még kell egy id vagy ul.menu>li így már jó.
Általános vs. célzott css
Több embertől is hallottam már, hogy mindent fogalmazzunk meg általánosan a CSS-ben - hogy minél kevesebbszer kelljen ismételni - én viszont pont az ilyen problémák miatt szeretek inkább célzottan dolgozni class-okkal, és id-val.
Ha a sminket te hoztad létre, akkor szerintem érdemes elgondolkodni azon, hogy az ilyen teljesen általános
ul li a:hover {}
értékeket módosítsd először úgy, hogy arra legyen érvényes, ahol szükség van az adott formázásra. Nyilván ehhez ismerni kell a weblap felépítését is.Ha nem ezt választod, akkor nincs más lehetőség, mint felülírni ezeket az értékeket a #valami-nél.
Hosszútávon pedig kezdj el használni CSS előfeldolgozót, pl. Sass-t: http://sass-lang.com/
Ebben pont az a jó, hogy annyit használsz belőle, amennyit megértettél, de ha jobban elmélyedsz benne, akkor nagyon megkönnyíti az életedet.
Írj rám, ha érdekel a Győri Drupal Használói Találkozó.
Érdemes egyszer átnézni, hogy
Érdemes egyszer azt is átnézni, hogy hogyan érvényesülnek az egyes elemek, class-ok, id-k stb. Itt egy link, az írás alján a példaképeken van az érdekes rész.
Illetve végső elkeseredésben meg lehet nézni a forrásban, hogy tényleg a te css fájlod-e az utolsó...
Védd az állatokat! ;)