Ankündigung

Einklappen
Keine Ankündigung bisher.

css mit variablen?

Einklappen

Neue Werbung 2019

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

  • css mit variablen?

    hi,

    kann ich einen css code mit variablen versehen, die dann später durch php vars ersetzt werden?

    hab folgenden code:
    Code:
    <style type="text/css">
    
    .hover { 
    
    				  	 text-decoration: none; 
    				  	 border:0; 
    				  	 padding:0; 
        				  display: block; 
    				  	 text-indent: -9999px; 
    				  	 letter-spacing: -9999px; 
    				  	 font-size:0; 
    				  	 width: 150px; 
    				  	 height:22px; 
    				  	 background: url("images/1024/button.jpg") 0 0 no-repeat;
    
    				}
    				
    .hover:hover { 
    
    				  	 background: url("images/1024/button_on.jpg") 0 0 no-repeat;
    
    				}
    
    </style>
    und würde dann halt gerne bei der url vars einsetzen.


  • #2
    Speicher den CSS-Code in einer Datei. Diese liest du dann mit PHP in eine Variable ein, ersetzt die enthaltenen Platzhalter und gibst das im <style>-Tag aus.

    Kommentar


    • #3
      also so?

      css.html:
      Code:
      <style type="text/css">
      
      .hover {
      
                        text-decoration: none;
                        border:0;
                        padding:0;
                        display: block;
                        text-indent: -9999px;
                        letter-spacing: -9999px;
                        font-size:0;
                        width: 150px;
                        height:22px;
                        background: url("images/$1024/$button.jpg") 0 0 no-repeat;
      
                  }
                  
      .hover:hover {
      
                        background: url("images/$1024/$button_on.jpg") 0 0 no-repeat;
      
                  }
      
      </style>
      site.php:
      Code:
      <?php
      $1024 = 1024;
      $button = button;
      $button_on = button_on;
      
      
      <style type="text/css"> 
      include('css.html');
      </style> 
      
      ?>
      stimmt das so?

      Kommentar


      • #4
        So:
        PHP-Code:
        <?php
        $css 
        file_get_contents("css.html");
        $css str_replace( array('$1024''$button''$button_on'), array('1024''button''button_on'), $css);
        // ...
        echo '<style type="text/css">';
        echo 
        $css;
        echo 
        '</style>';
        // ...

        ?>

        Kommentar


        • #5
          Ich mache das so:

          PHP-Code:
          <?php
          include_once 'inc.constants.php';
          $skin parse_ini_file(_SKIN.'skin.ini');
          header('Content-type: text/css');
          ?>
          body {
            background: <?php print $skin['background']; ?>;
            /* ... */
          }
          ?>
          Dein Beispiel verstehe ich nicht. Wozu benennst du eine CSS-Datei (auch
          wenns nur ein Template ist) mit .html?
          Außerdem würde ich, wenn du schon Template-Variablen "$1024",
          "$button" verwendest, nicht den Variablen-Stil von PHP verwenden, und
          dann auch noch falsch. Wegen Verwechslungsgefahr.

          Template-Variablen schreibt man oft GROSS und in
          {GESCHWEIFTEN_KLAMMERN} oder anderen Klammern.

          Außerdem definiert man PHP-String-Variablen nicht
          PHP-Code:
          <?php
          $button_on 
          button_on// falsch
          // sondern
          $button_on "button_on"// richtig
          ?>
          Der Unterschied ist, dass du eigentlich versuchst, $button_on eine
          Konstante zuzuweisen, da diese nicht definiert ist (aber durchaus definiert
          sein könnte) wird sie als String (so wie du es eigentlich haben willst)
          zugewiesen.

          Beispiel:

          PHP-Code:
          <?php
          define
          ('button_on''button_off');
          $button_on button_on;
          print 
          $button_on;
          ?>
          Die Ausgabe wäre: "button_off" !

          Außerdem macht es absolut keinen Sinn eine Variable nach ihrem Wert zu
          benennen, also

          $1024 = 1024;

          Du solltest du Variable nach ihrer Funktion ($bildschirmbreite, ..) oder
          Eigenschaft benennen.

          Abgesehen davon müssen PHP-Variablen mit einem Buchstaben oder
          einem _ beginnen, $1024 dürfte meines Wissens nach garnicht funktionieren und einen Parse-Error erzeugen.

          Kommentar


          • #6
            hm ja ich hab es nur mal schnell hingeschrieben, ohne mir große gedanken zu machen ob variablen gehen oder nicht, werde mal ausprobieren, ob das nun so gut wie ich es mir vorstelle. danke für eure tipps.

            Kommentar


            • #7
              okay also ich habs folgendermaßen hinbekommen:

              Code:
              <?
              define('aufl', '1024');
              $aufl = aufl;
              
              define('button_on', 'button_on');
              $button_on = button_on;
              
              define('button', 'button');
              $button = button;
              
              echo "
              
              <style type=\"text/css\"> 
              .hover {
              
                                text-decoration: none;
                                border:0;
                                padding:0;
                                display: block;
                                text-indent: -9999px;
                                letter-spacing: -9999px;
                                font-size:0;
                                width: 150px;
                                height:22px;
                                background: url('images/$aufl/$button.jpg') 0 0 no-repeat;
              
                          }
                         
              .hover:hover {
              
                                background: url('images/$aufl/$button_on.jpg') 0 0 no-repeat;
              
                          }
              		</style> 	 ";?>
              werde das ganze wohl noch in ne schleife stopfen, hoffe das geht. viele dank soweit!!

              Kommentar

              Lädt...
              X