Autor Zpráva
Anonymní
Profil *
Potřeboval bych pomoci s řešením celkem nezvyklého problému.

Pro poměrně složitý web mám definováno několik tříd pro obrázky, některé z nich lze kombinovat <img class="tridavzhled tridapozice">.
Třídy tridavzhled a tridapozice nesou nějaké vlastnosti, které se více méně doplňují.
V konkrétním případě se jedná o definici vzhledu (rámeček pozadí atd.) respektive umístění (obtékání vlevo, vpravo, neobtékat atd.).

Teď jsem se však dostal do situace, že bych do CSS potřeboval zapsat, že když má obrázek třídu tridavzhled1 a tridapozice-L (zarovnání doleva), tak se obrázek relativně pozicuje left:-10px a když má obrázek třídu tridavzhled1 a tridapozice-R (zarovnání doprava), tak se obrázek relativně posune left:10px.

Vím, jak se zapisují vzájemně vnořené třídy, ale jak zapsat 2 třídy v kombinaci?

Předem děkuji za jakékoliv připomínky i nápady, jak to řešit jinak.

Pavel
koudi
Profil
V css je možno používat selektroy s atributy. trida[atribut], to by ti možná pomohlo - ale schválně si zkus tipnout, kterej prohlížeč to neumí...
Anonymní
Profil *
Díky, to je moc pěkné, ale jestliže to nefunguje (jak bych si typl v IE), tak je to těžko použitelné řešení.
Pavel
tiso
Profil
.tridavzhled1.tridapozice-R{...} funguje v Opere i FF, IE6 ale tieto vlastnosti aplikuje na obe uvedené triedy, čiže na všetky prvky s class="tridavzhled1" alebo class="tridapozice-R"
mila
Profil
V IE by to mělo jít nějak dořešit přes expressions. Bez JS to sice fungovat nebude, ale svět se nezblázní...
Railbot
Profil
Dve tridy v kombinaci? Zcela jednoduse.
Mejme tridu .neco1 a .neco2, prvek pak bude mit nastaveno class="neco1 neco2" a svete div se, ono to funguje a tridy se zkombinuji.
tiso
Profil
Railbot
nečítaš poriadne...
Bubák
Profil
jak zapsat 2 třídy v kombinaci
Railbot to napsal správně, nějaké příklady jsou v článku na Interval.cz:
http://interval.cz/clanky/kaskadove-styly-v-dobrem-stylu/
tiso
Profil
Tak to som zvedavý kto to pochopil dobre - či ja alebo Railbot
Bubák
Profil
tiso To, co jsi napsal, moc nechápu, ale chyba může být ma mé straně, proto jsem se zdržel komentáře.
Plaváček
Profil
Myslím, že to, co tazatel chce, se jmenuje vícenásobné třídy a pokud vím, fungují bezchybně. Viz http://www.mraveniste.org/weblog/2006/04/06-vicenasobne-tridy.html
Bubák
Profil
Plaváček
Nemohl jsem si vzpomenout, jak se to jmenuje a příklad na Mraveništi je pro začátečníky s CSS asi nejvhodnější.
tiso
Profil
Bubák
Ja som to pochopil tak že nechce obyčajnú kombináciu (súčet) vlastností nastavených cez jednotlivé triedy (to podľa príspevku vie robiť), ale že chce nastaviť vlastnosti nad rámec tej kombinácie - akoby pre triedu "trieda1 trieda2"
Timy
Profil
Asi by se měl vyjádřit samotný autor, ale podle mě je to také trochu jinak s souhlasím s tisem, takže pokusím se to vysvětlit, neboť odpověď sám neznám:

Jde o to, aby při použití dvou tříd class="prvni druha" se aplikovala nějaká sada vlastností, ale jen a pouze pokud jsou použity tyto dvě třídy, tzn., že se nesmí aplikovat, pokud je někde jinde použita jen jedna z nich (což vylučuje možnost zapsat ty pravidla normálně do jedné z tříd .prvni nebo .druha). Líp už to asi napsat neumím. A IMHO nejlepší způsob řešení bude použít další třídu...
Jan Bien
Profil *
Přátelé, napsat selektor tak, aby pravidlo bravo v úvahu pouze elementy které mají nastaveny více tříd zároveň, a aby to bylo funkční i v MSIE, podle mého názoru nelze.
Bebeto
Profil *
Jen se chci zeptat, můžu mít celou playádu tříd za sebou? Například class="box box1 box2 box3"?
Bebeto
Profil *
Nebo jsou dány pouze dvě class="box box1"? Článek jsem četl...
koudi
Profil
Můžeš. Ale asi bych to moc nepřeháněl - má to vůbec nějakej smysl?
Bebeto
Profil *
No to je jasné, že má..., zatim jsem nanejvíš použil dvě třídy, ale třeba to někdy budu muset řešit ještě vícekrát...
Toto téma je uzamčeno. Odpověď nelze zaslat.