可能我的CSS知识有限,但我不明白这一点:
<p style="color: green">
<p style="color: red">This is red</p>
This should be green. But it's not.
</p>
第二行将以黑色呈现,忽略“颜色:绿色”。为什么? 我在Chrome 28和Firefox 22中进行了测试。
答案 0 :(得分:16)
你不能嵌套段落。
段落是一个自动关闭元素,</p>
是可选的 - 任何块元素都会自动关闭最后一个打开的<p>
。
这就是发生的事情:
<p style="color: green">
</p> <!-- auto-closed paragraph -->
<p style="color: red">
This is red
</p>
This should be green. But it's not.
</p> <!-- here you have syntax error -->
答案 1 :(得分:5)
你无法嵌套<p>
。如果段落的结尾标记后跟另一个段落,则可以省略该段落的结束标记。这意味着在您的代码中,第一段不包含文本,第二段包含“This is red”。然后有一些文字“这应该是绿色的。但事实并非如此。”它没有样式和关闭</p>
标记,没有开始标记。
答案 2 :(得分:1)
段落不能嵌套在另一个段落或块元素中。
当您的代码在浏览器中呈现时,它将呈现如下所示
<p style="color: green"></p>
<p style="color: red">
This is red
</p>
This should be green. But it's not.
<p></p>
所以你可以看到,最后一句没有包装,结果是默认的css颜色,即黑色正在应用。