让IE6支持min-width和max-width的方法

说明:让 IE6 及其以下版本支持 CSS 中 min/max-width/height 属性


代码如下:

@if (@_win32 && @_jscript_version>4)
var minmax_elements;
minmax_props= new Array(
new Array('min-width', 'minWidth'),
new Array('max-width', 'maxWidth'),
new Array('min-height','minHeight'),
new Array('max-height','maxHeight')
);
// Binding. Called on all new elements. If <body>, initialise; check all
// elements for minmax properties
function minmax_bind(el) {
var i, em, ms;
var st= el.style, cs= el.currentStyle;
if (minmax_elements==window.undefined) {
// initialise when body element has turned up, but only on IE
if (!document.body || !document.body.currentStyle) return;
minmax_elements= new Array();
window.attachEvent('onresize', minmax_delayout);
// make font size listener
em= document.createElement('div');
em.setAttribute('id', 'minmax_em');
em.style.position= 'absolute'; em.style.visibility= 'hidden';
em.style.fontSize= 'xx-large'; em.style.height= '5em';
em.style.top='-5em'; em.style.left= '0';
if (em.style.setExpression) {
em.style.setExpression('width', 'minmax_checkFont()');
document.body.insertBefore(em, document.body.firstChild);
}
}
// transform hyphenated properties the browser has not caught to camelCase
for (i= minmax_props.length; i-->0;)
if (cs[minmax_props[i][0]])
st[minmax_props[i][1]]= cs[minmax_props[i][0]];
// add element with properties to list, store optimal size values
for (i= minmax_props.length; i-->0;) {
ms= cs[minmax_props[i][1]];
if (ms && ms!='auto' && ms!='none' && ms!='0' && ms!='') {
st.minmaxWidth= cs.width; st.minmaxHeight= cs.height;
minmax_elements[minmax_elements.length]= el;
// will need a layout later
minmax_delayout();
break;
} }
}
// check for font size changes
var minmax_fontsize= 0;
function minmax_checkFont() {
var fs= document.getElementById('minmax_em').offsetHeight;
if (minmax_fontsize!=fs && minmax_fontsize!=0)
minmax_delayout();
minmax_fontsize= fs;
return '5em';
}
// Layout. Called after window and font size-change. Go through elements we
// picked out earlier and set their size to the minimum, maximum and optimum,
// choosing whichever is appropriate
// Request re-layout at next available moment
var minmax_delaying= false;
function minmax_delayout() {
if (minmax_delaying) return;
minmax_delaying= true;
window.setTimeout(minmax_layout, 0);
}
function minmax_stopdelaying() {
minmax_delaying= false;
}
function minmax_layout() {
window.setTimeout(minmax_stopdelaying, 100);
var i, el, st, cs, optimal, inrange;
for (i= minmax_elements.length; i-->0;) {
el= minmax_elements[i]; st= el.style; cs= el.currentStyle;
// horizontal size bounding
st.width= st.minmaxWidth; optimal= el.offsetWidth;
inrange= true;
if (inrange && cs.minWidth && cs.minWidth!='0' && cs.minWidth!='auto' && cs.minWidth!='') {
st.width= cs.minWidth;
inrange= (el.offsetWidth<optimal);
}
if (inrange && cs.maxWidth && cs.maxWidth!='none' && cs.maxWidth!='auto' && cs.maxWidth!='') {
st.width= cs.maxWidth;
inrange= (el.offsetWidth>optimal);
}
if (inrange) st.width= st.minmaxWidth;
// vertical size bounding
st.height= st.minmaxHeight; optimal= el.offsetHeight;
inrange= true;
if (inrange && cs.minHeight && cs.minHeight!='0' && cs.minHeight!='auto' && cs.minHeight!='') {
st.height= cs.minHeight;
inrange= (el.offsetHeight<optimal);
}
if (inrange && cs.maxHeight && cs.maxHeight!='none' && cs.maxHeight!='auto' && cs.maxHeight!='') {
st.height= cs.maxHeight;
inrange= (el.offsetHeight>optimal);
}
if (inrange) st.height= st.minmaxHeight;
}
}
// Scanning. Check document every so often until it has finished loading. Do
// nothing until <body> arrives, then call main init. Pass any new elements
// found on each scan to be bound
var minmax_SCANDELAY= 500;
function minmax_scan() {
var el;
for (var i= 0; i<document.all.length; i++) {
el= document.all[i];
if (!el.minmax_bound) {
el.minmax_bound= true;
minmax_bind(el);
} }
}
var minmax_scanner;
function minmax_stop() {
window.clearInterval(minmax_scanner);
minmax_scan();
}
minmax_scan();
minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);
window.attachEvent('onload', minmax_stop);
@end @*/

由于只有 IE6 及其以下版本不支持min/max-width/height 属性,因此,我们可以用下面的调用方式:
Code:


代码如下:

<!--[if lt IE 7]>
<script type="text/javascript" src="minmax.js"></script>
<![endif]-->

(0)

