![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
witam,
probuje rozwiazac nastepujacy problem: strona posiada pewna czesc wspolnych styli (pojedynczy plik css) oraz kilka skorek (osobne arkusze styli) - zalaczenie ich wszystkich jako styli alternatywnych i ich podmiana przy pomocy techniki opisanej na http://www.alistapart.com/articles/alternate/ lub przy pomocy mechanizmu http://24ways.org/advent/introducing-udasss nie za bardzo wchodzi w gre - ograniczenie wynika z wagi poszczegolnych skorek kazda z nich to ok 100kB do zaladownia rozwiazanie ktore działa ale niestety nie waliduje sie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) to dynamiczne umieszczenie w tresci strony (gdzies w sekcji body) tagu <link> z odwolaniem do dolaczanego arkusza styli czy ktos z Was mial juz do czynienia z taka sytuacja ? macie jakies pomysly jak to rozwiazac ? pozdrawiam dobrek |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Możesz stworzyć w sekcji head taga np. <style id="mycss" type="text/css">, a później załadować do niego dane tekstowe przy pomocy AJAXA, tak jakbyś to robił z każdym innym divem czy spanem w sekcji body.
Pomysł ten został wykorzystany na stronie Generator kolorowania składni. Niestety technika ta nie działa w IE. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Do tego wcale nie jest potrzebny AJAX - ja to mam zrobione tak:
Gdzie pierwszy ze styli jest wspolnym stylem, a później mam funkcję JS: |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No tak ale niezaleznie od tego ktorego arkusza styli uzywasz musisz za kazdym razem zaladowac wszystkie. Moj sposob umozliwia doladowanie definicji styli w zaleznosci od potrzeb. Widze zastosowanie przy pisaniu pluginow, modulow itp. Pytanie moje brzmi czy mozna to jakos zaimplementowac dla IE?
-- edit -- @TomASS - a tak w ogole to masz racje - do tego nie jest potrzebny AJAX tylko js, ktory zaktualizuje nam DOM Ten post edytował bigZbig 29.05.2006, 14:54:02 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Okazuje sie ze dla IE tez moze dzialac
Kod <html><head>
<link rel="stylesheet" id="myStylesheet" href="./red.css" type="text/css" /> <script type="text/javascript"> // prototype StyleManger { function StyleManager() { this.varsion = '1.0'; } StyleManager.prototype.changeStylesheet = function(url) { this.removeStylesheet(); this.addStylesheet(url); } StyleManager.prototype.addStylesheet = function(url) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.id = 'myStylesheet' link.rel = 'stylesheet'; link.type = 'text/css'; link.href = url; head.appendChild(link); } StyleManager.prototype.removeStylesheet = function() { var head = document.getElementsByTagName('head')[0]; var link = document.getElementById('myStylesheet'); if(link) { head.removeChild(link); } } // } StyleManager = new StyleManager(); </script> </head> <body> <form action="" method="POST"> <select onchange="StyleManager.changeStylesheet(this.value)"> <option value="./red.css">red</option> <option value="./yellow.css">yellow</option> <option value="./green.css">green</option> </select> </form> <h1>PRÓBA</h1> </body></html> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:33 |