懂视1
懂视101
懂视201
懂视301
懂视401
懂视501
懂视601
懂视701
懂视801
懂视901
懂视1001
懂视1101
懂视1201
懂视1301
懂视1401
懂视1501
懂视1601
懂视1701
懂视1801
懂视1901
文库1
文库101
文库201
文库301
文库401
文库501
文库601
文库701
文库801
文库901
文库1001
文库1101
文库1201
文库1301
文库1401
文库1501
文库1601
文库1701
文库1801
文库1901
步遥情感网
全部频道
首页
科技
教育
生活
旅游
时尚
美容
美食
健康
体育
游戏
汽车
家电
您的当前位置:
首页
IE6实现min-width
IE6实现min-width
来源:步遥情感网
首先我们知道这个效果应该是一个老话题了。
今天整理文件的时候,发现自己以前的一些布局的解决方法躺在文件夹里很长时间了,翻翻老底吧
需要说明的是有幸也见到过CSSPLAY的老工程师站长对这个效果的实现,而且肯定是很早就给出来了。
闲话少说,上源码:
触发并利用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实现演示:
运行代码框
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>CSS实现最小宽度</title> <style type="text/css"> body{ text-align:center;} .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> </head> <body> <div class="ie6-out"> <div class="ie6-in"> <div id="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div> </div> </div> <input name="" type="button" onclick="alert('容器宽度=' document.getElementById('min-width').clientWidth 'px' '\n\n' '视口宽度=' (document.documentElement.clientWidth||document.body.clientWidth) 'px');" value="查看宽度" /> </body> </html>
[Ctrl A 全部选择 提示:你可先修改部分代码,再按运行]
扩展演示:
运行代码框
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>CSS实现最小宽度</title> <style type="text/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; } </style> </head> <body> <div class="ie6-out"> <div class="ie6-in"> aa </div> </div> <div class="ie6-out"> <div class="ie6-in"> aa<div id="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div> </div> </div> <input name="" type="button" onclick="alert('容器宽度=' document.getElementById('min-width').clientWidth 'px' '\n\n' '视口宽度=' (document.documentElement.clientWidth||document.body.clientWidth) 'px');" value="查看宽度" /> </body> </html>
[Ctrl A 全部选择 提示:你可先修改部分代码,再按运行]
CSS Expression
——相信许多人在用这个方法实现容器最小宽度时都时常会被莫名其妙的死机所困扰,最后往往无果而终。
这里特别需要指出的是两点:
1. IE6-的标准模式下和quirk模式下代表视口的元素是不一样的,前者为<html>,后者则为<body>;
2. IE6-在以上两种不同的模式下,其对包含内容溢出时的不同表现形式,从而导致了赋值判断上的死循环。解释起来有些啰嗦,自己实践一下吧。
CSS Expression实现最小宽度源码: <style type="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>
<div id="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div>
演示:
运行代码框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>CSS Expression实现最小宽度</title> <style type="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; _zoom: /* 触发layout才能查看clientWidth,可省略掉 */ } </style> </head> <body> <div id="min-width">ie6-下,容器实现模拟min-width效果。请任意改变浏览器窗口大小,再点击按钮“查看宽度”。</div> <input name="" type="button" onClick="alert('容器宽度=' document.getElementById('min-width').clientWidth 'px' '\n\n' '视口宽度=' (document.documentElement.clientWidth||document.body.clientWidth) 'px');" value="查看宽度" /> </body> </html>
[Ctrl A 全部选择 提示:你可先修改部分代码,再按运行]
以上两种解决方法在IE6-的标准模式下和quirk模式下都可实现,IE Expression在这个应用中也未发现CPU效率问题。
显示全文