css - 子 CSS 样式在不应该覆盖父样式时

标签 css inheritance browser

下面是真实 HTML 的简化版本:

<html>
<head>
<style type="text/css">
        h3 { background: blue; }
        p {background:grey; }
    </style>
</head>
<body>
    <h3>The paragraph below will style correctly.</h3>
    <p>
        As you can see, I am stylish.</p>
    <p>
        <h3>But this paragraph goes wrong.</h3>
        I am sad. I have no style.
    </p>
</body>
</html>

在浏览器(已尝试过 Firefox 12 和 IE9)中点击它,虽然第一段的背景是灰色的,但第二段没有。请注意,它甚至没有蓝色背景,样式已经丢失。据我了解,h3 的背景应该影响 h3,而不是向上进入父级并影响它。

我错过了什么吗?注意上面是简化的。我想要段落中的标题,但如果没有样式错误,这似乎是不可能的。上面有错误吗?谢谢。

最佳答案

在段落中包含标题是无效的标记,这就是样式被搞砸的原因。

您可以在此处验证您的标记:http://validator.w3.org/

关于css - 子 CSS 样式在不应该覆盖父样式时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370581/

相关文章:

java - 房间: Use class that extends ArrayList as Entity

c# - 多态,调用父类的子方法

javascript - 使用浏览器后退按钮时如何强制重新加载页面?

android - 获取默认浏览器书签,并存储到文本文件

javascript - 如何考虑浏览器兼容性正确创建和使用XML文档对象?

html - 使父 div 扩展到窗口之外以包裹所有子项

CSS:背景镜面反射

html - 如何在旋转图像下方显示文字

python - 从子外部调用父方法

css - Bootstrap 列之间的垂直间隙