相关推荐

  • jquery判断复选框是否选中进行答题提示特效

    本文实例讲述了jquery判断复选框是否选中进行答题提示特效代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 一.实现的原理: 第一步:判断用户选择哪一项,即哪个复选框被选中 第二步:根据复选框的选中情况给出相应的提示 二.下面来看主体程序: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <

  • 利用JS解决ie6不支持max-width,max-height问题的方法

    今天遇到一个关于用js解决ie6不支持支持max-width,max-height的问题,刚开始用jQuery方法来实现,不过一直获取不到css里面的值,如 复制代码 代码如下: if($.browser.msie && $.browser.version == 6.0)  {    var maxWidth = parseInt($('.viewBigPic img').css('max-width'));    $('.viewBigPic img').each(function(){

  • asp.net中url地址传送中文参数时的两种解决方案

    在Web.comfig中配置 是一样的: <globalization requestEncoding="gb2312" responseEncoding="gb2312"/> 页面Header部分也都有 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 真是奇怪, 只好用了笨办法: 写参数: 复制代码 代码如下

  • 让IE6支持min-width和max-width的方法

    说明:让 IE6 及其以下版本支持 CSS 中 min/max-width/height 属性 复制代码 代码如下: @if (@_win32 && @_jscript_version>4) var minmax_elements; minmax_props= new Array( new Array('min-width', 'minWidth'), new Array('max-width', 'maxWidth'), new Array('min-height','minHei

  • jQuery在ie6下无法设置select选中的解决方法详解

    本文实例讲述了jQuery在ie6下无法设置select选中的解决方法.分享给大家供大家参考,具体如下: 这里主要解决在 ie6 下,jquery 无法设置 select 选中的问题.我们先看个例子: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"/> <title>demo</title> </head&g

  • php5.4以下版本json不支持不转义内容中文的解决方法

    本文实例讲述了php5.4以下版本json不支持不转义内容中文的解决方法.分享给大家供大家参考.具体分析如下: 写ERP接口的时候遇到JAVA方接收这种json_encode后的内容 复制代码 代码如下: {"orderCode":"1401160935542399","creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"} 其中"creator&qu

  • webstorm配置支持nodejs并自动补全的方法

    1.配置支持nodejs 配置nodejs支持,博主下载的2017.02的最新版本,下载后如果你自己已经有安装node了,那么ide会像myeclipse一样自动找到node的位置并添加配置,不需要你手动配置. 如果你没有成功,那么到File->Setting->输入Node.js(选中点进去)->Node imterpreter(选择node的安装路径即可)->确定 2.设置自动补全 首先需要下载core code,File->Setting->输入Node.js(选

  • 让Django支持Sql Server作后端数据库的方法

    好久木有在windows里面写python了..这本也不是事儿,python嘛,只要系统里面装好了,那大多数代码都是可以正常运行的..然而有时候需要调用微软那一套特定的API,什么Java啊python啊总有水土不服的时候. 今天我就将我在Mac里面写好的Django项目移到win10上.一开始图省事儿,我用的sqlite3当后端数据库,但单位要求在项目正式上线的时候用SQL Server,于是,记得django 1.9默认不支持微软那一套的我,就开始在网上搜啊搜,现是发现有人说只要装好一个名为

  • Spring Boot应用程序同时支持HTTP和HTTPS协议的实现方法

    如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一份Certificate keystore,用于加密和机密浏览器的SSL沟通. 如果你使用Unix或者Mac OS,可以通过下列命令:keytool -genkey -alias tomcat -keyalg RSA,在生成过程中可能需要你填入一些自己的信息,例如我的机器上反馈如下: 可以看出,执行

  • 让IE6支持min-width最小宽度

    可浏览器使用率占最高的ie6偏偏不支持,虽然后来出场的ie7已经开始支持此属性.不过就用户体验的角度来说多浏览器支持也是很重要的,更何况就目前来说ie6的占有率还是最高的. 特别是在流动布局的使用下,特别会用到min-width.min-height.max-width.max-height这些属性,以下是一种非常方便就可以实现在ie6显示min-width.min-height.max-width.max-height同等效果的方法,在此与大家一同分享.闲话少说,上源码: 触发并利用IE6-l

  • IE6支持position:fixed完美解决方法

    今天去一老外站看到了这他站上的十分平滑但却没有js,好奇,原来..巧妙啊,分享下,相对而言比较节省资源.但效果好,使用方便,兼顾w3c.哈哈 复制代码 代码如下: <!-- compliance patch for microsoft browsers --> <!--[if lt IE 7]><link rel="stylesheet" href="ie-stuff.css" type="text/css" med

  • iOS系统和微信中不支持audio自动播放问题的解决方法

    前言 最近在做一个移动端项目,需要为H5配一段背景音乐且要自动播放,按照以往的方法将自动播放代码加入进去就可以了,可以却发生了点小插曲(捂脸),下面话不多说了,来一起看看详细的介绍吧. 移动端音频播放代码 css .pause { position: absolute; z-index: 10000; bottom: 10px; right: 10px;} .pause a { width:30px; height:30px; background:url(http://mat1.gtimg.c

  • 在IE和VB中支持png图片透明效果的实现方法(vb源码打包)

    1,使用js文件使IE支持png图片透明效果. pngfix.js: 复制代码 代码如下: var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) function fixPNG(myImage) { if ((version >= 5.5) && (version < 7) && (document.body.filt

随机推荐