2010-10-09 38 views
2

我的菜单是一堆链接,然后我用CSS样式按钮如何给予了积极的菜单项不同的造型

<div id="menu"> 
    <a href="" class="mybutton">Item 1</a> 
    <a href="" class="mybutton">Item 3</a> 
    <a href="" class="mybutton">Item 3</a> 
</div> 

当点击菜单项,是积极的,什么款式的最佳途径它不同?我是否使用jquery或javascript来添加一个新类?或者有这个CSS技巧?

回答

1

CSS的:active伪类可用于:

a.mybutton:active { 
    /* rules */ 
} 
3

CSS技巧

#menu a:active { 
    color: #f00; 
} 

同为:悬停:参观

好运!

编辑

,现在你希望链接你在被风格化不同的页面看,我需要更多的细节。你使用PHP吗?你不使用每页一个PHP脚本?

无论如何,这应该是有效的,如果你有一个header.php文件,你包含在你的所有页面中,或者你懒得对每个链接的类进行硬编码。

PHP:

// Return $return if this page is $page, false otherwise 
function is_current($page, $return) { 
    $this_page = $_SERVER['SCRIPT_NAME']; // will return /path/to/file.php 
    $bits = explode('/',$this_page); 
    $this_page = $bits[count($bits)-1]; // will return file.php, with parameters if case, like file.php?id=2 
    $bits = explode('?',$this_page); 
    $this_script = $bits[0]; // will return file.php, no parameters 
    return ($page == $this_script?$return:false); // return $return if this is $page, false otherwise 
} 

CSS

/* blue, no underline when normal */ 
a { 
    text-decoration: none; 
    color: #00f; 
} 
/* red, underlined when class active */ 
a.active { 
    text-decoration: underline; 
    color: #f00; 
} 

您的文件

<!-- Simply echo the function result for each link class --> 
<a href="home.php" class="<?php echo is_current('home.php','active'); ?>">Home</a> 
<a href="about.php" class="<?php echo is_current('about.php','active'); ?>">About</a> 
+0

由于某种原因,这是行不通的。 – vla 2010-10-09 08:35:11

+0

更新了上面的代码 – Claudiu 2010-10-09 09:34:23

2

假设你的意思是 “当用户查看与该链接对应的页面”(而不是“当用户通过链接按下鼠标按钮但尚未释放它时”):

在链接中包含一个类(如current),然后在选择器中使用它。在将其提供给用户之前,将该类添加到页面的HTML中,在服务器端过程中执行此操作通常是最好的方法。

+0

您能给我一个简单的代码示例吗?我是否使用JQuery添加当前类,以及我仍然需要在我的css中使用'#menu a:active {}'这样的东西? – vla 2010-10-09 08:42:04

+0

正如我所说,它应该完成服务器端。具体取决于您使用的服务器端语言。选择器将更多地沿着'#menu a.current'的行。 – Quentin 2010-10-09 08:46:10

+0

我现在明白了。我正在考虑同样的事情,一旦点击实际指向该页面,活动状态就不会持续。那么我如何有条件地用PHP添加当前类? – vla 2010-10-09 08:48:36