今天我偶然发现了以下情况:
a { text-decoration: underline; }
h1{ text-decoration:none;}
<a href="#"><h1>Title</h1></a>
这会产生带下划线的标题元素。
块元素的规则不适用。我意识到我必须设置锚元素的样式以获得所需的效果。我的问题是:为什么?
规范中描述此行为的规则是什么?
答案 0 :(得分:0)
只是因为您的h1
位于a
标记内有下划线...所以你会看到它加下划线,但实际上只是他的容器有下划线。你的CSS工作正常。
如果要删除链接h1的下划线,只需反转dom顺序:
a {
text-decoration: underline;
}
<h1><a href="#">My Linked H1</a></h1>
<h1>Not linked H1</h1>
答案 1 :(得分:0)
有些CSS属性不会像你这样被覆盖。因此a
的下划线适用于其所有孩子。你可以看到它像边框。当父容器具有边框时,您无法通过删除子元素的边框来删除它。背景,填充,边距等也是一样。
要了解更多信息,您可以更改文本修饰的属性,以查看它们是否分别表现:
a {
text-decoration: underline;
color:red;
}
h1 {
text-decoration: line-through;
color:green;
}
h2 {
text-decoration: overline;
color:blue;
}
<a href="#">
<h1>Title</h1>
<h2>tile</h2>
</a>
答案 2 :(得分:0)