18

<div>s 有一个块显示模型。

<span>s 有一个内联显示模型。

是否有没有任何呈现目的的元素,其唯一目标是对其他元素进行分组?

4

5 回答 5

14

不可以。每个元素都必须有一个display属性值。CSS 不允许空值的可能性。

<div><span>是通用分组元素,并且有许多非通用分组元素。您只需为上下文选择正确的一个(这取决于所涉及的标记和语义,而不是 的默认值display)。

于 2012-05-22T14:57:57.040 回答
8

好吧 - 至少使用 CSS3 你可以更好地控制它,例如在你的 div 中

style="all:unset;"

这可以用于与重置样式表相同的效果。

于 2014-02-19T10:59:48.550 回答
4

div并且span没有语义意义;它们完全是为了对元素进行分组而制作的。

于 2012-05-22T14:57:49.823 回答
3

不,没有用于对任何类型的视觉元素进行分组的元素。

您可以使用<thead>和元素对表格中的<tfoot>元素<tbody>进行分组。<tr>

于 2012-05-22T15:03:44.253 回答
1

虽然<div><span>元素以及诸如<article>, <aside>, <footer>, <header>, <main>,<nav>等较新的语义元素<section>实现了分组的目的,但它们都带有默认的用户代理样式。

尽管可以根据需要覆盖这些样式,但 DOM 树本身内的元素嵌套可能会产生不良影响。例如,在display: flex;父元素上使用时,其直接子元素 ( >) 的渲染会受此影响。

新的 CSSdisplay: contents;属性值旨在解决此问题:

display: contents 使元素的子元素看起来好像是元素父元素的直接子元素,忽略元素本身。当使用 CSS 网格或类似布局技术时应该忽略包装元素时,这可能很有用。

然而,到 2020 年底,浏览器的支持并没有人们希望的那么好:

https://caniuse.com/css-display-contents

可以在规范中找到有关实现应如何详细工作的更多详细信息:

https://drafts.c​​sswg.org/css-display/#valdef-display-contents

于 2020-11-22T09:35:25.817 回答