zoukankan      html  css  js  c++  java
  • IE浏览器中内容和背景分离的bug

    出现的浏览器:IE6 IE7(在firefox中正常没问题)

    问题现象:div的内容(包括文字,图片,表单等)和背景分离开了看起来像在两个不同的层里面一样。

    本来是为了实现一个可变背景的页面,让页面的背景颜色和透明度可变(即下面代码中的id=main的div),但是内容的颜色和透明度不随背景变而变(即id=content的div),于是需要在内容层的下面加一个z-index比它低的层(即id=background的div)来做背景,再用js来让background层的高度自动等于main的高度(这里为了说明主要问题省去自动对齐高度的js部分。)

    为了让background的div做main的背景,需要让background div的位置和main的位置自动对齐,于是就需要用css的position来对齐它们的位置。让background的坐标是main的left:0,top:0的位置上。
    但是这样之后,内容content div的背景看起来就和内容分离开了,看起来像是分别在两个不同的层里面,而background div就处在这两个层之间,把它们分离开了。

    看看下面的代码运行效果:

     

    <div id="main">  

        <div id="background"></div>  

        <div id="content" style="background:orange;">这个层的内容和background跑分离了 这里的文字都是属于背景颜色是orange的那个div的;红色背景的div是id=background的层。</div>  

    </div>  

      

    <style type="text/css">  

    #main{position:relative;z-index:1;}   

    #background{position:absolute;left:31px;top:0;z-index:-1;100%;background:red;height:60px;}   

    </style>  

    解决办法:给内容和背景分离的div 即id=content的层加上一个明确的高度,或者是宽度可以解决,比如:100%;height:100%;
    在下面的代码中就会得到IE6 IE7 firefox中都正确的结果:

     

    <div id="main">  

      <div id="background"></div>  

       <div id="content" style="background:orange;100%">这个层的内容和background跑分离了 这里的文字都是属于背景颜色是orange的那个div的;红色背景的div是id=background的层。</div>  

    </div>  

     <style type="text/css">  

    #main{position:relative;z-index:1;}   

    #background{position:absolute;left:31px;top:0;z-index:-1;100%;background:red;height:60px;}  

    </style>  


  • 相关阅读:
    利用print2flashsetup.exe文档转swf
    Linux 脚本内容指定用户执行
    第一讲:网络协议概述
    第三讲:ifconfig:最熟悉又陌生的命令行
    第2讲 | 网络分层的真实含义是什么?
    Fiddler -工具使用介绍(附:拦截请求并修改返回数据)(转)
    Fiddler 抓包工具总结(转)
    网络抓包wireshark(转)
    Axure RP 授权码
    第6堂视频课:看到词句就会读-下
  • 原文地址:https://www.cnblogs.com/luluping/p/1342569.html
Copyright © 2011-2022 走看看