Autor | Zpráva | ||
---|---|---|---|
noximo Profil |
#1 · Zasláno: 26. 12. 2010, 23:08:29
Ahoj, rozhodně nejsem expert co se týče css, ale začátečník už také ne. Přesto se mi asi nějak podařilo přeskočit jedno ze základních pravidel.
Každopádně, když mám tento kód: <div class="vnejsi"> <div class="vnitrni"> <a href="">odkaz</a> </div> <div> Proč se mi odkaz zformátuje podle stylu '.vnejsi a' a ne podle '.vnitrni a'? Tak nějak jsem předpokládal, že se to bude řídit pravidlem bližší košile než plášť, ale zjevně ne a musím to obcházet pomocí !important |
||
panther Profil |
#2 · Zasláno: 26. 12. 2010, 23:20:58
noximo:
v dodaných informacích a předpkladech chyba není. Ta bude jinde, zjistíme jí z konkrétní situace, lépe odkazu na stránku, nežli z tuny nakopírovaného kódu. Pokud nechceš dávat odkaz na web, někde se ti deklarace přepisují - v tomto případě bude platit níže uvedená, obě mají stejnou váhu. Více ti neřeknu, na obecný dotaz těžko dát konkrétní radu. |
||
margin Profil * |
#3 · Zasláno: 27. 12. 2010, 00:34:09
Pokud mají tvé pravidla stejnou váhu, tak platí později uvedené pravidlo. Pravděpodobně máš v CSS souboru napřed pravidlo pro ".vnitrni a" a později máš uvedeno pravidlo pro ".vnejsi a".
Pokud jsem neuhodl, pomůže odkaz na stránku. <style> .vnejsi a {color: blue;} .vnitrni a {color: red;} /* odkaz bude cerveny */ </style> <style> .vnitrni a {color: red;} .vnejsi a {color: blue;} /* odkaz bude modry */ </style> panther: „v tomto případě bude platit níže uvedená, obě mají stejnou váhu“ Bez nahlédnutí do CSS je to jen věštění, o které jsem se pokusil výše. Záleží na počtu bodů a při rovnosti bodů na pořadí v CSS souboru, nebo souborech, pokud jich je více. |
||
noximo Profil |
#4 · Zasláno: 27. 12. 2010, 01:18:21
Tak jsem si s tím trochu hrál a asi jsem objevil kde byl problém.
Měl jeden (ten vnější) z divů ostylovaný pomocí id a ne class a zároveň jsem měl prohozené pořadí nadefinování stylů. Obojí asi způsobuje změnu pořadí vyhodnocování. Opravil jsem jednu věc a nepomohlo to, tak jsem to vrátil jak to bylo a opravil druhou a samozřejmě to taky nepomohlo, takže mě to zmátlo. Vyzkoušel jsem si to pak na jednoduché stránce jen s tím kódem, který jsem uvedl výše a fungovalo to správně. Bohužel původní kód nemohu ukázat... Děkuji oboum za pomoc! |
||
panther Profil |
#5 · Zasláno: 27. 12. 2010, 01:25:57 · Upravil/a: panther
noximo:
„Bohužel původní kód nemohu ukázat“ příště to bude nezbytné. Klidně nějak osekaný, ale je třeba vidět konkrétní CSS ke konkrétnímu HTML. Uvést příklad, který funguje a nemá s původním kódem nic společného, je zbytečné. margin: nevím, co jsi tím příspěvkem, resp. tou reakcí na mě myslel, ale to je asi jedno už. Jestli jsi mě chtěl poučovat, jaká deklarace v CSS se kdy aplikuje, nebylo to třeba (a ani to nebylo předmětem dotazu zakladatele vlákna). Jiný význam jsem v tom příspěvku (kde jsi prakticky zopakoval totéž, co jsem napsal já), ani tom dodatku určenému mě, nenašel. |
||
margin Profil * |
#6 · Zasláno: 27. 12. 2010, 01:37:23
id má vyšší prioritu, více třeba http://www.jakpsatweb.cz/css/css-kaskadovani.html#pozdejsi, podkapitola "Podrobnější selektor".
„Nikdy není tak zle, aby bylo !important” Zdroj: Udržovatelný stylopis: pořádek v souborech, pozor na hacky a !important Místo !important můžeš použít třebas: #vnejsi a { /* tvé pravidla */ } #vnejsi .vnitrni a { /* tvé pravidla */ } |
||
Časová prodleva: 13 let
|
0