我想在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。
还是这只是愚蠢的?
答案 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>