我目前面临一个奇怪的不一致问题,在我的页面之间是在古怪模式和非古怪模式(即IE9模式)。在我的CSS中,我将一个div标记设置为具有宽度:100%,但是当我将其放在两个不同的页面上时,相同的div标记的行为是不同的。在非奇异模式下,div标记的跨度将略长于div标记处于古怪模式时。当CSS完全相同的时候,我真的很难弄清楚为什么会有这种不一致。有人知道这个线索吗?
发布于 2014-06-17 18:03:21
前怪癖模式
在CSS 1和2中,W3C要求width
和height
只描述元素的“内容”的维度,而不考虑元素的填充、边框和边距,这些内容将在这些维度周围扩展。
然而,Internet,从版本4到5.x,通过考虑填充和边框作为width
和“身高”的一部分,所做的事情有所不同:
上面的插图来自一个关于这个主题的伟大维基百科文章。
怪癖模式
Internet 6通过遵循W3C的规范修复了这个错误,但是改变这种行为会破坏许多依赖于这个错误的网站的外观,因此引入了古怪模式来模拟旧版本的行为,如果怀疑旧页的话。
这就是为什么奇异模式可以使相同的页面看起来不同,即使CSS是完全相同的,正如您所描述的:它导致元素的大小不同,以便模仿旧的浏览器。这种不一致是有意和预期的。微软已经在一页上详细介绍了Internet 9中古怪模式的影响。
CSS3
在CSS3中,W3C引入了一个名为box-sizing
和允许指定此行为。的属性。这实际上与古怪模式无关(因为古怪模式忽略了CSS3),但我认为它可能值得一提,因为它与盒子模型有关。
该怎么办呢?
我建议的是避免怪癖模式。由于它带来的复杂性和它的非标准行为(既不符合标准,又对不同的浏览器意味着不同的东西),它可能会为您节省大量的工作,使您的所有页面在相同的规则下显示。
下面是有关Internet Explorer旧版本的模拟以及如何设置它的更多信息:
https://stackoverflow.com/questions/24269688
复制相似问题