SPAN中的H2 - 浏览器兼容吗?

时间:2012-04-26 11:27:32

标签: html css

首先,我已经看到了这个问题IE Compatibility issue,但我的问题略有不同:

我有一个display: block的范围,我想在其中添加一个H2标签。这在每个(主要)浏览器中看起来都不错吗?

上述链接的答案是制作H2 display:inline,这是我不想要的,而且我也不想将span替换为div因为我不得不改变很多CSS。

PS。我不希望我的HTML验证(使用验证器),我只是想让它工作。

3 个答案:

答案 0 :(得分:4)

当你说“我不希望我的HTML验证(使用验证器)时,我只是想让它工作。”你犯了一个很大的错误。如果HTML没有验证,则无法确定可能发生的情况。标准是有原因的。

用div替换span,你不需要div上的显示块,因为默认情况下它是这样的。 span是内联级别元素,而H2是块级别。内联元素不能包含块级元素(最多HTML5,您可以在其中包含块级元素)

这将验证,并工作

答案 1 :(得分:2)

它适用于当前的浏览器(包括旧版本),并且它不太可能发生变化。像这样的错误很常见,使浏览器供应商更改其错误恢复机制毫无意义。 HTML5即将强制执行错误恢复规则。

另一方面,将spandisplay: block一起使用而不是使用div有什么意义?应该编写CSS,使其不依赖于标记元素的特定选择,其中不同的选择可能有意义;例如,.foo是一个比span.foo更好的选择器。

对标记或样式表进行任何大量更改都会产生不可忽视的风险,即使更改是一种改进也是一种简单的改进。 (例如,全局搜索和替换通常会做太多,或者错过了某些内容。)这可能是继续使用无效标记的原因,在实践中风险最小的情况下。

答案 2 :(得分:0)

我们可以先解决IE二线问题

h2{}
h2 span{ float:right;}

所有浏览器中的正确方法

<h2><span>sub content</span>  Heading</h2>

错误的方式即浏览器

<h2>Heading<span>sub content</span></h2>