网页设计之DIV最大宽度和最小宽度解决办法
发布日期:2012-10-31

  在制作网页中,我们经常会碰到min/max-width,min/max-height 在IE6底下是无效的,这也是web设计师最头疼的问题之一,以下的方法可以解决这些难题,并且比较简约。
  <div style="max-width:250px;">这段文字内容,max /min 在ie7 + 和firfox,safari,opera浏览器下均支持,最宽值为250px</div>不过IE6无法认读这个属性,还好IE它支持自己 javascript的属性表达,例如:
 div{width:expression_r_r(250+"px")}  和  div{widt:250px}在IE 的认读中都是一致的!但如果有的用户在浏览器中禁用javascript,这个写法就失败了。所以,需要换一种方法:
 #mycss {
width:100%;
 max-width:500px;
 width:expression_r_r(document.body.clientWidth > 500? "500px": "auto" ); }
 或是:
 #mycss {
 max-width: 33em;
 width: expression_r_r(document.body.clientWidth > (500/12) *parseInt(document.body.currentStyle.fontSize) ? "33em" : "auto" );
}
我们设置了容器mycss的宽度为:width:100%; 其实这是一句废话,因为 DIV是块元素,默认的宽度就是父级元素的宽度。此例中div宽度,若不进行声明则等同于body的宽度。
 我们设置容器的max-width为500px。这对于FF来说是有效的。而对于IE则没有作用。
面对没有效果的IE,我们应用expression_r_r嵌入脚本,声明了当宽度大于 500px的时候,宽度就等于500px。
 parseInt(document.body.currentStyle.fontSize)?"33em":"auto" 如果这个实际宽度大于 (500/12)当前字体的尺寸,则设置页面的宽度为 33em。
 同样,对于最小的宽度,和ax/min-hight,也是一样的:
 最小:
 #mycss {
 min-width: 333px;
  width: expression_r_r( document.body.clientWidth < 334 ? "333px" : "auto" );
 }
 最大高度:
#mycss {
max-height: 333px;
 height: expression_r_r( this.scrollHeight > 332 ? "333px" : "auto" )
}
 最小高度:
#mycss {
  min-height: 333px;
 height: expression_r_r( this.scrollHeight < 334 ? "333px" : "auto" );
}
另外还有一种简单的方法:
#a {height:auto !important; min-height:400px;}
这个样式可以在IE5.5,IE6,IE7以及FF,Safari等浏览器下的解决最小高度问题。


上一篇:网页设计之css兼容IE6,IE7,firefox最好的hack写法解决方案  下一篇:网页设计之CSS布局:DIV宽度自适应

  
分享 |