1

我正在建立一个网站模板。这个模板将用于我的 20 个网站。我正在使它成为数据库驱动的。这样,当我想编辑它时,我可以从我的数据库中执行此操作,而无需上传任何内容或不必编辑每个页面上的项目/属性。

我希望能够将颜色的 css 属性放在我的数据库中。这是我的一些代码。这段代码是css。

@charset "utf-8";
/* CSS Document */
a {
    display: block;
    width: 100%;
    color: <?php echo $styles_query_result[1]['a_color']; ?>;
}
a:link {
    text-decoration: none;
    color: <?php echo $styles_query_result[1]['a_link']; ?>;
}
a:visited {
    text-decoration: none;
    color: <?php echo $styles_query_result[1]['a_visited']; ?>;
}

现在,只要样式在主页上,上面的代码就可以工作。一旦我创建了一个样式表并附加它,以便样式作为styles.css 位于它们自己的文件夹中,代码就不再起作用了。我不希望将样式保留在主页上。

一旦样式位于它们自己的文件和文件夹中,如何将数据库中的数据提取到样式表中。styles.css 位于根目录中的文件夹中。

根目录中的文件夹/文件:

index.php(从此页面中删除了样式)

css (并将样式放在此处。styles.css 在此文件夹中)

图片

包括

提前致谢!

4

1 回答 1

2

如果您有一个数据库模板,您可以使用它来创建一个 .css 文件,而无需在 .css 文件中使用 php。

如果你有两张桌子:

在此处输入图像描述

您可以使用它来创建一个 css 文件。伪代码:

<?php

    //$db = new PDO('mysql:host=localhist;dbname=cms', 'root', 'root');

    //$query = $db->query("SELECT * FROM `selector`");
    //$query = $query->fetchAll();

    $query = array(
        array('id' => 1, 'selector' => '.thisone'),
        array('id' => 2, 'selector' => '#thatone'),
        array('id' => 3, 'selector' => '.body')
    );

    $probs = array(
        1 => array(
            array('id' => 1, 'selector_id' => 1, 'css_element' => 'border', 'element_value' => '1px solid'),
            array('id' => 2, 'selector_id' => 1, 'css_element' => 'padding', 'element_value' => '10px')
        ),
        2 => array(
            array('id' => 1, 'selector_id' => 2, 'css_element' => 'border', 'element_value' => '1px solid')
        ),
        3 => array(
            array('id' => 1, 'selector_id' => 2, 'css_element' => 'width', 'element_value' => '40px'),
            array('id' => 2, 'selector_id' => 2, 'css_element' => 'height', 'element_value' => '40px')
        )
    );

    $css = '';
    foreach($query as $selector){
        //$properties = $db->query("SELECT * FROM `properties` WHERE `selector_id` = $selector->id");
        //$properties = $properties->fetchAll();

        $properties = $probs[$selector['id']];

        $rules = '';
        foreach($properties as $element){
            $rules .= "\n \t$element[css_element]:$element[element_value];";
        }

        $css .= "$selector[selector]".'{'."$rules \n".'}'."\n\n";
    }

    $fp = fopen('style.css',"w");
    fwrite($fp,$css);
    fclose($fp);

    echo "<pre>";
    echo "$css";
    echo "</pre>";

?>

结果将是:

.thisone{
    border:1px solid;
    padding:10px; 
}

#thatone{
    border:1px solid; 
}

.body{
    width:40px;
    height:40px; 
}

您可以使用 css_file(id, name) 添加表,然后将 css_file_id 添加到选择器表。然后你也可以写多个文件。

您还可以创建一个编辑器表单,您可以在其中添加/删除/更改 css 规则/选择器/文件。

于 2013-10-25T06:49:34.997 回答