<div> 嵌套在 <p> 中

Ser*_*rid 5 html tags

在学习网络开发时,我遇到了一个问题。这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
    p
    {
        background: blue;
    }

    .primary
    {
        color: red;
    }
    </style>
</head>
<body>
    <p>
        text1
        <div class="primary">
            text
        </div>
        text2
    </p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,浏览器会转换<p><p>text</p>相同</p>的内容。因此,我得到的不是<div>嵌套在<p>(我实际上在源代码中编写的内容!)中:

...
<body>
<p>
text1
</p>
<div class="primary">
    text
</div>
text2
<p></p>
</body>
...
Run Code Online (Sandbox Code Playgroud)

我认为发生这种情况是因为<p>它既可以是空元素(如<br>),也可以是非空元素(如<div>)。您能向我解释一下问题并给出解决方案吗?谢谢。

小智 8

标签<div>就像<p>是一个块级元素,这意味着它被设计为包含它自己的块,周围有换行符。尝试在<div>a 的内部嵌套<p>不太可能达到您想要的效果,因为它没有多大意义。A<p>是一个段落,它不应包含任何块级元素。这个问题可能与以下问题相关:

/sf/ask/300402721/

尝试使用<span>它,因为<span>是一个内联元素,它被设计为显示在段落内部。如果您确实需要多个块级元素,请考虑<p>根本不使用there,或者将它们用作最内部的块级元素而不是外部元素。