Autor Beitrag
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 11.02.04 15:42 
Hallo,

ich war grade mit FireFox auf dieser Seite texturizer.net/thunderbird/extensions/ und entdeckte unten im Startusbar eine mir bisher unbekanntes Symbol (Kästchen mit bunten Stiften) entdeckt. Also clickte ich gleich mal drauf und erkannte, dass man damit zwischen verschiedenn CSS-Dateien wechseln kann, welche im Quelltext so definiert werden:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
<link rel="stylesheet" type="text/css" media="screen,projection" href="../../mozilla.org/css/style.css" />
<link rel="stylesheet" type="text/css" href="http://texturizer.net/mozilla.org/css/print.css" media="print" />
<link rel="alternate stylesheet" title="Locked Menu" media="screen,projection" href="../../mozilla.org/css/lockedmenu.css" type="text/css" />
<link rel="alternate stylesheet" title="Classic" media="screen,projection" href="../../mozilla.org/css/classic.css" type="text/css" />
<link rel="alternate stylesheet" title="Classic with Locked Menu" media="screen,projection" href="../../mozilla.org/css/classic-lockedmenu.css" type="text/css" />

<script src="../../mozilla.org/javascript/styleswitcher.js" type="text/javascript"></script>


Scheinbar spielt auch ein Java-Script mit. Das ganze scheint mir aber nur im Mozilla zu funktioneren, sehe ich das richtig?
Ist das eine Eigenentwicklung von denen, oder sichd die anderen Browser nur mit der Implementierung hinterher?

Ich finde die Funktion generell recht praktisch, aber wenn es nur für einen Browser ist, dann lohnt es sich nciht soetwas auf eigenen Seiten zu implementieren.

Gruß
Klabautermann
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.02.04 17:52 
Das Prinzip ist DOM-basierend. Es funktioniert auch mit dem IE, dann aber wohl ohne das Symbol in der Statusbar. Mit dem Mozilla 1.5, dem IE6 SP1 und dem Opera 7 habe ich folgendes erfolgreich hinbekommen:
  1. Mein alternatives Stylesheet benutzt einfach Schwarz als <body>-Hintergrund und heißt "black.css". Ging am schnellsten. :mrgreen:
  2. Beides habe ich wie von dir gezeigt in eine Test-HTML eingebunden:
    ausblenden Quelltext
    1:
    2:
    <link rel="stylesheet" type="text/css" href="norm.css">
    <link rel="alternate stylesheet" type="text/css" title="Schwarz" href="black.css">

    Beachte bitte, dass nur das zweite Stylesheet einen Titel (Schwarz) hat. Und du musst
    ausblenden Quelltext
    1:
    rel="alternate styleehset"					

    schreiben, weil es sonst sofort benutzt wird. Und das wollen wir ja nicht. :)
  3. Folgende kleine JavaScript-Funktion ermittelt (mit Hilfe von DOM, ich schrieb das ja schon) alle "link"-Tags und sucht nach dem, dessen Titel du im Funktionskopf übergibst. Vorher werden alle Stylesheets, die ein "title"-Attribute haben, deaktiviert - darum bleibt das Standard-CSS (in meinem Fall "norm.css") auch immer aktiv.

    Wird der Name bzw. der Titel dann gefunden, wird das Stylesheet aktiviert, auch wenn es mit "alternate stylesheet" gekennzeichnet ist.
    ausblenden Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    17:
    function setStylesheet(title) {
      var i;
      var styles = document.getElementsByTagName("link");

      if(styles.length > 0) {
        for(i=0;i<styles.length;i++) {
          if(styles[i].getAttribute("rel").indexOf("style") != -1 &&
             styles[i].getAttribute("title"))
          {
            styles[i].disabled = true;

            if(styles[i].getAttribute("title") == title)
              styles[i].disabled = false;
          }
        }
      }
    }

  4. Damit man´s auch sieht, das ganze via JavaScript-Link:
    ausblenden Quelltext
    1:
    <a href="javascript:setStylesheet('Schwarz');">mach mich Schwarz!</a>					

Die von dir genannte Seite ermittelt beim Laden und Beenden noch das jeweils aktuelle Stylesheet und lädt bzw. speichert es in einem Cookie für den nächsten Besuch.

Ich hoffe, das hilft dir weiter. Ich überlege gerade, ob ich mir den Spaß mache und meiner Seite eine alternative Farbgebung spendiere. ;)
Klabautermann Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 11.02.04 18:33 
Hi,
MathiasSimmack hat folgendes geschrieben:
Ich hoffe, das hilft dir weiter. Ich überlege gerade, ob ich mir den Spaß mache und meiner Seite eine alternative Farbgebung spendiere. ;)

ja, das war schoen mal sehr informativ.

Aber wenn du das Ursprungsstyle nicht benennst, wie kannst du auf dieses zurück schalten?

Gruß
Klabautermann
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.02.04 18:36 
Indem du einen Leerstring übergibst:
ausblenden Quelltext
1:
<a href="javascript:setStylesheet('');">zurück</a>					

Ich schrieb doch, im ersten Schritt werden alle Stylesheets mit "title"-Attribut deaktiviert.
Klabautermann Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 11.02.04 18:45 
MathiasSimmack hat folgendes geschrieben:
Indem du einen Leerstring übergibst:
ausblenden Quelltext
1:
<a href="javascript:setStylesheet('');">zurück</a>					

Ich schrieb doch, im ersten Schritt werden alle Stylesheets mit "title"-Attribut deaktiviert.

Ah jetzt ja. Danke.

Gruß
Klabautermann