0

我正在寻找如何根据模板<body>或帖子type/page模板中的任一类更改徽标。我对 PHP if 语句不太了解,我猜我需要完成这项工作。

我认为如果我在 sprite 图形中拥有所有徽标并使用 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>
}

我还没有尝试过这段代码,只是想知道这是否正确。

4

2 回答 2

0

大多数主题在正文标签中添加了一些类,或者是 slug 或 page-id-number。

在 body 标记中查看页面的源代码,是的,使用 sprite。

PHP是矫枉过正。使用 CSS。

于 2012-06-17T07:14:19.863 回答
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;
}

除了根据正在呈现的部分/页面将唯一类附加到正文标记之外,PHP 没有进入等式。

于 2012-06-17T08:17:54.170 回答