2017-01-11 31 views
-1

私はcssを動的に印刷する簡単な関数を作成しました。私は、それほど良い解決策があると思います。だから、誰かが私に良い方法を勧めてくれましたか?動的CSSのPHP関数を生成

これらはCSSセレクタのプロパティ&の値です。

$css_opts = array(
    'topbar' => array(
     'selector' => '#topbar', 
     'property' => array(
      array(
       'property_name' => 'color', 
       'property_value' => '#fff', 
      ), 
      array(
       'property_name' => 'background-color', 
       'property_value' => '#fff', 
      ), 
      array(
       'property_name' => 'border-color', 
       'property_value' => '#fff', 
      ), 
     ), 
    ), 
    'main-bg' => array(
     'selector' => '#main-bg', 
     'property' => array(
      array(
       'property_name' => 'color', 
       'property_value' => '#fff', 
      ), 
      array(
       'property_name' => 'background-color', 
       'property_value' => '#fff', 
      ), 
      array(
       'property_name' => 'border-color', 
       'property_value' => '#fff', 
      ), 
     ), 
    ), 
); 

これは、CSSである私は、この関数を作成する理由は、CSSでのPHPファイルに複数の時間条件のチェックを回避することである

function zb_css_dynamically($css_opts) { 

    if (isset($css_opts)) { 

     foreach ($css_opts as $key => $value) { 

      if (isset($value['selector'])) { 

       echo $value['selector']; 
       echo '{'; 

       foreach ($value['property'] as $property) { 

        echo $property['property_name'] . ':' . $property['property_value'] . ';'; 

       } 
       echo '}'; 


      } 

     } 
    } 

} 

機能を生成。たとえば、ファイル名がcustom-style.phpであるとします。私が新しいCSSプロパティを追加したいときはいつでも条件付きで私を忙しくすることができます。

<?php header("Content-type: text/css"); 

require_once('../../../../../wp-load.php'); 


?> 

<?php if (function_exists('smarkt_data')) { 
    $opts = fw_get_db_customizer_option(); ?> 

    /*** Site Color ***/ 
    .main-bg { 
    <?php 
    if (! empty($opts['site_main_color_field'])) { 
     echo 'background-color:' . $opts['site_main_color_field'] . ';'; 
    } 

    ?> 
    } 

    .main-text-color { 
    <?php 
    if (! empty($opts['site_main_text_color_field'])) { 
     echo 'color:' . $opts['site_main_text_color_field'] . ';'; 
    } 

    ?> 
    } 
    <?php 
} 
+0

ええ、私はそれが答えではないことを知っています:Dしかし、私はむしろJSでそれをしたいと思います。ローカルストレージに保存する方法はありません(最終的にはajaxで変更して適用するだけです)? phpはフロントエンドで分けられるべきです。 – artur99

答えて

0

ページのヘッダのコンテンツタイプCSSのトップを追加します。..

header("Content-type: text/css"); 

は、動的なCSSファイルのために専用に新しいPHPファイルthat'iiを作成するのを忘れないでください。

+0

もしあなたが私に尋ねてください! –

+0

私はそれがより多くのCSSセレクタを動的に持っているとき、それがより良い方法だとは思わない。あなたの理解を深めるために、私の質問をもう一度チェックしてください。 – porpor

+0

何かを見つけようとしています! –

関連する問題