Layout <;span>;标签

Layout <;span>;标签,layout,html,Layout,Html,我正在考虑使用标记将一组任意元素组合在一起,但我不希望它对文档的结构产生任何视觉影响 我想在以后使用JavaScript以某种方式使用该标记操纵其中的元素集,例如检测鼠标是否进入或离开该区域,等等 我的问题是,在某些情况下,span标记的存在是否会中断文档流,使文档中的元素或其周围的元素的行为与不存在span标记时的行为不同 当然,我知道DOM上存在额外的节点可能会破坏一些不需要跨度的CSS选择器,我还知道对跨度进行样式设置可能会导致布局发生变化(例如,如果添加边框,可能会导致元素换行,等等)。

我正在考虑使用
标记将一组任意元素组合在一起,但我不希望它对文档的结构产生任何视觉影响

我想在以后使用JavaScript以某种方式使用该标记操纵其中的元素集,例如检测鼠标是否进入或离开该区域,等等

我的问题是,在某些情况下,span标记的存在是否会中断文档流,使文档中的元素或其周围的元素的行为与不存在span标记时的行为不同

当然,我知道DOM上存在额外的节点可能会破坏一些不需要跨度的CSS选择器,我还知道对跨度进行样式设置可能会导致布局发生变化(例如,如果添加边框,可能会导致元素换行,等等)。但除此之外,span标记是中性的吗?如果不是,我应该如何着手计算在哪些情况下不是

提前谢谢

--编辑--

我倾向于忘记将块级元素放在像span这样的内联元素中是错误的,所以我不能使用span按照我想要的方式包装所有内容

所以,如果我正在分组的一个或多个元素是块级别的,我应该使用div来代替吗

元素本身并不意味着什么,但与全局属性(例如class、lang或dir)一起使用时会很有用。它代表它的孩子

元素被定义为内联(文本级)元素。否则,它在语义上是空的,与布局无关


根据HTML语法,
元素不能包含块元素,例如
。如果您违反了这一点,就没有浏览器应该禁止的规范。当您可以使用
元素时,使用它听起来毫无意义。它被定义为块元素,这意味着在渲染时,默认情况下,它从新行开始,任何内容从新行开始(但此行为不会生成空行)。否则,它在语义上是空的,布局是中性的。

我尝试用跨距包装块元素,以查看是否有视觉变化,但没有看到变化,但我可能只是运气好(或者应该说运气不好?)。所以我想问一下,从定义上看,它是否与布局无关,或者这只是我的印象。我们能看到代码plz吗?嗯,我并没有真正编写代码,我使用web inspector在StackOverflow中的东西周围添加了span标记,比如右边的广告。我对实际情况不感兴趣,而对跨度元素的标准定义感兴趣。我应该在发帖前看一下官方文件;我现在就做。我看到了,但结果证明用它包装块级元素是错误的。我认为,当块级元素在子元素中时,正确的做法是使用div。好的,这取决于您从一开始想要做什么。如果你不想分解包装
的文本,那么阅读你的问题a
就不是一个好办法。如果不浮动它,它将打断插入的任何行,或者将它设置为(正确的)显示:内联块。到那时,它就把所有的目标都消除了。但是,如果您确实希望一个元素以块的形式出现,请务必使用
,因为它也是一个类似
的“无意义”标记。此外,w3c说,“通常,内联元素可能只包含数据和其他内联元素。”()。所以他们并没有说你不能使用它。“奖杯”是你的(:我经过深思熟虑后得出了同样的结论。如果我发现一个情况,即div和span都不能以布局中立的方式使用,我会回到这个问题并更新它。谢谢!