zoukankan      html  css  js  c++  java
  • ie6 position:fixed解决方案

    当前主流浏览器中,chrome,firefox,ie7,8等想要固定一个元素位置,不随内容的滚动而滚动,众所周知,css中position: fixed;即可解决。
    可是要在IE6中实现固定效果,position: fixed;就不奏效了。

    目前我所知的ie6下fixed的方案大概有纯css和expression+js两种,各有利弊。

    1.纯css法
    利用了ie6下html元素外面套的一个匿名元素,即 * ,利用选择器层级,可以定制ie6下的效果。代码如下

    * html {
    overflow-y: hidden;}/*只是定制垂直滚动fixed*/
    * html body{
    overflow-y: auto;
    height: 100%;
    } * html #fixedbox{ /*把要固定的元素position设置为absolute */ position: absolute; }


    此法看似成本很低,其实有个显而易见的致命伤,就是ie6下所有position: absolute; 的元素都会被置为固定不动。于此,此法只能用于页面木有绝对定位的元素的时候。

    2.js 法
    其实此法原理也很简单,就是在ie6下利用js不断改变absolute的元素scrolltop值,已达到类似固定的效果。例如

    #fixedbox{
    position: fixed;
    top: 250px;
    /* for ie6 */
    _position: absolute;
    _top: expression(documentElement.scrollTop + 250 +”px”);
    }


    此法也有一个小问题,即滚动时会闪烁。
    解决闪烁的办法也很简单,即给滚动元素的父元素(一般是body)设置一个background-image,并把background-attachment设置为fixed。
    于是,综上,

    #fixedbox{
    position: fixed;
    top: 250px;
    }
    /*for ie6 */
    * html body{
    background-image: url(about:blank);
    background-attachment: fixed;
    }
    * html #fixedbox{
    position: absolute;
    top: expression(documentElement.scrollTop + 250 +”px”);
    }


    虽然expression会影响一定的性能,但这也不失为一种好的模拟fixed的方法。
    ps:如果本身body中要设置background-image的,可以直接在html里写空的固定的背景图。

  • 相关阅读:
    hadoop-2.7.3安装kafka_2.11-2.1.0
    HBase数据快速导入之ImportTsv&Bulkload
    hbase shell 基本操作
    SQLplus命令中删除键和翻页键不能用的问题
    SQL*Loader 的使用sqlldr和sqluldr2方法详解
    python连接oracle导出数据文件
    python零碎知识点一
    用Python输出一个Fibonacci数列
    问题总结——window平台下gruntower安装后无法运行的问题
    JavaScript学习笔记——浅拷贝、深拷贝
  • 原文地址:https://www.cnblogs.com/hongru/p/1832473.html
Copyright © 2011-2022 走看看