浏览器兼容性经典问题(三) IE6 不支持min-width属性
问题描述:
min-width的使用在流式布局(fluid layout)中是非常常见的,当用户在改变窗口大小的时候,网页内容会随之移动,直到窗口的大小确定位置。这个时候,min-属性变起作用了。可以通过限制min-属性,让页面产生滚动条,进而控制网页内容的位置。
但是非常遗憾的是,在IE6中,并不支持min-属性,需要通过一些特定的办法去解决这个问题。
在chrome firefox safari 和IE7+中,这个属性已经被支持了,可以直接使用。
问题代码:
从上面的浏览器效果图中可以看到,当窗口的宽度降到了500px以下,chrome和firefox浏览器下面产生了横向的滚动条,但是IE6却没有。下面我们就针对IE6来解决这个问题。
解决方法1:
使用IE(5-7)才支持的expression()表达式,可以很简单的解决这个问题,但是这种方法是不符合W3C标准的。
实现代码1:<html> <head> <style> body{ margin:0px; padding:0px; } #box{ background:#ccc; min-width:500px; } .min-width-box{ width:500px; font-size:0px; /*为空的div设置改css属性*/ } </style> </head> <body> <div id="box"> <div class="min-width-box"></div> ---------内容-------- </div> </body></html>代码解释:
在要指定min-width的div(box)中添加一个空的div(min-width-box)。对这个空的div进行css样式设置,宽度为需要设置的min-width;即width:500px;
由于在IE6下面,<div class="min-width-box"></div>是嵌套在<div id="box"></div>下面的,所以他的高度会和“------内容------”这个的字体大小有关,为了不设置高度,把他的font-size:0px 设置为0px即可。 有一些教程上用height:1px而没有使用font-size,经过验证,他的演示效果是会改变的。
浏览器的效果图:(左边chrome 中间firefox 右边IE6)上面两种方法是实现的效果是一样的
自此便完成了这个问题的解决。
浏览器兼容性经典问题(一) IE6 下双边距问题
浏览器兼容性经典问题(二) IE6 3像素bug问题