我正在寻找如何根据<body>
或帖子type/page
模板中的任一课程更改徽标。
我不太了解PHP,如果我猜的话我将需要使这个工作。
我认为,如果我在精灵图形中使用所有徽标并使用css类更改为每个页面的不同徽标,那么效果会很好,因此php只会更改类。
像这样的东西?
if(body class="home") {
<div class="logo1"><img src="images/logo.png" /></div>
} elseif(body class="page1") {
<div class="logo2"><img src="images/logo.png" /></div>
} else {
<div class="logo"><img src="images/logo.png" /></div>
}
我还没有尝试过这段代码,只是想知道这种方法是否正确。
答案 0 :(得分:0)
大多数主题在body标签中添加了几个类,slug或page-id-number。
在body标签中查看您的页面源代码,是的,使用精灵。
PHP太过分了。使用CSS。
答案 1 :(得分:0)
iambriansreed在我面前回答得很好,并提供了一个很好的答案,但我想扩展他所说的内容,我还有更多话要说,而不是发表评论,所以我发表了自己的答案。
在您的HTML中,您将拥有一个徽标元素,例如div或h1标签:
<h1 class="logo">My Company</h1>
然后使用CSS隐藏文本,并将其替换为图像:
.logo {
background: url(mylogo.png) 0 0 no-repeat;
width: 200px; /* match logo width */
height: 80px; /* match logo height */
text-indent: -9999px; /* hides text */
}
我展示了一种隐藏文字的技巧。还有其他方法。将文本留在标记中的原因是SEO和可访问性。
在子页面上,您将根据附加到身体标签的类使用更具体的选择器来更改徽标背景:
.section2 .logo {
background: url(mylogo.png) 0 -80px no-repeat;
}
除了根据正在呈现的部分/页面将唯一类附加到body标记之外,PHP不会进入等式。