Php 根据数据库结果更改CSS中的DIV颜色?
我想根据正在运行的数据库中的一些真/假值来更改DIV的背景色。这可以在CSS中完成吗?或者当涉及到这个问题时,我是被迫使用内联CSS吗 我提出的一个解决方案是,我创建了几个(4-5个)要调用的类,但是这些类除了颜色之外都有相同的CSS规则,这让我觉得这是多余的,是浪费空间 我还研究了一下,似乎可以在CSS中使用PHP变量。但是,出于以下几个原因,我不想在头中创建单独的.css/.php文件来链接。这可能吗 也许我可以用一些代码更好地解释。这是我想要了解的概念,我想知道我是否能够在没有外部样式表的情况下做到这一点:Php 根据数据库结果更改CSS中的DIV颜色?,php,css,Php,Css,我想根据正在运行的数据库中的一些真/假值来更改DIV的背景色。这可以在CSS中完成吗?或者当涉及到这个问题时,我是被迫使用内联CSS吗 我提出的一个解决方案是,我创建了几个(4-5个)要调用的类,但是这些类除了颜色之外都有相同的CSS规则,这让我觉得这是多余的,是浪费空间 我还研究了一下,似乎可以在CSS中使用PHP变量。但是,出于以下几个原因,我不想在头中创建单独的.css/.php文件来链接。这可能吗 也许我可以用一些代码更好地解释。这是我想要了解的概念,我想知道我是否能够在没有外部样式表的
部门内容{
背景色:;
边框样式:实心;
边框宽度:2倍;
边框颜色:#000;
利润率:10px 0px;
}
您可以为html元素使用许多类,因此只需要更改“color”类。
这样做内联类是最好的解决方案
<element class="thing red" />
element.thing { general rules }
.red { color:red; }
element.thing{一般规则}
.red{color:red;}
为什么不这样做
div.content {
border-style:solid;
border-width:2px;
border-color: #000;
margin: 10px 0px;
}
然后根据db结果向div添加一个附加类,例如
<div class="content <?php echo getContentClass($row) ?>"> ... </div>
然后只需将这些CSS类添加到常规样式表中,例如
div.state1 { background-color: red; color: inherit }
这样,所有内容都被清晰地分隔开来,您不必求助于内联样式
编辑:请注意,上面显示的类名没有意义。像红色或黑色这样的类名也没有意义,因为它们与表示相关。尝试使它们与内容相关,例如无效、错误、付费、免费、活动等。正确,但在这种情况下,只有一个布尔值处于活动状态(TRUE)。永远不会有超过一个布尔值被标记为TRUE,我的数据库结构已经反映了这一点。“else”只是以防万一,但不需要,因为所有的变量都考虑到了,但我把它放在那里以防万一。我知道我可以使用许多类,但我认为可能有更好的方法,因为使用许多具有相同CSS规则的类似乎太多余了。我希望有一个比半冗余CSS类更好的解决方案。对不起。但是你可以在一个整数=P中储存很多布尔值,我经常用很多类来表示我的元素,但我尽量避免重复的规则。嗯,我试试这个。谢谢你的建议,我会回来告诉你结果的。谢谢你的建议!我将试着看看这些建议中哪一个最适合我。我一做完测试就回来!我不得不说,这工作做得很好。非常感谢你!你的所有努力都得到了公认的答案&非常彻底。:)编辑:我忘了提到让有意义的CSS名称与数据库的功能相匹配的注释使它更清晰易懂。好提示!辉煌!辉煌!辉煌!辉煌!
function getContentClass(array $row)
{
return implode(' ', array_intersect_key(
array(
'db_boolean_var1' => 'state1',
'db_boolean_var2' => 'state2',
'db_boolean_var3' => 'state3',
'db_boolean_var4' => 'state4'
),
array_filter($row)
));
}
div.state1 { background-color: red; color: inherit }