解决ie6下不支持fix属性,模拟固定定位

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>模拟固定定位fix</title>
 6 <style>
 7 html{ height:100%; overflow:hidden;}
 8 body{margin:0;  height:100%; overflow:auto;}
 9 .box{height:2000px;}
10 .div{width:100px;height:100px;background:red; position:absolute;left:100px;top:100px;}
11 </style>
12 </head>
13 <body>
14 <div class="box">
15     <div class="div"></div>
16 </div>
17 </body>
18 </html>

html{ height:100%; overflow:hidden;}//此处让其跟文档height一样
body{margin:0;  height:100%; overflow:auto;}//此处也是让其跟html元素的height一样,相对html元素
.box{height:2000px;}
.div{width:100px;height:100px;background:red; position:absolute;left:100px;top:100px;}//此处用了绝对定位,而此处的定位是相对文档的,当滚动条滚动的时候自然这里,没有相对html滚动,从而达到固定定位fix遮掩的效果(兼容性很好)

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 .box{height:2000px;}
 8 .div{width:100px;height:100px;background:red; position:fixed;left:100px;top:100px;_position:absolute;_top:expression(eval(document.documentElement.scrollTop+100));
 9 }
10 </style>
11 </head>
12 <body>
13 <div class="box">
14     <div class="div"></div>
15 </div>
16 </body>
17 </html>

