【问题标题】:How can I use PHP variables in css without including the whole file?如何在不包含整个文件的情况下在 css 中使用 PHP 变量?
【发布时间】:2020-09-26 23:18:17
【问题描述】:

所以,我正在使用 UIKit,并认为我会“聪明”。所以,我把它变成了一个 .php 文件,添加了样式标签,并将它包含在我的页面中。显然,这是一个非常糟糕的主意。每个页面都插入了 12,241 行代码,我的网站甚至几乎无法加载。我正在尝试为我的用户选择主题选项。所以,我是这样做的:

// Retrieve theme data
$query to select theme information, such as colors

// Example of how this data is used
<style>
.uk-input,
.uk-select,
.uk-textarea {
    /* 1 */
    max-width: 100%;
    /* 2 */
    width: 100%;
    /* 3 */
    border: 0 none;
    /* 4 */
    padding: 0 10px;
    background: #<?php echo $theme_color1; ?>; // RETRIEVED FROM DB
    color: #<?php echo $theme_color3; ?>; // RETRIEVED FROM DB
    border: 1px solid #<?php echo $theme_color2; ?>; // RETRIEVED FROM DB
    transition: 0.2s ease-in-out;
    transition-property: color, background-color, border;
}
</style>

因此,当 css 很大时,这是一种非常糟糕的方法。谁能建议我为我的用户选择主题选项的正确方法?我将不胜感激。谢谢。

【问题讨论】:

  • 可以使用w3schools.com/css/css3_variables.asp,在PHP代码中设置变量值
  • 喜欢这个? PHP 文件: &lt;style&gt;--color1: &lt;?php echo $theme_color1; ?&gt;&lt;/style&gt; CSS 文件: body { background-color:var(--color1); }
  • &lt;style&gt;:root { --main-bg-color: &lt;?php echo $theme['bg']; ?&gt;; --main-txt-color: &lt;?php echo $theme['txt']; ?&gt;; }&lt;/style&gt; 你错过了选择器。部分浏览器不支持caniuse.com/#feat=css-variables
  • 嗯,我已经尝试过这个建议,它就像一个魅力。我非常感激。谢谢。

标签: html css uikit themes css-frameworks


【解决方案1】:

你可以试试这个: 使用您的默认 CSS 信息创建一个单独的 styles.css 文件,并在您的代码中确保使用链接来引用 CSS 文件。然后,您可以通过更改来回显样式标签。在你的情况下,在你的styles.css中给它一个默认的黑色颜色,然后在你的代码中,使用你在css文件中使用的相同选择器只引用颜色:

styles.css:

.uk-input,
.uk-select,
.uk-textarea {
    /* 1 */
    max-width: 100%;
    /* 2 */
    width: 100%;
    /* 3 */
    border: 0 none;
    /* 4 */
    padding: 0 10px;
    background: black;
    color: black;
    border: 1px solid black
    transition: 0.2s ease-in-out;
    transition-property: color, background-color, border;
}

在您的 PHP 代码中:

echo '
    .uk-input,
    .uk-select,
    .uk-textarea {
        background:'. echo $theme_color1 . ';
        color:'. echo $theme_color3 . ';
        border: 1px solid '. echo $theme_color2 . ';
    }
';

对不起,如果代码不是超级可读,我正在手机上这样做。

【讨论】:

  • 嗯。明天我会尝试这样的事情,然后告诉你它是怎么回事。感谢您的建议。
  • 我想知道 set4812 的建议是不是更好的选择?我可以做类似 PHP 文件:&lt;style&gt;--color1: &lt;?php echo $theme_color1; ?&gt;&lt;/style&gt; CSS 文件:body { background-color:var(--color1); } ... 对吗?
猜你喜欢
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 2012-09-19
  • 1970-01-01
  • 2015-08-20
相关资源
最近更新 更多