【发布时间】:2011-05-06 16:22:42
【问题描述】:
我有一个我正在构建的网站,其中包含深度嵌套的 div,并使用用户可选择的主题。我的问题是......为什么边框颜色不传播到子元素?
我已经在处理 DOM 样式表了,所以添加一个循环来更新边框颜色并不难。但是我很好奇为什么边框颜色不从父级继承,而是默认为文本颜色,并且边框样式仍不会默认为纯色是标准的(Firefox 和 Chrome,在 Linux 中)?
这种行为背后有什么智慧吗?我不是要装腔作势。我真的很好奇为什么这似乎是“设计使然”。
在我写这篇文章的过程中,我意识到最简单、最灵活的解决方案是将我的元素定义为 class="classname border",然后更新边框类以反映正确的边框颜色。
不过,我还是不明白为什么?
这里有一段简单的 html 来演示这个问题...
<html>
<head>
<style type="text/css">
.content{
color: red;
display: inline-block;
border-width: 2px;
border-style: solid;
border-color: yellow;
}
.nested{
color: green;
display: inline-block;
border-width: 2px;
border-style: solid;
margin: 3px;
}
</style>
</head>
<body>
<div class="content">
Content div. Red text, yellow border.<br>
<div class="nested">
Ignores parent border color. Defaults to text color.
</div>
</div>
</body>
</html>
我不会问这个,除非我相当肯定这里有人真正评论了 rfc,并且有一些背景信息可能会阐明“为什么”。
谢谢。
跳过
【问题讨论】: