转载:牛魔王的世界观 »谈谈ie6不支持min-height与max-height的解决方法
转载网址:http://www.niumowang.org/html-css/ie6-min-height/
手里的项目还在继续,今天正好遇到了min-height的问题,干脆在这里记录下来。我是喜欢联想的人,所以在这里又倒腾出了ie6支持max-height,以及ie6同时支持min-height与max-height的方法。(注:本文主要介绍css写法,其他的用js或者jquery的方法就很多了)
如何让ie6支持min-height
如果只是让ie6支持min-height倒也比较简单。一些朋友看过代码就能明白,主要是css hack方法,利用ie6支持或者不支持的符号来完成任务。
方法一:
<style type="text/css">
.show{background:#ccc;min-height:100px;_height:100px;}
</style>
<div class="show">牛魔王的世界观测试御用文字!</div>
方法二:
<style type="text/css">
.show{background:#ccc;height:auto!important;height:100px;min-height:100px; }
</style>
<div>牛魔王的世界观测试御用文字!</div>
方法三:(不推荐)
<style type="text/css">
.show{background:#ccc;min-height:100px;_height:expression(this.scrollHeight < 100 ? "100px" : "auto");}
</style>
<div>牛魔王的世界观测试御用文字!</div>
上面前两种方法原理都是一样的,让div块在ie6下高度固定为100px。第三种方法利用到了ie6的expression行为(主要是将css与js表达式结合起来),我是极力不推荐这种写法,expression会占用大量浏览器资源。我也曾经遇到过使用了expression导致页面很卡的现象。
如何让ie6支持max-height
一般max-height在实际应用中用到的比较少。在实战方面主要结合overflow来使用。如果让ie6支持max-height的方法同上面原理相同,加“_height:高度;”。由于浏览器会自动把超出部分的内容显示出来,所以这里如果想要达到超出部分隐藏的话可以加上“overflow:hidden;”,或者超出部分显示滚动条“overflow:auto;”
如果让ie6同时实现min-height与max-height
让ie6既支持min-height又实现max-height怎么办呢,你可能会说总不能写两个“height”吧。呵呵,是的即使写两个height浏览器也只会解析一个。
下面我结合一个案例来说明这个问题:
要求:用div+css实现,div容器内有多行内容,现在要求实现当高度小于100px的时候该容器最小高度为100px,当大于200px的时候显示下拉条。
看到这个要求有些朋友不免头大,这个东西怎么不太好实现吧。你可能会想到我前面说过的expression,在css里面计算该容器的高度。
是的,这样能够达到我们的要求。代码部分如下
overflow:auto;/*超出部分显示滚动条*/
_height: expression(
this.scrollHeight < 100 ? "100px" :
(this.scrollHeight > 200 ? "200px" : "auto");
不过按照惯例这不是高潮,呵呵,因为我上面已经说过我是极力不推崇这种方式的。既然刚才不是高潮那么我肯定会有自己的主张。具体怎么办呢?
可能是我上面说的有些误导了大家的思维,其实实现这种方式的写法比较是比较简单的。我们不一定非要采用max-height这个css样式来完成啊。我上面说的只是ie6实现它。废话不多说,看代码
<style type="text/css">
.contain{height:200px;overflow:auto;background:#eee;}
.post{_height:100px;min-height:100px;background:#ccc;}
</style>
<div class="contain">
<div class="post">
牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>牛魔王的世界观御用测试文字!<br/>
</div>
</div>
呵呵,看到这里是否有种顿悟或者被骗的感觉呢?方法其实很简单就是添加了一个外容器,根本没有用到max-height属性。ok,说完了。不多说,主要是告诫自己以及从事此行的朋友,实现一个效果方法有很多种,很多的思路。有时候换一个角度,你会发现更精彩的部分。
转载:牛魔王的世界观 »谈谈ie6不支持min-height与max-height的解决方法的更多相关文章
- 细数IE6的一串串的恼人bug,附加解决方法!
1. li在IE中底部3像素的BUG 解决方案:在<li>上加float:left:即可解决 2. IE6中奇数宽高的BUG. 解决方案:就是将外部相对定位的div宽度改成偶数.高度也是一 ...
- sass文件转css时注释虽然支持中文,但是出现乱码的解决方法
sass文件转css时注释虽然支持中文,但是出现乱码的解决方法 Scss 注释中文报错问题(windows系统, 已解决)找到ruby的安装目录,里面也有sass模块,类似这样样的路径:F:\Prog ...
- 转载:“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
转载来自:http://www.cnblogs.com/A-Song/archive/2012/03/23/2413782.html 问题描述如下: 有 三个源文件,A.h.B.cpp.C.cpp. ...
- Android spinner默认样式不支持换行和修改字体样式的解决方法
在spinner中显示的数据过多,需要换行,而Android自身提供的android.R.layout.simple_spinner_dropdown_item样式不支持换行,因此参考android提 ...
- “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法
百思不得其解,最后发现 1:实体中的表必须有主键(数据库中的表必须有主键),如果没有,会有这样的提示 2:主键设置好后,运行还是会出现类似问题,那就一个郁闷 1):方法一:先从EF中删除刚设置主键的模 ...
- php5.3 不支持 session_register() 此函数已启用的解决方法
php从5.2.x升级到5.3.2.出来问题了.有些原来能用的程序报错了,Deprecated: Function session_register() is deprecated php从5.2.x ...
- IE6/IE7/IE8下float:right的异常及其解决方法
1.最简单的方法就是调换顺序,将需要右浮动的元素写在前面.写成这样:<h2><a href="#">更多>></a>小标题</ ...
- 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...
- [转载]VS2005的工程用VS2010打开后,用VS2005不能打开的解决方法
首先,在“项目”菜单里,把项目属性“目标平台”改为框架2.0,保存退出. 然后,用记事本或用编辑文本文件的方式打开你的项目文件,后缀为.sln 第一行:把“Microsoft Visual Studi ...
随机推荐
- 算法导论之python实现插入排序
插入排序的花费时间 c*n2, c 是常数 伪代码 INSERTION-SORT(A) for i to A.length key = A[j] //Insert A[j] into the sor ...
- Android高清巨图加载方案
1.今天看了鸿洋的<Android高清巨图加载方案>一文,对加载高清巨图时的解决方案有了一定的认识. 思路为: 提供一个设置图片的入口. 重写onTouchEvent,在里面根据用户移动的 ...
- C语言初学 计算二元一次方程的问题
#include<stdio.h> #include<math.h> int main() { double a,b,c,disc,x1,x2; scanf("%lf ...
- Jetty开发(2)
部署web应用 配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用.在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则: exa ...
- Codeforces 219D Choosing Capital for Treeland
http://codeforces.com/problemset/problem/219/D 题目大意: 给出一棵树,但是它的边是有向边,选择一个城市,问最少调整多少条边的方向能使一个选中城市可以到达 ...
- emacs vim IDE
原本想花点时间来学习下Vim或者emacs,结果在网上搜索到这篇文章 骂战挺多的,但是也长见识 http://bbs.csdn.net/topics/390306165 下面是windows下的ema ...
- Android Map新用法:MapFragment应用
MapView ,MapActivity 这种的局限在于,必须要继承MapActivity,否则无法使用MapView,但是,MapFragment 这种的局限在于,必须要安装Google Play ...
- Spring注解 @Resource和@Autowired
@Resource和@Autowired两者都是做bean的注入使用.其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spri ...
- logstash ArgumentError: comparison of String with 5 failed
<pre name="code" class="html"><pre name="code" class="ht ...
- leetcode:Multiply Strings(字符串的乘法)【面试算法题】
题目: Given two numbers represented as strings, return multiplication of the numbers as a string. Note ...