HTML块级元素和CSS的display:block属性有什么区别?

5

请问HTML块级元素(例如<p><div>等)和CSS属性display:block之间是否有任何区别?

从我所阅读的内容来看,它们是相同的,但为什么我们仍然需要对某些块级元素使用display:block呢?


https://developer.mozilla.org/en/docs/Web/HTML/Block-level_elements - G.L.P
7
一样的。块元素之所以是块状的,是因为它们默认具有“display: block”样式。没有别的。我们可以说具有“display: block”的<span>与<div>是相同的(两者都没有任何语义价值)。 - pavel
http://dustwell.com/div-span-inline-block.html - G.L.P
2
你从一个错误的断言开始了。我们不需要在块级元素上使用display:block除非该属性在之前被更改后被还原到该状态。 - Paulie_D
2个回答

4
您所称的“HTML块级元素”是指其显示属性设置为block的元素,因此<div><span>在使用display:block;时没有区别。
这个显示属性是由用户代理样式表(即您的浏览器)设置的。您可以在Chrome开发工具中查看这些属性,位于“用户代理样式表”下。
我认为使用display:block;来定义div元素的唯一原因是:
  • 您的目标受众正在使用某些不遵循Web标准的模糊用户代理(极不可能)
  • 您需要覆盖先前的CSS声明,例如display:none;

1
因为块级元素已经有默认的CSS属性"display: block",所以在这种情况下没有区别。但是当我们使用"display: none"隐藏/删除它们时,我们再次使用"display: block"来显示它们。请注意保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接