Melina: Zwei CSS Dateien?

Hallo,

ich möchte gerne in der Entwicklungszeit mit zwei CSS Dateien arbeiten, so dass ich zwei Designs testen kann ohne ständig in die PHP Datei gehen zu müssen um die Datei zu tauschen. Ist es daher möglich zwischen beiden Dateien umzuschalten indem ich an die URL einen Parameter hänge? Sollte von allen Seite aus funktionieren.

  1. Hallo,

    ich möchte gerne in der Entwicklungszeit mit zwei CSS Dateien arbeiten, so dass ich zwei Designs testen kann ohne ständig in die PHP Datei gehen zu müssen um die Datei zu tauschen. Ist es daher möglich zwischen beiden Dateien umzuschalten indem ich an die URL einen Parameter hänge? Sollte von allen Seite aus funktionieren.

    Ja. Das ist genau so möglich.

  2. Hallo

    ich möchte gerne in der Entwicklungszeit mit zwei CSS Dateien arbeiten, so dass ich zwei Designs testen kann ohne ständig in die PHP Datei gehen zu müssen um die Datei zu tauschen. Ist es daher möglich zwischen beiden Dateien umzuschalten indem ich an die URL einen Parameter hänge? Sollte von allen Seite aus funktionieren.

    Wenn es nur darum geht, als Entwickler zwischen den Stylesheets umschalten zu können, kannst du eine oder mehrere der CSS-Dateien auch als alternative Stylesheets einbinden. So brauchst du keinen serverseitigen Mechanismus.

    Im Firefox kannst du die dann über „Ansicht⇒Webseiten-Stil“ auswählen. Wie das in anderen Browsern geht, musst du, so du das nutzen möchtest, selbst ermitteln.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
    Veranstaltungsdatenbank Vdb 0.3
    1. @@Auge:

      nuqneH

      Wenn es nur darum geht, als Entwickler zwischen den Stylesheets umschalten zu können, kannst du eine oder mehrere der CSS-Dateien auch als alternative Stylesheets einbinden.

      Ich bin mir nicht sicher, ob damit das Kriterium „Sollte von allen Seite[n] aus funktionieren“ erfüllt ist, da die Umschaltung auf ein alternatives Stylesheet bei jedem Seitenaufruf neu erfolgen müsste.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. Hallo

        Wenn es nur darum geht, als Entwickler zwischen den Stylesheets umschalten zu können, kannst du eine oder mehrere der CSS-Dateien auch als alternative Stylesheets einbinden.

        Ich bin mir nicht sicher, ob damit das Kriterium „Sollte von allen Seite[n] aus funktionieren“ erfüllt ist, da die Umschaltung auf ein alternatives Stylesheet bei jedem Seitenaufruf neu erfolgen müsste.

        Öhhm … nö, den *einen* *letzten* Satz habe ich überlesen. *grml*

        Wobei sich mir bezüglich „von allen Seiten aus“ die Frage stellt, was damit gemeint ist. Sollen alle Besucher die Möglichkeit haben, die verschiedenen Stylesheets zu testen oder soll die Umschaltmöglichkiet für die/den Entwickler(in) auf allen Browsern auf allen zu entwickelnden Seiten funktionieren?

        Im ersten Szenario ist die Lösung die falsche, im zweiten kann sie passen.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
        Veranstaltungsdatenbank Vdb 0.3
  3. Hallo,

    ich möchte gerne in der Entwicklungszeit mit zwei CSS Dateien arbeiten, so dass ich zwei Designs testen kann ohne ständig in die PHP Datei gehen zu müssen um die Datei zu tauschen. Ist es daher möglich zwischen beiden Dateien umzuschalten indem ich an die URL einen Parameter hänge? Sollte von allen Seite aus funktionieren.

    Wenns von allen Seiten aus gehen soll, dann brauchts ein paar Voraussetzungen, hier die Idee:

    1. alle Seiten verwenden dasselbe Template von <!doctype ...> bis </head>, hier drinnen erfolgt die Umschaltung der Links zu a.css, b.css
    2. alle Seiten verwenden denselben Code zur Kontrolle über den Parameter, z.B.
         ?css=a oder css=b
    3. unterhalb </head> erweitere den <body> um einen Abschnitt, welcher die Links zum Umschalten enthält

    Mit JavaScript könntest Du aus (2) und (3) eine Einheit machen, also unter Verzicht auf eine serverseitige Kontrolle mit PHP. Das läuft dann nur lokal und nach dem Abschluss der Test/Entwicklungsphase kommt das wieder raus.

    MfG

  4. @@Melina:

    nuqneH

    ich möchte gerne in der Entwicklungszeit mit zwei CSS Dateien arbeiten, so dass ich zwei Designs testen kann ohne ständig in die PHP Datei gehen zu müssen um die Datei zu tauschen. Ist es daher möglich zwischen beiden Dateien umzuschalten indem ich an die URL einen Parameter hänge?

    Wenn du das Einbinden des Stylesheets auslagerst:
    <?php [code lang=php]include 'stylesheet.php'; ?>
    [/code]

    In stylesheet.php bindest du je nach Wert des Parameters stylesheet verrschiedene Stylesheetdateien ein:

    <link rel="stylesheet"  
    <?php [code lang=php]if (empty($_GET['stylesheet'])):
    ~~~ ?>  
      href="default.css"  
    <?php else: ?>  
      <?php `if ($_GET['stylesheet'] === 'a'):`{:.language-php} ?>  
        href="a.css"  
      <?php `elseif ($_GET['stylesheet'] === 'b'):`{:.language-php} ?>  
        href="b.css"  
      <?php `else:`{:.language-php} ?>  
        href="default.css"  
      <?php `endif;`{:.language-php} ?>  
    <?php `endif;`{:.language-php} ?>  
    />  
    [/code]  
      
    (ungetestet)  
      
    Qapla'
    
    -- 
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    
    1. Hallo,

      Wenn du das Einbinden des Stylesheets auslagerst:
      <?php [code lang=php]include 'stylesheet.php'; ?>
      [/code]

      In stylesheet.php bindest du je nach Wert des Parameters stylesheet verrschiedene Stylesheetdateien ein:

      <link rel="stylesheet"

      <?php [code lang=php]if (empty($_GET['stylesheet'])):

      
      >   href="default.css"  
      > <?php else: ?>  
      >   <?php `if ($_GET['stylesheet'] === 'a'):`{:.language-php} ?>  
      >     href="a.css"  
      >   <?php `elseif ($_GET['stylesheet'] === 'b'):`{:.language-php} ?>  
      >     href="b.css"  
      >   <?php `else:`{:.language-php} ?>  
      >     href="default.css"  
      >   <?php `endif;`{:.language-php} ?>  
      > <?php `endif;`{:.language-php} ?>  
      > />  
      > [/code]  
        
      danke dir für deine Lösung. Wenn ich wieder am PC bin werde ich es gleich testen.
      
    2. Wenn du das Einbinden des Stylesheets auslagerst:
      <?php [code lang=php]include 'stylesheet.php'; ?>
      [/code]

      In der Form verhinderst du allerdings ein sinnvolles Caching des Stylesheets. Besser: Dem stylesheet.php entsprechende Header mitgeben (content-type, cache-Control, expires), oder doch lieber die Stylesheets als CSS ausliefern und den Switch außerhalb erledigen.

      1. Aloha ;)

        In der Form verhinderst du allerdings ein sinnvolles Caching des Stylesheets. Besser: Dem stylesheet.php entsprechende Header mitgeben (content-type, cache-Control, expires), oder doch lieber die Stylesheets als CSS ausliefern und den Switch außerhalb erledigen.

        Inwiefern? stylesheet.php tut doch gar nix anderes, als statisches CSS als CSS einzubinden?

        Mit diesem include wird ja nur der switch-algorithmus ausgelagert, nicht das CSS generiert...

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Inwiefern? stylesheet.php tut doch gar nix anderes, als statisches CSS als CSS einzubinden?

          Stimmt ja, ich hatte mich verguckt und bin darauf angesprungen, dass das Ausliefern von CSS als PHP-Ressource einige Nachteile mitbringt.

          Danke für die Richtigstellung.

      2. @@Schuer:

        nuqneH

        In der Form verhinderst du allerdings ein sinnvolles Caching des Stylesheets.

        Von Camping_RIDERs Einwand abgesehen: Möchte man Stylesheets *während der Entwicklung* wirklich cachen?

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
        1. Von Camping_RIDERs Einwand abgesehen: Möchte man Stylesheets *während der Entwicklung* wirklich cachen?

          Nein, auch diesen Punkt »während der Entwicklung« hatte ich wohlwollend überlesen ;)

    3. @@Gunnar Bittersmann:

      nuqneH

      In stylesheet.php bindest du je nach Wert des Parameters stylesheet verrschiedene Stylesheetdateien ein:

      <link rel="stylesheet"

      <?php [code lang=php]if (empty($_GET['stylesheet'])):

      
      >   href="default.css"  
      > <?php else: ?>  
      >   <?php `if ($_GET['stylesheet'] === 'a'):`{:.language-php} ?>  
      >     href="a.css"  
      >   <?php `elseif ($_GET['stylesheet'] === 'b'):`{:.language-php} ?>  
      >     href="b.css"  
      >   <?php `else:`{:.language-php} ?>  
      >     href="default.css"  
      >   <?php `endif;`{:.language-php} ?>  
      > <?php `endif;`{:.language-php} ?>  
      > />  
      > [/code]  
        
      Das ist in dieser Form Unsinn, denn auch so besteht das [angesprochene Problem](https://forum.selfhtml.org/?t=218952&m=1509820): Folgt man einem Linkk von foo.php?stylesheet=a nach bar.php, wird diese Seite wieder mit Default.css gestylt. Man muss den Parameter irgendwie mitschleifen (Cookie).  
        
      Pseudocode:  
      

      Wenn $_GET['stylesheet']
      {
        verwende ensprechendes Stylesheet;
        setze ensprechenden Cookie;
      }
      sonst wenn Cookie gesetzt
      {
        verwende ensprechendes Stylesheet;
      }
      sonst
      {
        verwende Default-Stylesheet;
      }

        
      Qapla'
      
      -- 
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)