css 盒模型 hasLayout position float

本文详细解释了IE为解析盒模型而设计的hasLayout属性,以及如何在IE6/7中通过设置inline-block来触发hasLayout,实现行内元素的块级样式效果。同时介绍了如何通过zoom:1或专门的CSS代码解决兼容性问题,并讨论了position、display、float等布局属性在IE浏览器中的行为差异。

hasLayout是IE为解析盒模型而设计的一个专有属性,它的设计初衷是用于块级元素的,如果触发行内元素的hasLayout,就会让行内元素拥有一些块级元素的特性。

display:inline-block  有width,height,margin,padding  却不独占一行,很好

但IE6,7不支持inline-block,inline-block只能触发IE6,7下行内元素的hasLayout

即:IE6,7下,设置inline-block的块级元素:白设

                                            行内元素:可设width,height...  效果同zoom:1

例:abcde<span>12345</span>  span{display:inline-block;height:30px;width:100px;background:#ccc;}

ie6/7

ie8/ff

为兼容顶对齐:span{*vertical-align:-10px;_vertical-align:-10px;} 值根据需要自己设

img button很超然,可设长宽但却不独占一行

*****************************************************************************************************************************

position:relative absolute都可以激活left top rigth bottom 和 z-index属性

文档流:元素根据自己的display类型、长宽、内外边距等属性顺序排列在z-index:0这一层里。

relative absolute都会让元素浮起来,z-index>0

relative 会保留自己在z-index:0层的点位,left top ... 都是相对自己原有的位置

absolute 不保留自己原来位置,left top ... 是相对于距自己最近的一个设置了relative或absolute的祖先元素的位置偏移。找不到祖宗就找body

float仍然让元素在z-index:0层流动,会改变正常的文档流,影响周围元素。

relative 不会改变元素display类型;absolute和float会让元素以inline-block方式显示。再显示地设置display为inline/block也无效。

{float:left; display:inline}可解决IE6双边距问题

 

转载于:https://www.cnblogs.com/frostbelt/archive/2012/03/10/2388731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值