28173 sujets

CSS et mise en forme, CSS3

Bonjour.

En bricolant un peu mon site perso, j'y ai ajouté un javascript ( trouvé ici: http://www.alistapart.com/articles/alternate/) qui permet de changer la feuille de style en cliquant sur un lien. Jusque là rien d'extraordinaire, ça marchait très bien. Jusqu'à ce que je rajoute une nouvelle feuille de style (celle qui est maintenant par défaut). Voici mon problème:

Sur la page index.htm, ça fonctionne très bien, on peut passer d'un style à l'autre sans problème. En revanche, sur toutes les autres pages (situées dans un autre répertoire que la page index, mais ça m'étonnerait que ça vienne de là vu que ça fonctionnait avant), les feuilles de style alternatives sont tout simplement ignorées Smiley ohwell . Je comprends vraiment pas d'où ça vient, j'ai pas l'impression que mon code soit erroné, c'est très bizarre...

Si quelqu'un a déjà eu ce problème et sait comment le régler, je serais pas contre quelques conseils, parce que là je suis un peu désemparée Smiley smile Merci d'avance!

Le site en question est à cette adresse : http://sideeffect95.free.fr/holyshit
(je sais qu'il y a quelques petits soucis de mise en page mais c'est pas tout à fait fini)

Quant au javascript, le voilà, mais je ne pense vraiment pas que le problème vienne de là:
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);


[/i][/i][/i][/i]
Modifié par _lwiz (18 May 2006 - 17:43)