我有一个PHP脚本,它会根据标题显示的标题项为标题分配CSS属性。
我有这个菜单结构。关于及其子女需要橙色标题和服务,其子女需要紫色标题
ABOUT SERVICES
page1 page 4
page2 page 5
page3 page 6
目前我的脚本将检测某个页面是否是某个页面的子页面,但所有标题都是使用我脚本的第一个if
语句设置的。 (即我首先检查服务,并为所有内容分配紫色标题)
这是两个脚本,谁能告诉我出了什么问题?
if(get_the_title($ID) === "Services" || is_tree($ID) == true) {
echo '<style type="text/css">
.header-page h1 {
background-color: #9B87A9;
}
.header-page h2 {
background-color: #9B87A9;
}
</style>';
}
else if(get_the_title($ID) === "About" || is_tree($ID) == true) {
echo '<style type="text/css">
.header-page h1 {
background-color: #dea949;
}
.header-page h2 {
background-color: #dea949;
}
</style>';
}
和第二个脚本/功能:
function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath
global $post; // load details about this page
if(is_page()&&($post->post_parent==$pid||is_page($pid)))
return true; // we're at the page or at a sub page
else
return false; // we're elsewhere
};
答案 0 :(得分:1)
您不应该在样式标记中回显一些CSS,而是有条件地将类分配给菜单或菜单项,然后将css用于特定的类。
您在这里做的是为所有.header-page h1
元素分配相同的样式(是菜单标题?),这将适用于所有<h1 class="header-p[age">
。
如果你的ABOUT菜单有一个独特的类,那么让我们说.about
你只需要为这个元素使用不同的css,而不需要使用php条件。
示例,使用html和css:
<h1 class="header-page about">About</h1>
<ul class="menu about">
...
</ul>
<h1 class="header-page services">Services</h1>
<ul class="menu services">
...
</ul>
现在你可以在没有条件的情况下应用样式:
<style>
h1.header-page.about {color:black}
ul.menu.about {color:red}
h1.header-page.services {color:green}
ul.services {color:yellow}
</style>