CSS/JS: Dynamische CSS overerft settings van vorige style

Pagina: 1
Acties:

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Mijn site heeft meerdere CSS-skins. Normaal skins veranderen zonder de pagina te refreshen werkt, maar niet helemaal lekker: In IE6 "overerft" de nieuwe CSS soms paddings en margins van de vorige skin. Achtergrondplaatjes en kleuren doet IE wel standaard goed. Valt dit op te lossen zonder de pagina te refreshen?

Huidige code:
code:
1
2
3
4
5
6
7
<link rel='stylesheet' type='text/css' id='css' href='zopp1.css' />

en

function jsstyle(skin){
    document.getElementById("css").setAttribute("href", skin);
}


Dit werkte niet:

code:
1
2
3
4
function jsstyle(skin){
    document.getElementById("css").setAttribute("href", 0);
    document.getElementById("css").setAttribute("href", skin);
}


het staat ook online

[ Voor 12% gewijzigd door Blaise op 05-01-2004 19:04 ]


  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
je moet denk ik een media-type meeegeven met al je css links.. dus:
ipv
Cascading Stylesheet:
1
2
3
4
<link rel='stylesheet' type='text/css' id='css'
href='zopp1.css' /> wordt dan 
<link rel='stylesheet' type='text/css' id='css' 
href='zopp1.css' media='screen' />


Waarom je niet gewoon alternate stylesheets gebruikt zodat je in goede browsers gewoon binnen de browser van skins kan wisselen is me een raadsel, komt dit probleem niet door je aparte manier van styles switchen?

[ Voor 74% gewijzigd door Justice op 05-01-2004 19:11 ]

Human Bobby


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Ja dat heb ik, maar dat verneukte de (GoT)layout :)
Waarom je niet gewoon alternate stylesheets gebruikt zodat je in goede browsers gewoon binnen de browser van skins kan wisselen is me een raadsel
oh shit, overheen gelezen. FF googlen.

edit2: Dat alternate stylesheet is 30x zo omslachtig als ik hir en daar wat lees. Het hoeft nl. alleen in moderne browsers te werken, en IE ondersteunt dat alternate stylesheets niet zo goed.

[ Voor 101% gewijzigd door Blaise op 05-01-2004 19:22 ]


  • Puck
  • Registratie: November 2001
  • Laatst online: 27-05 13:20

Puck

EINDBAAS.org

offtopic:
Blaise, je link in je sig mist een L
;)

Arrived anxious, left bored


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Ja, die had ik gezien. Die heeft 65 regels code, mijne ongeveer 13. Maar ik laat het maar hierbij, het was niet mijn doel om de hele code om te spitten voor een klein bugje.

Verwijderd

Maar die heeft ook cookies, houdt het toegankelijk voor Mozilla/Opera/Safari choose style ding etc. etc.

  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
het zijn wel 65 regels code die goed werken, itt tot jouw 13 blijkbaar ;)

Human Bobby


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

* Woudloper is het helemaal eens met Anne. Zelf heb ik ook met diverse manieren lopen stoeien voor wat betreft alternate stylesheets aangezien ik wat wilde realiseren wat niet mogelijk was. Na de nodige informatie tot mij hebben genomen kan ik zeggen dat je écht het beste kan gaan voor de optie welke bij A List Apart staat beschreven.

De problemen die jij beschrijft zijn daarin namelijk allemaal al ondervangen en ze (de stylesheets) hebben zoals Anne zegt correcte ondersteuning bij diverse andere browsers.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

mmmz, die cookiefunction heeft een bug :P (probeer er maar eens een waarde in te stoppen die een puntkomma bevat, en dan weer terug te lezen)

en die switcher zou ik zoiets doen:

JavaScript:
1
2
3
4
5
6
7
8
9
function setActiveStyleSheet(title) {
  var a = document.getElementsByTagName('link'), i = a.length, t;
  while (i--) {
    if (a.item(i).getAttribute('rel').indexOf('style') == -1) continue;
    t = a.item(i).getAttribute('title');
    if (t == title) a.item(i).disabled = false;
    else if (t != null) a.item(i).disabled = true;
  }
}


verder probeer ik onload zo veel mogelijk te vermijden, vooral in productiesituaties waarbij ook externe content geinclude wordt (zoals een forum).
Ik denk trouwens dat de 3 stylesheetfuncties best te combineren zijn tot 1 functie.

[ Voor 141% gewijzigd door crisp op 06-01-2004 09:18 ]

Intentionally left blank


  • Blaise
  • Registratie: Juni 2001
  • Niet online
NEEEEEEE!!! Heb ik net dat hele script er ingebouwd, blijkt dat dat dezelfde bug heeft als genoemd in de beginpost...

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Weet je wel zeker dat je op een juiste manier onderscheid hebt gemaakt tussen de verschillende type stylesheets (persistant, alternate, preferred). Als je het mij vraagt lijkt het daar een beetje op al weet ik het niet zeker.

In een ander(en ouder) topic heb ik ooit getracht het verhaal over alternate stylesheets op een duidelijke manier uit te leggen en wel in deze reply. Wellicht heb je daar nog wat aan?

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Woudloper schreef op 06 januari 2004 @ 13:11:
Weet je wel zeker dat je op een juiste manier onderscheid hebt gemaakt tussen de verschillende type stylesheets (persistant, alternate, preferred). Als je het mij vraagt lijkt het daar een beetje op al weet ik het niet zeker.

In een ander(en ouder) topic heb ik ooit getracht het verhaal over alternate stylesheets op een duidelijke manier uit te leggen en wel in deze reply. Wellicht heb je daar nog wat aan?
Ik heb 1 rel='stylesheet' en de rest rel='alternate stylesheet'.

Maar het probleem speelt alleen bij paddings en margins, en alleen bij IE, en na een refresh werkt het ook gewoon.
Pagina: 1