在CSS中使用更改的显示属性表示内容

Ser*_*sov 5 html css html5 specifications

<button>规范部分中,我们看到允许的内容仅是Phrasing内容.它是有效的HTML代码部分(在此处选中):

<button>
    <span></span>
</button>
Run Code Online (Sandbox Code Playgroud)

这不是有效的HTML代码部分(在此处选中):

<button>
    <div></div>
</button>
Run Code Online (Sandbox Code Playgroud)

错误:在此上下文中,元素div不允许作为元素按钮的子元素.(抑制此子树中的更多错误.)

但我们可以改变以下的display属性<span>:

<button>
    <span style="display: block"></span>
</button>
Run Code Online (Sandbox Code Playgroud)

看起来我们使用的是<div>a <span>,但HTML是有效的.(通过规范)是否可以使用允许的内容元素并更改其display属性?

Pmp*_*mpr 3

即使您使用跨度样式,display: block仍然无法将块级元素放入其中:

<div><p>correct</p></div>
<span style="display: block;"><p>wrong</p></span>
Run Code Online (Sandbox Code Playgroud)

无论 CSS 如何改变,(X)HTML 仍然必须遵守 (X)HTML DTD(无论您使用哪一个)。

所以它们是不同的,因此这里没有任何问题。