验证网站是否保证在所有浏览器中看起来都是正确的?

时间:2013-04-30 21:47:55

标签: html css

我听说只要页面有效,它就会始终在浏览器中正确显示。我觉得很难相信,因为我知道填充,例如,不同的浏览器处理不同。因此,即使页面验证正确,一个浏览器可能无法正确显示它?

一个基本的例子是填充。 IE6不是以不同的方式处理填充,因此是Internet Explorer特定样式表的原因吗?如果是这样,有没有办法100%确定网站在所有浏览器中看起来都一样?

更新

我很确定它无法100%获得成功。但有一个例子我可以用来证明这一点吗?正如我所提到的,我认为填充的处理方式不同,但是如何处理?

3 个答案:

答案 0 :(得分:3)

不,这并不意味着您的网站在所有浏览器中看起来都一样,这意味着您已遵守标准。而 if - 只有如果 - 所有浏览器都严格按照标准实施所有标准,那么您的网站在所有浏览器中看起来都会完全相同。实际情况是,并非所有浏览器都始终完全遵守所有标准。因此,这并不意味着您的网站在所有浏览器中看起来都一样。

新版本的浏览器越来越多地遵循标准,因此它们处于正确的轨道上,但尤其是旧版本的浏览器,更具体地说,微软的旧版浏览器并没有真正遵守标准。

答案 1 :(得分:0)

验证和跨浏览器兼容性是两个完全不同的东西。 今天,由于没有IE6,大多数没有IE7,大多数浏览器已经表现得相似。

IE6和7可以决定在几种情况下以保证金折叠填充。

有超过20种hasLayout边距填充和子父级的组合导致IE7崩溃填充,这是它永远不应该的。

有一些技巧,但验证HTML肯定不是其中之一。

你可能意味着Quirksmode。

在quirksmode中的IE有oldschool盒子模型,它计算实际宽度=定义的宽度,墨水填充和边框。标准行为将是实际宽度=定义的宽度+填充+边界。

因此,如果您使用正确的doctype,IE 6和7将为宽度添加填充,如果您不使用doctype,IE6和7将使用旧的学校框模型表现得像IE5。

但是,您只需要声明doctype,它不需要验证。

证明验证无效:

<div style="float:left; margin-right:5px;">Double margin bug example in IE 6</div>
<div style="float:left;">Double margin bug example in IE 6</div>

这段代码是完全合法的,并且会验证,但它会触发IE6臭名昭着的双边距错误,并且浏览器的外观也不同。

还有成千上万的其他例子,就像这个(我实际上不是在开玩笑)

答案 2 :(得分:0)

没有。 Validation is a formal thing并且不保证甚至不符合规范,更不要“看起来相同”,这甚至不是规范要求或推荐的。

(“HTML5验证”部分不同,即对可变草案或“生活标准”的某些未知版本进行无证检查。但肯定不能保证“看起来相同”之类的东西。)