Permalänk
Medlem

Val av css-fil

Tjena!

Jag använder detta javascript för att skifta mellan css-filer beroende på användarens webbläsare:

<script type="text/JavaScript"> <!-- var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { document.write('<link rel="stylesheet" type="text/css" href="ie8.css" media="screen">'); } else { document.write('<link rel="stylesheet" type="text/css" href="design.css" media="screen">'); } //--> </script>

Problemet är att css krånglar i safari / chrome. Testade att lägga in:

else if (browserName=="Safari") { document.write('<link rel="stylesheet" type="text/css" href="sa.css" media="screen">'); }

Men det funkar inte. Något som vet hur man kan göra för att läsa in en annan css-fil om det är safari / chrome?

Tacksam för svar!

Permalänk
Medlem

Du bör använda conditional comments för detta. About Conditional Comments
edit: Jag måste lära mig läsa till punkt innan jag svarar. Finns det någon särskild anledning till att du vill ha en annan stilmall för webkit-läsare?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Stilmallen för IE / FF blir helt koko i Safari / Chrome.
Därför vill jag läsa in en annan .css-fil så att det ser ut som jag vill på hemsidan.

Permalänk
Medlem

Du har nog gjort fel i din stilmall i sådana fall. FF och Chrome/Safari brukar samsas ganska bra så länge man inte använder sig av en massa CSS3-attribut.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Okej. Men låt oss säga att jag inte har gjort fel i min stilmall.

Är detta då "fel" sätt att anropa de olika .css-filerna?

<![if IE 7]><link rel="stylesheet" type="text/css" href="ie7.css" media="screen"><![endif]> <![if IE 8]><link rel="stylesheet" type="text/css" href="ie8.css" media="screen"><![endif]> <![if !IE]><link rel="stylesheet" type="text/css" href="design1.css" media="screen"><![endif]>

Permalänk
Medlem

Jag brukar separera "patcharna" i lager:

<!--[if lte IE 7]> <link href="ie7patch.css" media="screen" rel="stylesheet"> <![endif]--> <!--[if lte IE 6]> <link href="ie6patch.css" media="screen" rel="stylesheet"> <![endif]-->

IE7 behöver inte alla fixar som finns i IE6, men IE6 tenderar att behöva vissa av de som finns i IE7 och behöver ibland "skriva över" vissa andra. Genom att låta less-than-or-equal IE7 komma före IE6-kommentaren slipper jag repetera samma quirks i två filer.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Nu ska vi se...

Så Version 6, samt alla tidigare versioner, av Internet Explorer får stilmallen "ie6patch.css"?
Och Version 7, samt alla tidigare versioner, av Internet Explorer får stilmallen "ie7patch.css"?

Har jag uppfattat det rätt då?

Vilken stilmall får då FF, Chrome och Safari? Om du enbart använder dig av:

<!--[if lte IE 7]> <link href="ie7patch.css" media="screen" rel="stylesheet"> <![endif]--> <!--[if lte IE 6]> <link href="ie6patch.css" media="screen" rel="stylesheet"> <![endif]-->

Permalänk
Medlem

Du har uppfattat det hela korrekt.
IE-conditionals är bara för IE. Webkit och Gecko följer CSS-standarden bra så de behöver i 99 fall av 100 inget liknande.

Standardmallen läggs före IE-conditionals, och patcharna innehåller sedan fixar för de element som ändå inte vill uppföra sig.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Då förstår jag Teknocide. Tack för all hjälp!