动态CSS生成PHP函数

动态CSS生成PHP函数,php,css,Php,Css,我创建了一个简单的函数来动态打印css。我认为在不使用sass或更少sass的情况下,会有更好的解决方案。那么,有谁能给我推荐一个更好的方法吗 这些是css选择器、属性和值。 $css_opts = array( 'topbar' => array( 'selector' => '#topbar', 'property' => array( array( 'property_name

我创建了一个简单的函数来动态打印css。我认为在不使用sass或更少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
}

/***站点颜色***/
.main背景{
}
.主文本颜色{
}

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

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

别忘了创建一个新的php文件,该文件将专用于动态css文件。

是的,我知道这不是一个答案:D,但我宁愿使用JS。您确定没有办法将其保存在本地存储中(最终使用ajax进行更改)并应用它吗?因为php应该主要由前端分隔。我认为当我们有这么多css选择器是动态的时,这不是更好的方法。再次检查我的问题(编辑)以使您更好地理解。尝试查找问题!