`
hyj1254
  • 浏览: 340976 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

兼容各浏览器盒子模型

 
阅读更多
   各浏览器盒模型的组成结构是一致的,区别只是在"怪异模式"下宽度和高度的计算方式,而“标准模式”下则没有区别。组成结构以宽度为例:总宽度=marginLeft+borderLeft+paddingLeft+contentWidth+paddingRight+borderRight+marginRight。页面在“怪异模式”下,css中为元素的width和height设置的值在标准浏览器和ie系列(ie9除外)里的代表的含义是不同的。
   因而解决兼容型为题最简洁和值得推荐的方式是:下述的第一条。
一、将页面设为“标准模式”。
添加对应的dtd标识,如:
<!DOCTYPE html>

经测试,ie6/7/8/9,ff,chrome,opera均表现一致:
<!DOCTYPE html>
<html>
<head>
<style>
#box {width:100px;padding:0 10px;border:20px solid blue;margin:70px;}
</style>
<script type="text/javascript" src="../js/jquery-1.6.4.js"></script>
</head>
<body>
<div id="box">
</div>
<script>
var box = $('#box');
var boxWidth=box[0].offsetWidth;//包括补白、边框和内容宽度
alert(boxWidth+":"+box.width());//专指内容的宽度
</script>
</body>
</html>

注意:offsetWidth=borderLeft+paddingLeft+contentWidth+paddingRight+borderRight。
此时alert的值是160:100。即,各浏览器均认为css中的width就是100px即内容的宽度,和padding+border最终相加结果是:160px。
如果把doctype去掉,即进入“怪异模式”,此时,ie6/7/8的值均为100:40,证明它们认为css中width指的和offsetWidth是同一个值,除了内容的宽度外还都包含补白和边框,而内容的宽度则被压缩为40。而ie9,ff,chrome,opera这样的标准浏览器则依然是160:100。
二、使用hack或者在外面套上一层wrapper。
前提是页面处于“怪异模式”,“标准模式”不存在兼容性问题。
1、hack
   依然使用上例:假设内容的宽度必须固定为100px。
#box {
width:100px !important;
width:160px;
padding:0 10px;border:20px solid blue;margin:70px;
}

2、wrapper
#box {
width:100px;
margin:70px;
float:left;
}
.wrapper {
padding:0 10px;border:20px solid blue;
}

<div class="wrapper">
<div id="box"></div>
<div style="clear:both"></div>
</div>


    总结:使用“标准模式”即可实现兼容,不兼容只发生在“怪异模式”下。而且正常的页面基本上都选择前者,如果选择后者,麻烦不止于此,一些css技巧也将失灵,如将div居中:
div {margin:0 auto;}


查询类似问题可以访问网址http://www.quirksmode.org/css/contents.html
  
0
0
分享到:
评论

相关推荐

    IE盒子模型和标准W3C盒子模型_资料收集

    **定义**:IE盒子模型是早期Internet Explorer浏览器所使用的模型,与标准W3C盒子模型相比,IE盒子模型将边框和内边距也计算在元素的宽度和高度之内。 **组成**: - 同标准W3C盒子模型,同样包括content、padding、...

    CSS盒子模型.rar

    **CSS盒子模型详解** 在网页设计与开发中,CSS(层叠样式表)扮演着至关重要的角色,其中CSS盒子模型是理解布局和元素尺寸计算的关键概念。本资料将深入探讨CSS盒子模型,帮助你掌握这一核心知识。 **一、基本概念...

    css盒子模型

    为了避免浏览器兼容性问题,推荐始终使用标准盒子模型,可以通过`box-sizing`属性设置,`box-sizing: border-box;`表示元素按照W3C标准计算尺寸。 在实际应用中,我们可以通过以下方法来控制盒子模型: - 使用`...

    CSS盒子模型 图片演示

    为了避免浏览器之间的兼容性问题,通常推荐使用W3C标准盒模型,并可以通过`box-sizing`属性来指定盒模型的类型。例如,`box-sizing: border-box;`会让元素的width和height包含内容区、内边距和边框。 通过了解和...

    css盒子模型-京东快报

    此外,需要注意的是,不同浏览器对盒子模型的理解略有差异。IE6及更早版本采用了不同的盒子模型(称为"怪异模式"),其中元素的宽度和高度会包含内边距和边框。为了避免这种兼容性问题,可以使用`box-sizing`属性来...

    盒子模型剖析

    通过本文的学习,我们了解了盒子模型的基本概念及其组成部分,并探讨了不同类型的盒子模型以及如何解决盒模型带来的兼容性问题。理解和掌握盒子模型对于学习CSS布局至关重要,希望本文能够帮助大家打下坚实的基础。

    跨浏览器兼容CSS篇

    CSS盒子模型是实现跨浏览器兼容的关键。透彻理解这一模型可以帮助我们编写更稳定、更易于维护的CSS代码。 - **盒模型的基本组成部分**: - **Width**: 定义内容区域的宽度。 - **Padding**: 内边距,位于内容和...

    盒子模型1.doc

    - **兼容性**: 使用CSS盒子模型布局的网页通常具有更好的跨浏览器兼容性,能够适应不同设备和屏幕尺寸的显示需求。 #### 三、理解CSS盒子模型 为了更好地理解CSS盒子模型,我们可以将其与现实生活中的盒子作类比:...

    盒子模型.zip

    为了跨浏览器兼容性,开发者通常会使用`box-sizing`属性来指定元素应遵循的盒模型,`box-sizing: border-box;`使元素遵循IE盒模型,而`box-sizing: content-box;`则遵循W3C标准盒模型。 在实际应用中,理解盒子模型...

    网页里的两种盒子模型(W3C盒子模型、IE盒子模型)

    总结来说,理解W3C盒子模型和IE盒子模型对于创建响应式、跨浏览器兼容的网页至关重要。选择合适的盒子模型并正确使用`box-sizing`属性,可以帮助开发者精确控制元素的尺寸和布局,避免不必要的样式冲突。在现代网页...

    06 盒子模型.zip

    为了跨浏览器兼容,开发者通常会使用`box-sizing`属性来指定元素应该使用哪种盒子模型。`box-sizing: border-box;`使得元素的总宽度和高度包括内容、内边距和边框,而`box-sizing: content-box;`则是默认的W3C标准...

    Css盒子模型入门指导

    此外,使用CSS盒子模型进行布局可以实现代码的简洁性和可维护性,使网页在不同设备和浏览器上具有更好的兼容性,比如在PDA等移动设备上也能正常显示。 **结构与表现的分离** 在CSS布局中,另一个关键理念是结构与...

    跨浏览器兼容CSS篇整理.pdf

    本文主要聚焦于CSS的跨浏览器兼容性,特别是CSS盒子模型、块级和内联元素的区别,以及浮动和清除属性的应用。 首先,理解CSS盒子模型是实现跨浏览器兼容性的基础。盒子模型描述了元素占用空间的方式,包括元素的...

    CSS-浏览器兼容实战.pdf

    理解CSS盒子模型是解决兼容性问题的关键。CSS盒子模型包括内容(content)、填充(padding)、边框(border)和边界(margin)四部分,它决定了元素在页面上的占用空间、边界距离以及与其他元素的关系。虽然大多数浏览器都...

    Day05-CSS布局-盒子模型

    为了确保跨浏览器的一致性,可以使用`box-sizing`属性来指定元素的盒子模型类型,例如`box-sizing: border-box;`。 总的来说,“Day05-CSS布局-盒子模型”涵盖了网页设计中布局的基本概念,掌握了这些知识,开发者...

    css盒子模型图解

    IE盒子模型是在早期Internet Explorer浏览器中使用的一种盒子模型。它与标准W3C盒子模型的主要区别在于元素的总宽度和高度还包括了边框和内边距的宽度。 ##### 示例说明 使用相同的属性值,根据IE盒子模型计算该...

    css 盒子模型理解1

    CSS盒子模型是网页布局的核心,理解它对于任何前端开发者来说都是至关重要的。盒子模型由四个主要部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。内容区域是元素实际显示的数据...

    ch6 弹性盒子模型3-30

    这个"ch6 弹性盒子模型3-30"的主题可能指的是第六章中关于Flexbox的深入探讨,特别是涉及到30个关键概念或技巧的部分。在这一部分,我们将会详细解析弹性盒子模型的核心知识点。 首先,弹性盒子模型的主要目标是...

    IE6盒子模型没问题 详测双倍边距

    总的来说,理解和处理IE6的盒子模型及其相关问题对于兼容性良好的网页设计至关重要。虽然现在IE6的使用率已经大大降低,但在一些特定的环境中,比如企业内部系统,仍然可能存在对IE6的支持需求。因此,开发者需要...

    IE盒子模型和标准W3C盒子模型

    在没有DOCTYPE声明的页面中,IE浏览器会返回`true`,表示使用的是IE盒子模型,而其他浏览器返回`false`,表示使用标准W3C盒子模型。当DOCTYPE声明存在时,所有现代浏览器都会返回`true`,表明它们遵循标准W3C盒子...

Global site tag (gtag.js) - Google Analytics