动态CSS生成PHP函数

时间:2017-01-11 09:46:40

标签: php css

我创建了一个动态打印css的简单函数。我认为没有使用sass或更少的话会有一个更好的解决方案。所以,有人能推荐我更好的方法吗?

这些是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生成的函数

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 '}';


            }

        }
    }

}

我创建此函数的原因是为了避免在css中的php文件中进行多时间条件检查。例如,如果我有一个文件名是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
}

1 个答案:

答案 0 :(得分:0)

添加标题内容类型css页面顶部..

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

不要忘记创建一个专门用于动态css文件的新php文件。