代码改变世界

关于ie中实现弹性盒模型-我的css

2013-12-23 15:46  cczw  阅读(1104)  评论(0编辑  收藏  举报

css3中的弹性盒模型大家都不陌生,但是能否在ie6中实现呢?第三方库中涉及到的页少之又少,也有一部分css框架中支持各种布局,下面给出我用的盒模型样式(为了以后copy方便而已):

/***********************************
*兼容盒模型 by awen
*使用float实现的,所以大家注意页面展现的dom排序和代码中是不一样的(float:right,你懂的)
************************************/
.shbox-item-l, .shbox-item-r {
    min-height: 1px;
    /*防止标准浏览器下没有设置高度造成布局混乱*/
    _display:inline;
    /*hack ie6 dubble margin*/
}
.shbox-item-l {
    float: left;
}
.shbox-item-r {
    float: right;
}
/*强制换行*/
.shbox-item_l, .shbox-item-r, .shbox-item-flex {
    word-wrap: break-word;
    word-break: normal;
}
/*模拟flex,一般标准的都是全部使用float,但是特殊情况可以使用flex,请注意
* 1 一个box只支持一个flex
* 2 flex中自定义margin是无效的
* 3 使用flex后,ie6下,flex左右两个float需要解决3像素bug,
* 	可以使用shbox-flex-l(对应flex左边的float),和shbox-flex-r(对应flex右边的float)两个样式;
* 	当然不是很严谨的话也可以不用。
*/
.shbox-item-flex {
    overflow:hidden;
    _height: 1%;/*for ie6 防止文档流包裹 也可以用这个:_display:inline-block;*/
}
/*
 *ie6下的flex可能会有3像素bug
*/
.shbox-flex-l {
    _margin-right:-3px;
}
.shbox-flex-r {
    _margin-left:-3px;
}

  

下面看例子,当前页面也可以再ie下看效果,也可以下载 demo :

  • shbox-item-l

  • li2
  • li3
  • li4
  • li5
  • shbox-item-r

  • li2
  • li3
  • li4
  • li5

shbox-item-r

shbox-item-flex

shbox-item-l
shbox-item-r
oooooooooooooooooooooooooooooooooo