【发布时间】:2011-02-17 19:29:29
【问题描述】:
不久前我推出了一个网站,并成功使用 Javascript + CSS 在导航中突出显示当前页面。但是,它在 Safari 中不起作用,并且在使用 Javascript 时无法很好地验证,所以我决定让 PHP 将 CSS id 分配给 HTML 元素。到目前为止,它工作正常,与在 PHP 中尝试每个链接显示两个的其他时间相比。我的问题是所有链接看起来都很正常并且没有应用 CSS 属性。我感觉这与我的 PHP 代码有关,但我不确定。
网站地址是here
至于PHP代码,这里是:
<?php
echo('<li><span class="bold">Main</span>');
echo('<ul>');
if ($page=="home")
{
echo('<li><a id="current" href="index.shtml">Home</a></li>');
}
else
{
echo('<li><a href="index.shtml">Home</a></li>');
}
if ($page=="faq")
{
echo('<li><a id="current" href="faq.shtml">FAQ</a></li>');
}
else
{
echo('<li><a href="faq.shtml">FAQ</a></li>');
}
if ($page=="about")
{
echo('<li><a id="current" href="about.shtml">About Bryce</a></li>');
}
else
{
echo('<li><a href="about.shtml">About Bryce</a></li>');
}
echo('<li><a href="contact.php">Contact Bryce</a></li>');
if ($page=="sign guestbook")
{
echo('<li><a id="current" href="sign.shtml">Sign Guestbook</a></li>');
}
else
{
echo('<li><a href="sign.shtml">Sign Guestbook</a></li>');
}
if ($page=="view guestbook")
{
echo('<li><a id="current" href="view.shtml">View Guestbook</a></li>');
}
else
{
echo('<li><a href="view.shtml">View Guestbook</a></li>');
}
echo('</ul>');
echo('</li>');
echo('<li><span class="bold">Info</span>');
echo('<ul>');
if ($page=="projects")
{
echo('<li><a id="current" href="projects.shtml">Projects</a></li>');
}
else
{
echo('<li><a href="projects.shtml">Projects</a></li>');
}
if ($page=="books")
{
echo('<li><a id="current" href="books.shtml">Books</a></li>');
}
else
{
echo('<li><a href="books.shtml">Books</a></li>');
}
echo('</ul>');
echo('</li>');
echo('<li><span class="bold">Misc.</span>');
echo('<ul>');
if ($page=="cover designs")
{
echo('<li><a id="current" href="coverdesigns.shtml">Cover Designs</a></li>');
}
else
{
echo('<li><a href="coverdesigns.shtml">Cover Designs</a></li>');
}
echo('<li><a target="_blank" href="http://www.lulu.com/brycecampbellsbooks">Lulu Store</a></li>');
echo('<li><a href="rss/">RSS</a></li>');
echo('</ul>');
echo('</li>');
?>
为了让大家了解高亮效果应该是什么样子,下面是应该应用于当前页面的 CSS:
#current {
font-style: italic;
text-decoration: none;
color: #000000;
}
当查找我做错了什么时,它告诉我我正在正确实施它,但似乎 PHP 没有获取值。
【问题讨论】:
-
你能告诉我们 $page 是如何设置的吗?
-
哎哟。我建议您转而使用 php 模板系统,以确保将显示与表示逻辑分开。
-
@Tchalvak PHP 是一个模板系统。这只是意大利面的混乱。
-
我正在使用 SSI 来处理最有可能发生变化的内容。我宁愿将 PHP 用于诸如导入 RSS 和重定向以及留言簿之类的事情。真正的基于 PHP 的布局可以提供很大帮助,考虑到代码量,它只需要更长的时间。这样做会花费更少的时间,即使它更难。
-
@Timothy PHP 确实是一个模板系统,一旦程序员熟悉了将内容与表示分离所涉及的内容,就可以自己实现这种分离,而无需中间的模板系统。但在 php 程序员清楚了解良好内容分离的好处和过程之前,我建议使用单独的第三方模板系统来掌握最佳实践。
标签: php highlighting