在IE6-的标准模式下和quirk模式下实现min-width

时间:2021-05-19

源码:

触发并利用IE6-layout的怪异特性,css实现:
复制代码 代码如下:
<style type="text/css">

.ie6-out{
_margin-left:900px;
_zoom:1;
}
.ie6-in{
_position:relative;
_float:left;
_margin-left:-900px;
}
#min-width{
min-width:900px;
background:#ccc;
line-height:200px;
_zoom:1;
}
</style>

<div class="ie6-out">
<div class="ie6-in">
<div id="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div>
</div>
</div>



css实现演示:

运行代码框
CSS实现最小宽度 body{ text-align:center;} .ie6-out{ _margin-left:900px; _zoom:1; } .ie6-in{ _position:relative; _float:left; _margin-left:-900px; background:#f00; line-height:200px; } #min-width{ min-width:900px; background:#ccc; _zoom:1; } aa aaie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮"查看宽度"。 [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
CSSExpression
——相信许多人在用这个方法实现容器最小宽度时都时常会被莫名其妙的死机所困扰,最后往往无果而终。

这里特别需要指出的是两点:
1.IE6-的标准模式下和quirk模式下代表视口的元素是不一样的,前者为<html>,后者则为<body>;
2.IE6-在以上两种不同的模式下,其对包含内容溢出时的不同表现形式,从而导致了赋值判断上的死循环。解释起来有些啰嗦,自己实践一下吧。

CSSExpression实现最小宽度源码:
复制代码 代码如下:
<styletype="text/css">
body{text-align:center;}
#min-width{
min-width:900px;
_width:expression((document.documentElement.clientWidth||document.body.clientWidth)<900?"900px":"");
line-height:200px;
background:#ccc;
}
</style>
<divid="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div>

演示:
CSS Expression实现最小宽度 body{ text-align:center;} #min-width{ min-width:900px; _width:expression((document.documentElement.clientWidth||document.body.clientWidth)<900?"900px":""); line-height:200px; background:#ccc; _zoom: } ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮"查看宽度"。 [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
以上两种解决方法在IE6-的标准模式下和quirk模式下都可实现,IEExpression在这个应用中也未发现CPU效率问题。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章