Ankündigung

Einklappen
Keine Ankündigung bisher.

Dynamische Stylesheets

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamische Stylesheets

    Hallo erstmal an alle hier

    Ich arbeite derzeit an einem Webprojekt und bin nun bei dem Thema PHP angelangt

    Dazu erstmal hier eine kleine Einführung damit jeder weiss was ich vorhabe :

    Die Webseite wird momentan aufgerufen und der Viewport des Nutzers wird per Javascript ausgelesen. Sprich genau :

    Die Angaben Länge in x-pixeln und Höhe in y-pixeln. Also habe ich in Javascript 2 Variablen die ich per href nun an PHP übergebe. In PHP werden diese dann mit $_GET["pagex"]; und mit $_GET["pagey"]; angesprochen. Mit diesen Werten berechne ich dann in php die Abmessungen meiner Elemente der Seite.
    Dadurch erhalte ich dann zum Beispiel die Höhenangabe und Breitenangabe von einem DIV-Container den ich später stylen möchte.

    Die Variablen die später die Längen und Höhenangaben oder Positionierungsangaben meiner HTML-Elemente darstellen oder auch margins liegen nun also als Variablen in PHP vor. Aber ich will ja nun diese Variablen auch in CSS wieder einbinden.

    Ich weiss das ich per PHP die Möglichkeit habe Dateien zu öffnen, zu bearbeiten und zu speichern. Nur bin ich etwas unschlüssig wie genau die klügste Methode wäre das ganze umzusetzen.

    Soll ich die gesamte bereits vorhandene CSS-Datei einlesen ?
    Oder zeilenweise einlesen und per regulärem Ausdruck nach der entsprechend zu verändernden Zeile suchen ?

    Oder eine neue temporäre CSS-Datei erstellen ?

    Im Moment erzeuge ich mit einem simplen Codeschnipsel bei jedem Seitenaufruf eine CSS-Datei :

    erster Aufruf : temp_01.css
    zweiter Aufruf : temp_02.css

    ist das der richtige Weg ?
    Hätte gerne mal eure Meinung gehört zu dem Ansatz oder generell zu der Problematik

    Danke im voraus fürs mitlesen und reindenken

    Grüsse
    Jeremy

  • #2
    Willkommen erstmal!
    Vielleicht hilft dir das weiter: PHP in CSS / DSS - Dynamic Style Sheet - PHP - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de
    Ich denke sowas suchst du, oder?

    Kommentar


    • #3
      Genial - u saved my day ! Ich versuchs damit !

      Kommentar


      • #4
        Es kann nur teilweise zu Fehlern kommen.
        Manche Browser nehmen Stylesheets dieser Art nicht an oder können manche Styles nicht wiedergeben. Da musst du eben ein bisschen drauf achten und dein Layout in vielen Browsern ausprobieren.
        Auch würde ich dir empfehlen keine zu komplexen Layouts damit zu machen, da es dann sehr schnell sehr unübersichtlich wird!!
        Viel Erfolg

        Kommentar


        • #5
          jo merks grad Firefox zankt mich grad mit folgender Aussage :

          Warnung: Stylesheet http://www.petraarenz.de/test/css/ci.css.php wurde geladen, obwohl sein MIME-Typ, "text/html", nicht "text/css" ist.
          Quelldatei: Praxis fr Physiotherapie & Osteopathie Petra Arenz .- Home -.
          Zeile: 0

          Kommentar


          • #6
            Anfang der ci.css.php :

            PHP-Code:
            <?php
                header
            ('Content-type: text/css');
                
            $width "500px":
            ?>
            Hab ichs nicht genauso gemacht wie im Beispiel ?

            Nachtrag :
            so wird die php-datei eingebunden im head :

            PHP-Code:
                <link rel="stylesheet" type="text/css" href="./css/ci.css.php" /> 

            Kommentar


            • #7
              Andere Nachfrage @ dex :

              Wie würdest du ein komplexes Layout dynamisch mit CSS stylen ?

              Kommentar


              • #8
                Komplexe Layout benötigen im normalfall keine Dynamik der Art, die du erreichen möchtest. Du möchtest doch sicher sagen können "Hintergrundfarbe auf Seite 1 ist grau, Hintergrundfarbe auf Seite 2 ist weiß", oder etwas derartiges?

                Edit: PS: Die Fehlermeldung des Links bezieht sich im Moment auf unexpected ":" ... $width = "500px": <-- ":" ? ";" !

                Kommentar


                • #9
                  Ich will div-boxen height und width verpassen dynamisch in pixeln errechnet - das ist zwar was anderes als die farbe -
                  aber auch nur ein attribut eines html-elementes wie auch die farbe ....

                  Kommentar


                  • #10
                    Dann benutz doch eine Body ID oder etwas ähnliches.
                    Das bedeutet:
                    <body id="Seite1">

                    In deiner CSS als Beispiel mit Hintergrundfarbe:
                    Code:
                    #Seite1 {
                    background-color:#FFFFFF;
                    }
                    #Seite2 {
                     background-color:#CCCCCC;
                     }
                    Oder wenn du's eben als Höhe und Breite eines Div's haben willst (der Div hat als Beispiel mal die ID "container"):
                    Code:
                    #Seite1 #container {
                     width:200px;
                    height:100px;
                     }
                    #Seite2 #container {
                      width:250px;
                    height:400px;
                      }
                    Du kannst damit nun zwar nicht sagen "792px * 493px" aber ein paar bestimmte Bereiche anlegen mit verschiedenen Größen.

                    Mal noch ne andere Frage: Warum brauchst du das denn überhaupt Variabel?

                    Kommentar


                    • #11
                      ich weiss das prozentangaben gern gesehen werden um solche probleme zu lösen aber dann kann ich nicht sicher sein das die boxen die reine grafiken haben korrekt skaliert werden.

                      ein beispiel :

                      ich habe im head-bereich meines html-dokumentes eine grafik links und eine rechts. linke grafik nimmt 25 % der breite ein und rechte grafik 75 % der breite. der headbereich nimmt 20 % der seitenhöhe ein. soweit gut machbar aber dann muss ich meine grafik genau nach dem gesichtspunkt designen. sprich die grafik muss in den abmessungen 25 % der breite der seite haben und 20 % der höhe.

                      nun will ich meinen grafikerbienen diese einschränkung aber nicht auferlegen sondern sage:

                      hey ihr entwerft mir was und ich baue das um :

                      dann kriege ich zum beispiel ein design : 1520 x 900 gesamtgrösse (in pixeln)

                      das wiederum zerlege ich in die teilgrafiken - bleiben wir beim beispiel im kopfbereich :

                      linke grafik abmessungen : 418 x 207 pixel
                      recht grafik abmessungen : 1102 x 207 pixel

                      so nun soll ich ja laut idealvorstellung damit das ganze vernünftig skaliert erstmal mit prozent arbeiten :

                      breite der linken grafik (%) : 27,5
                      breite der rechten grafik = gesamtbreite - breite der linken grafik

                      wieso mache ich das so ? damit mein design nicht zerschossen wird und ich trotzdem die grafik korrekt skaliere

                      Kommentar


                      • #12
                        weil ich die verrückte idee habe das seitenverhältnis und das originaldesign beizubehalten und trotzdem die maximal verfügbaren anzeigebereich auszunutzen

                        Praxis fr Physiotherapie & Osteopathie Petra Arenz .- Home -. da läuft das schon aber halt mit javascript und durch das DOM-gedöhne merkt man die verzögerung da die dynamische anpassung erst auf dem client geschieht

                        ich fand das störend und dachte mir : hey wieso nicht direkt das style-sheet beeinflussen ?

                        übrigens für die puristen : keine sorge schaltet mal java-script aus die seite wird trotzdem noch am leben erhalten

                        Kommentar


                        • #13
                          So hab nun den Fehler raus - PHP erwartet nunmal keinen Doppelpunkt sondern Semikolon am Anweisungsende

                          Kommentar


                          • #14
                            Problem also gelöst? Dann abhacken als erledigt und weiter gehts!
                            Viel Erfolg trotzdem weiterhin
                            Gruß

                            Kommentar


                            • #15
                              Sag mal, kannst Du mal den Ändern-Button benutzen?

                              Kommentar

                              Lädt...
                              X