konto usunięte

Temat: Zmiana arkusza CSS w JS

Witam

Mam wczytany arkusz:
<link rel="Stylesheet" href="niebieski.css" title="Styl domyślny" type="text/css" />


Jak za pomocą JS zmienić na stronie ten arkusz na np. czarny.css?

Chodzi mi o rozwiązanie ogólne, które zadziała pod KAŻDĄ przeglądarką.


Pozdrawiam.

konto usunięte

Temat: Zmiana arkusza CSS w JS

Piotr Parzentny:
Witam

Mam wczytany arkusz:
<link rel="Stylesheet" href="niebieski.css" title="Styl 	[/quote]> 	[quote]domyślny" type="text/css" />


Jak za pomocą JS zmienić na stronie ten arkusz na np. czarny.css?

Chodzi mi o rozwiązanie ogólne, które zadziała pod KAŻDĄ przeglądarką.

Pozdrawiam.


A google znasz?Piotr Lewandowski edytował(a) ten post dnia 07.01.10 o godzinie 20:54

konto usunięte

Temat: Zmiana arkusza CSS w JS

Domyślny arkusz styli:


<link rel="stylesheet" href="default.css" type="text/css">


Lista alternatywnych arkuszy:

<ul>
<li><a id="css-red" href="#red">Red</a></li>
<li><a id="css-blue" href="#blue">Blue</a></li>
<li><a id="css-green" href="#green">Green</a></li>
</ul>


skrypt korzystający z biblioteki jQuery:


<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// red
$("#css-red").click(function() {
$("link[rel=stylesheet]").attr({href : "red.css"});
});

// blue
$("#css-blue").click(function() {
$("link[rel=stylesheet]").attr({href : "blue.css"});
});

// green
$("#css-green").click(function() {
$("link[rel=stylesheet]").attr({href : "green.css"});
});
});
</script>

konto usunięte

Temat: Zmiana arkusza CSS w JS

Wiktor Osiecki:
Domyślny arkusz styli:


<link rel="stylesheet" href="default.css" type="text/css">


Lista alternatywnych arkuszy:

<ul>
<li><a id="css-red" [/quote]> href="#red">Red</a></li>[quote]<li><a id="css-blue" [/quote]> href="#blue">Blue</a></li>[quote]<li><a id="css-green" [/quote]> href="#green">Green</a></li>[quote]</ul>


skrypt korzystający z biblioteki jQuery:


<script type="text/javascript" [/quote]> src="jquery.js"></script>[quote]<script type="text/javascript">
$(document).ready(function() {
// red
$("#css-red").click(function() {
$("link[rel=stylesheet]").attr({href : "red.css"});
});

// blue
$("#css-blue").click(function() {
$("link[rel=stylesheet]").attr({href : "blue.css"});
});

// green
$("#css-green").click(function() {
$("link[rel=stylesheet]").attr({href : "green.css"});
});
});
</script>

Ładować CAŁE jQuery (i to jeszcze w wersji developerskiej) tylko po to, żeby zmienić 3 style? To Ci dopiero optymalizacja :D W googlu jest od cholery takich przykładów z "gołym" JS...

konto usunięte

Temat: Zmiana arkusza CSS w JS

W sumie znalazłem co potrzebowałem. jQuery to rzeczywiście trochę przesada ;)

Pozdrawiam.

konto usunięte

Temat: Zmiana arkusza CSS w JS

Faktycznie nie sprecyzowałem jakie jQuery - niech będzie Minified - 55KB. To chyba nie jest w dzisiejszych czasach wielkie obciążenie.

Chodziło też o rozwiązanie, które będzie działać pod każdą przeglądarką - różnice w implementacji Java-Scriptu są niwelowane po stronie biblioteki.
Wojciech Węckowski

Wojciech Węckowski Spec. ds. kontroli
jakości, FARBY KABE
POLSKA SP. Z O.O.

Temat: Zmiana arkusza CSS w JS

Rzeczywiście można prościej. Ja używałem takiej prostej funkcji:

function startup() {
var uA=navigator.userAgent;
if (uA.indexOf("MSIE")>-1){
document.styleSheets[0].disabled = false;
document.styleSheets[1].disabled = true;
}
else {
document.styleSheets[0].disabled = true;
document.styleSheets[1].disabled = false;
}
}

Oczywiście wszystko zależy od potrzeb.

konto usunięte

Temat: Zmiana arkusza CSS w JS

Wiktor Osiecki:
Faktycznie nie sprecyzowałem jakie jQuery - niech będzie Minified - 55KB. To chyba nie jest w dzisiejszych czasach wielkie obciążenie.

jQuery Minified and Gzipped to już tylko 19kb - ale w dalszym ciągu będzie to 19kb niepotrzebnego kodu... Całość da się napisać w maks 2kb i to z obsługa cookies...

Chodziło też o rozwiązanie, które będzie działać pod każdą przeglądarką - różnice w implementacji Java-Scriptu są niwelowane po stronie biblioteki.

przy tak prostym skrypcie różnice nie powinny wystąpić... no chyba że chcesz być kompatybilny z NN4 czy IE3 :D
Michał K.

Michał K. .NET Developer

Temat: Zmiana arkusza CSS w JS

Piotr Lewandowski:
...Całość da się napisać w maks 2kb i to z obsługa cookies...

Ta grupa jest chyba po to, żeby można było znaleźć potrzebne rozwiązania w jednym miejscu a nie odsyłać do Google'a tak jak zrobiłeś to na początku... Oczywiście nie mam zamiaru tu nikomu docinać także nie bierz tego do siebie.
Co do Twojej sugestii to może mógłbyś wkleić takie rozwiązanie, żeby jednak nie fruwać od strony do strony?Michał K. edytował(a) ten post dnia 26.01.10 o godzinie 10:02

Następna dyskusja:

Popup we Flashu / CSS / JS (?)




Wyślij zaproszenie do