2010-03-24 177 views
1

在我的主要CSS文件中,我有我的a:链接选择器设置为以白色显示链接。覆盖:链接

a:link{ 
color: white; 
} 

但是,我想另一个DIV(.menuItem)中的链接是黑色的。

我想

.menuItem a:link{ 
color: black; 
} 

似乎无法得到它的工作,所以它可能是错的..

任何人都可以伸出援助之手的这一个?

回答

2
.menuItem a:link{ 
color: black !important; 
} 
+3

这不是一个理想的解决方案 - 应该能够使用级联效应来完成这项工作。 – 2010-03-24 22:15:31

+0

@Grant Palin:这是正确的,CSS可以用一个更具体的“覆盖”一般样式定义。所以有一个!重要或不应该不是关键的解决方案 – 2010-03-24 22:40:10

0

立即处理示例代码。但是你的div标签有menuItem的id还是一个menuItem的类?这是我的猜测。

编辑:好的,现在我明白了。 !如果你的CSS分离到另一个文件,并使用link标签在导入它,那么它应该是不使用的重要命令细,看到这一点:

body {background-color : green;} 

a:link{ color : white;} 

.menuItem a:link 
{ 
color : black; 
} 

而且这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
<head profile="http://gmpg.org/xfn/11"> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
<title>Test page</title> 
<link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8"> 
</head> 
<body> 
<div> 
    <a href="#">This is a link</a> 
</div> 
<div class="menuItem"> 
    <a href="#">This is a link in div menuItem</a> 
</div> 
</body> 
</html> 

希望这有助于:)

不过,如果我将CSS片段嵌入到HTML中,那么它不工作......想知道为什么?

+0

我会认为一个类,因为可能有很多菜单项。 – 2010-03-24 22:14:25

+0

@ Chacha102:现在我看到你的问题,正在解决它... – 2010-03-24 22:20:36

2

关于Chacha102,我不认为这个解决方案是理想的。 !important是一个kludge,处理这个问题的更好的方法是利用文档结构来增加一些特殊性。假设你.menuItem元素都有一个共同的父母,也许是divmenu的ID,可以按如下方式修改您的具体菜单链接样式:

#menu a:link { 
    color: black; 
} 

额外的特异性应引起更具体的规则生效了这些菜单项。

+0

这是一个很好的建议,但我认为问题来自直接嵌入到HTML页面或不。如果你拿我的示例代码并在XAMP中访问它,那么你可以看到差异。因此,考虑到原来的问题,是的,这是可行的,恐怕它必须是两个文件而不是一个文件。 – 2010-03-24 22:36:36