可以在PHP中生成样式标签吗? (WordPress)

时间:2018-12-19 02:31:56

标签: php css wordpress

我想在WP_Query循环之前生成的代码中添加依赖于某些PHP变量的CSS。基本上,我想使用uniqid并将ID应用于某些元素,然后为这些元素添加一些媒体查询规则,可能使用<style>标签。我已经尝试了以下方法,但是由于不确定的原因,因此不确定<body>中放置的样式标签是否会被忽略。

$id = uniqid();

<style>
#<?php echo $id; ?> {
    background: red!important;
    color: #FFF;
    padding: 2px 6px;
    border-collapse: separate;
}
</style>

该标记放置在DOM中,但被忽略。因此,我正在寻找一种将在模板中生成的CSS放入<head>中的方法。或其他任何添加CSS的方法,除了元素本身的内联之外,因为我不能以这种方式使用媒体查询。为了清楚起见,上面的代码放在循环中,因为我需要发布中的元值才能生成CSS。

还是这只是愚蠢的?

2 个答案:

答案 0 :(得分:2)

放置@Configuration public class WebConfigurer implements EmbeddedServletContainerCustomizer { @Override public void customize(ConfigurableEmbeddedServletContainer container) { MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT); mappings.add("ico", "image/x-icon"); container.setMimeMappings(mappings); } } 标签within the <body> of your document在技术上是无效的,但实际上几乎可以在任何地方使用。

我怀疑您遇到的问题是:<style>的返回值可能以数字开头,并且CSS标识符为cannot begin with numbers。因此,如果您生成类似“ 4b3403665fea6”的ID,则CSS可能会看起来好,但是它将被忽略。

您可以通过向呼叫uniqid()传递前缀来解决此问题,如下所示:

uniqid()

...因此,$id = uniqid('id-'); 将是类似于“ id-4b3403665fea6”的值。

展示体内$id的样品

<style>

请注意,<head> <style> #id-4b3403665fea6 { background: blue; } </style> </head> <body> <h1>Test</h1> <div id='id-4b3403665fea6'>Style me!</div> <style> #id-4b3403665fea6 { background: red!important; color: #FFF; padding: 2px 6px; border-collapse: separate; } </style> </body>的背景为红色,而不是<div>样式指定的蓝色。

答案 1 :(得分:1)

希望这会对您有所帮助。

<?php
$id = uniqid('cnt-');
?>

<style>
    #<?php echo $id; ?> {
        background: red!important;
        color: #FFF;
        padding: 2px 6px;
        border-collapse: separate;
    }
</style>
<div id="<?php echo $id; ?>">Test Content</div>