Autor Zpráva
Wass
Profil *
Ahoj, nejak me to tu zlobi. CHci se vyhnout nevalidnímu hacku a proto jsem zvolil tuto cestu, nevím, jetsli je to však reálné. Prosím o pomoc, zda-li je to možné. :

<!--[if IE ]>
<link rel='stylesheet' type='text/css' media='all' href='style.css' />
<![endif]-->
<link rel='stylesheet' type='text/css' media='all' href='styl.css' />


Tímto jsem chtěl vyjádřit, že když je to IE tak načte style.css a když je to jiny browser, tak načte styl.css .
Je to použitelné? Děkuji předem.

Samozřejmě je to mezi tagy <head></head>
Dero
Profil
Pokud je to IE, potom načte oba stylopisy, přičemž styl.css přepíše deklarace ve style.css, budou-li kolidovat.

Naopak by to dávalo větší smysl.
Wass
Profil *
naopak myslis :

<link rel='stylesheet' type='text/css' media='all' href='styl.css' />
<!--[if IE ]>
<link rel='stylesheet' type='text/css' media='all' href='style.css' />
<![endif]-->

?
Dero
Profil
Ano. A ve style.css změnit deklarace ze styl.css, které dělají bordel v Exploreru.

Např. ve styl.css máš

p { color: black; } // cerne odstavce

A v IE chceš mít červené odstavce, tak do style.css dáš:

p { color: red; } // tim prepises vyse uvedenou, obecnou deklaraci - jen v IE


Samozřejmě to použiješ k řešení nějakého bugu, tento příklad byl zjednodušující.
Wass
Profil *
Myslel jsem si, ze kdyz dam styl.css prazdny, tak se mi bude stylovat jen iEcko, ale to jsem asi na omylu, ze? OPotrebuji totiz odladit FF, tak, ze v IE to ted funguje ale v FF ne, a tak mam styl.css prazdny, s tim, ze je pro FF , a style ktery jiz funguje pro IE.
Wass
Profil *
Takze, jak je to? Dá se to udelat taklhle?
Wass
Profil *
Ze udelam druhe styly pro FF?
Miloš
Profil
<!--[if !IE]> -->
Styl pro všechny, jen ne pro explorer
<!-- <![endif]-->

(nalezeno na La Trine)
quinux
Profil
Miloš
Raději
<!--[if lte IE 6]>
style pro IE verze 6 a nižší
<![endif]-->

Z jednoho důvodu, když to odřízneš tak jak jsi to napsal tak od stylů pro ostatní prohllížeče odřízneš i IE 7, který se podle mých zkušeností chová podobně jako Firefox.
Miloš
Profil
quinux
i IE 7, který se podle mých zkušeností chová podobně jako Firefoxi IE 7, který se podle mých zkušeností chová podobně jako Firefox
Ale který zatím není ve finální verzi; jinak máš samozřejmě pravdu. Wass se ale ptal, jak udělá styl jen pro FF; to sice nevím (pokud by se netestovalo třeba javascriptem), tak jsem zkusil posloužit načerpanou informací, podmíněným komentářem vylučujícím explorer, protože tento komentář není, myslím, tak známý.

Asi by šlo použít konstrukci, která vyloučí všechny <7 explorery:

<!--[if lt IE 7]> -->
Styl pro všechny, jen ne pro staré explorery
<!-- <![endif]-->
quinux
Profil
Miloš
Ale který zatím není ve finální verzi
Od RC 1 již do finální verze moc nezbývá a už dávno MS říkal, že do jádra zasahovat nebude. Teď se spíš jen opravují bezpečnostní chyby apod. Myslím, že v listopadu nebo prosinci, už ho tu budeme mít a to už bude na opravy pozdě.

Wass se ale ptal, jak udělá styl jen pro FF
Ale to co chce dělat on je v podstatě blbost ;o)

Wass
Vytvoř styl pro všechny prohlížeče (firefox, opera..) a zároveň jej testuj v IE. Tam kde se ti to bude zobrazovat v IE špatně a nebudeš to umět vyřešit "čistější" cestou, zapiš s jinou hodnotou do zvláštního stylu pro IE. Ten pak nalinkuj tak jak psal Dero (jak jsis správně odpověděl v třetím příspěvku).

Pokud však budeš přeci jen potřebovat rozlišit styl pro Firefox tak na začátek řádku napiš :root a definuj styl.
vasek
Profil *
Mam to nakonec takto:
<link rel='stylesheet' type='text/css' media='all' href='style.css' />

<!--[if !IE]> -->
<link rel='stylesheet' type='text/css' media='all' href='styl.css' />
<!-- <![endif]-->

IE si spravne bere style.css, ale treba FF si ho bere taky, proč?
quinux
Profil
vasek
Protože ho máš volně přístupný. Každý prohlížeč si ho načte a pak si ještě vezme i styl.css - krom IE pro který jsi použil podmíněný komentář, aby si jej nebral.
Miloš
Profil
Pěkně popořadě:

<link rel= … si vezme každý prohlížeč

<!--[if IE ]> <link rel=' … si vezme pouze IE <![endif]-->
ale předchozí styl si IE vzal taky, protože byl pro všechny

<!--[if !IE]> --> tenhle styl si vemou všichni vyjma IE[/b]

Záleží na pořadí.

Je to to samé (kdyby něco takového fungovalo) jako:
1) Styl pro všechny
2) Styl pouze pro IE ––> IE bere předchozí i tento a záleží na prioritě pravidel v přilinkovaných souborech
3) Styl pro všechny vyjma IE ––> Všechny ostatní prohlížeče vezmou 1. a 3. styl

Je to totéž, ajko kdybys napsal všechno do jednoho souboru:
<link rel= … styl 1
<link rel= … styl 2
<link rel= … styl 3
Tohle všechno je chápáno jakoby jeden soubor, byť jsou tři (po sobě). Už rozumíš podmíněným komentářům?
vasek
Profil *
Jo, ais jo. <!--[if !IE]> -- tohle tedy vezme jen IE?
vasek
Profil *
?
vasek
Profil *
existuje nejaka jina metoda, ktera vykonava rozdeleni css stylu podle prohlizece?
Miloš
Profil
vasek
existuje nejaka jina metoda, ktera vykonava rozdeleni css stylu podle prohlizece?
Buď script ve smyslu if (ten-a-ten-prohlizec) promenna = ten-a-ten-prohlizec
a potom zapsat document.write(<link rel="promenna+'.css'…)
(tu syntaxi neber vážně, šlo mi o popis)

Nebo používat různé piškuntálie typu _msie-vlastností a :moz-vlastností

Podmíněné komentáře jsou nejčistším řešením. Neodlišíš tak sice operu od firefoxe, ale (a to je potřebnější) zcela jistě odlišíš explorer od všech ostatních, či dokonce ten který konkrétní explorer.
quinux
Profil
Miloš
Ještě je možnost zjišťovat prohlížeč na straně serveru a podle toho poslat styl :o))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0