_position:absolute;_top:expression(eval(document.documentElement.scrollTop+100)); 这里针对的ie6以下不支持fix属性,来模拟的。性能不是很好

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>图片块中居中</title>
 6 <style>
 7 .box{ width:800px;height:600px;border:2px solid #000; text-align:center;}
 8 span{ display:inline-block; height:100%; vertical-align:middle;}
 9 img{ vertical-align:middle;}
10 </style>
11 </head>
12 <body>
13 <div class="box">
14     <img src="bigptr.jpg" /><span></span>
15 </div>
16 </body>
17 </html>

图片块中居中,这种方式兼容性很好,语法也简单

1 <style>
2 .box{ width:800px;height:600px;border:2px solid #000;display:table;position:relative; overflow:hidden;}
3 span{ display:table-cell; text-align:center; vertical-align:middle;*position:absolute;left:50%;top:50%;}
4 img{ *position:relative; vertical-align:top;left:-50%;top:-50%;}
5 </style>

这种方式没有上面的好用。不推荐

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>li的里分为左右两块元素,右边元素一直跟在左侧内容后边并距离左侧元素10px间距,左侧元素宽度由左侧内容撑开。如果左右两侧内容总宽度超出了li宽度,就把左侧多出的文字隐藏掉
 6 </title>
 7 <style>
 8 .list{width:302px; margin:0;padding:0; list-style:none;}
 9 li{ height:30px; font-size:12px; line-height:30px;border:1px solid #000; vertical-align:top;}
10 p{margin:0;float:left;padding-right:50px; position:relative; overflow:hidden;height:30px;}
11 span{padding-left:10px;width:40px; position:absolute;right:0;top:0;}
12 </style>
13 </head>
14 <body>
15 <ul class="list">
16     <li>
17         <p>
18             <a href="#">文字文字文字文字文字字文字文字文字文字文字文字字文字文字文字文字文字文字字文字</a>
19             <span>文字</span>
20         </p>
21     </li>
22     <li>
23         <p>
24             <a href="#">字文字文字字文字</a>
25             <span>文字</span>
26         </p>
27     </li>
28     <li>
29         <p>
30             <a href="#">文文字字文字文字文字文字文字文字字文字</a>
31             <span>文字</span>
32         </p>
33     </li>
34     <li>
35         <p>
36             <a href="#">字文字文字文字字文字</a>
37             <span>文字</span>
38         </p>
39     </li>
40 </ul>
41 </body>
42 </html>

li元素里分为左右两块元素,右边元素一直跟在左侧内容后边并距离左侧元素10px间距,左侧元素宽度由左侧内容撑开。如果左右两侧内容总宽度超出了li宽度,就把左侧多出的文字隐藏掉

时间: 2024-08-13 22:05:53

解决ie6下不支持fix属性,模拟固定定位的相关文章

解决ie下不支持html5的问题

1.html5shiv ie6~8不识别html5的新元素,可以通过使用html5shiv来解决 <!--[if lt IE 9]> <script type="text/javascript" src="js/html5shiv.js"></script> <![endif]--> 2.respond.js 解决ie6~8不支持媒体查询特性 <!--[if lte IE 9]> <script sr

解决IE6下png-24使用滤镜(_filter)透明问题 效果出不来

今天说说IE6下使用滤镜(_filter)解决png-24透明效果遇到的一些问题: css代码:background:url(../images/button1.png) no-repeat;_background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/button1.png"); 在使用上述代码解决IE6下透明效果时,有的人会出现明明使用了上述代码,为什么没有出现想要的

【css】修正ie6下不支持position:fixed

<!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" xml:lang="en"> <head> <meta h

绝对定位模拟固定定位效果...

今天下班,突然发现同学在群里求救解决固定定位在移动端偏移的问题,本屌丝猛地一颤:那一天,我终于回想起来了,曾经一度被ios固定定位失效所支配的恐怖,还有被市场妹子一脸嘲讽的看着的那份屈辱...(本屌意淫一下巨人). 真是情况就是,ios对固定定位的支持有点奇葩,当固定定位的层里有input一类的能调动虚拟键盘的元素时,一旦用户聚焦这些元素,固定定位的层级中的元素会发生位移,也就是俗称的页面错乱了,本屌当时寻遍网上各种方案,试了大半天时间(其实,就是因为没钱穷屌丝一枚,没有水果手机,每次测试都要厚

IE6下不支持除a以外的hover效果的解决办法

废话不说,直接上方法! 1.下载csshover.htc文件: 代码如下: <attach event="ondocumentready" handler="parseStylesheets" /> <script language="JScript"> /** * Pseudos - V1.30.050121 - hover & active * ---------------------------------

让IE6/IE7/IE8支持CSS3属性的8种方法介绍

我们都知道,IE浏览器暂不支持CSS3的一些属性.国外的工程师们,不安于此现状,他们总是尽量使用一些手段使IE浏览器也能支持CSS3属性,我觉得这些都是很有意义,很有价值的工作,可以推动整个技术领域的进步的.到目前为止,有不少可以让IE支持部分CSS3属性的工具.例如: 1. Dean Edwards的IE7.js (以及 IE8.js, IE9.js) 这个玩意估计是试图让IE支持CSS3属性的鼻祖,还算蛮强大,就是性能开销较大,要解析很多文件脚本,给DOM添加大量的元素以及ClassName

解决IE6下 PNG图片有背景问题

IE6下有时候png格式的图片会存在背景的问题,以下是我常用的解决办法: <!--[if IE 6]> <script src="js/DD_belatedPNG_0.0.8a.js"></script> <script> DD_belatedPNG.fix('*'); </script> <![endif]--> DD_belatedPNG_0.0.8a.js 代码如下: /** * DD_belatedPNG:

解决IE6下固定定位问题

*html { /*只有IE6支持 解决IE6抖动问题*/ background-image: url(about:blank); /*使用空背景*/ background-attachment: fixed; /*固定背景*/ } #top { /*非IE6 直接用固定定位*/ position: fixed; top: 0; left: 0; /*IE6 改为绝对定位 并通过css表达式根据滚动位置更改top的值*/ _position: absolute; _top: expression

expression解决IE6下固定定位的兼容

本文所使用的技巧是用了一条 Internet Explorer 的 CSS 表达式 (expression) .你不可以直接使用该表达式,因为它可能会因为缓存而不更新.解决这一点的最简单的方式是使用 eval 包裹你的语句. 如何解决“振动”的问题? 显然 IE 有一个多步的渲染进程.当你滚动或调整你的浏览器大小的时候,它将重置所有内容并重新渲染页面,这个时候它就会重新处理 CSS 表达式.这会引起一个丑陋的“振动” bug ,在此处固定位置的元素需要调整以跟上你的(页面的)滚动,于是就会“跳动