可能重复:
如何使CSS文本修饰覆盖工作?
看看这个简单的例子:
<a href="#"> A <span>red</span> anchor </a>
Run Code Online (Sandbox Code Playgroud)
a {
color:blue;
font-family:Times New Roman;
text-decoration:underline;
}
span {
color:red;
font-family:Arial;
text-decoration:none;
}
Run Code Online (Sandbox Code Playgroud)
现场演示: http : //jsfiddle.net/5t9sV/
正如你在上的jsfiddle的演示中看到,SPAN元素覆盖color和font-family它的祖先定位元素的属性值.但是,由于text-decoration某种原因,该物业不会被覆盖.
我假设一些CSS属性可以被祖先元素覆盖,而其他一些CSS属性则不能.
是这样吗?如果是,我怎么知道哪些可以被覆盖?
我将在我的菜单中使用这样的CSS表格:
.menu {text-decoration:underline;}
.menu a:link {text-decoration:none; color:#0202C0}
.menu a:active {text-decoration:none; color:#0202C0}
.menu a:visited {text-decoration:none; color:#0202C0}
.menu a:hover {text-decoration:underline; color:#0099FF}
Run Code Online (Sandbox Code Playgroud)
但在尝试将其应用于文档时
<span class="menu">
Some underlined text came here...
<a href="...">this text should not be underlined until mouse on!</a>
</span>
Run Code Online (Sandbox Code Playgroud)
我发现了意外的行为:链接文本总是保持下划线.我做错了什么?它可能取决于浏览器(我使用的是Mozilla Firefox 3.5.6,可能是IE 6.0正确显示)?如果是这样,我怎么能依赖CSS呢?我应该用什么来替代它?
(事实上,通常我很快就学会了新的编程语言,并且在编写基础之前从未遇到任何问题,直到我开始使用HTML和CSS.要么我与它不兼容,要么它的功能从未得到足够好的回忆.)