时间:2021-05-08
首先我们知道这个效果应该是一个老话题了。
今天整理文件的时候,发现自己以前的一些布局的解决方法躺在文件夹里很长时间了,翻翻老底吧
需要说明的是有幸也见到过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: }</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效率问题。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这么好的语法,偏偏IE6不支持,不过说不支持也不准确,事实上IE6本身在指定height与width的值时,就具有min-width和min-height的特性
以下是IE7中新支持的属性:min-height,max-height,min-width,max-width这个hack还可以使最大高度兼容IE6,你可以举一
CSS设置页面最大最小宽度兼容ie6/7/8/9,FF,chrome,sogou等浏览器设置最小宽度div{width:100%;min-width:1000p
很多时候,我们会想要设置容器的最小宽度或最大宽度,但IE6不支持min-width、max-width属性怎么办?别着急,跟着我慢慢来,会让你捉急的还很多呢首先
在table中设置min-width和max-width属性12table{min-width:60%;min-width:100%;}但是chrome不兼容m