动态CSS生成PHP函数
我创建了一个简单的函数来动态打印css。我认为在不使用sass或更少sass的情况下,会有更好的解决方案。那么,有谁能给我推荐一个更好的方法吗 这些是css选择器、属性和值。动态CSS生成PHP函数,php,css,Php,Css,我创建了一个简单的函数来动态打印css。我认为在不使用sass或更少sass的情况下,会有更好的解决方案。那么,有谁能给我推荐一个更好的方法吗 这些是css选择器、属性和值。 $css_opts = array( 'topbar' => array( 'selector' => '#topbar', 'property' => array( array( 'property_name
$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选择器是动态的时,这不是更好的方法。再次检查我的问题(编辑)以使您更好地理解。尝试查找问题!