IE6/7在滚动区域内的标签使用position会飘出这个滚动区域不随滚动条滚动

问题描述

在IE6/7浏览器中,当在滚动区域内使用css属性 position: absoluteposition: fixed 的元素时,该元素会出现跑出滚动区域的情况,具体表现为该元素不会随着滚动条的滚动而滚动,而是固定在页面顶部或左侧。

解决方案

在IE6/7浏览器中,使用 zoom:1position: relative 的结合解决该问题。

示例一:

HTML结构:

<div style="height: 200px; overflow: auto;">
  <div style="height: 300px; background-color: #f0f0f0;">
    <div style="position: absolute; top: 50px; left: 50px; width: 100px; height: 100px; background-color: red;"></div>
  </div>
</div>

CSS样式:

div {
  zoom: 1;
  position: relative;
}

在上面的示例中,父级元素 div 的样式设置为 zoom: 1; position: relative; 时,子元素 div 的定位就会受到父级元素的影响,解决了元素跑出滚动区域的问题。

示例二:

HTML结构:

<div style="height: 200px; overflow: auto;">
  <div style="height: 300px; background-color: #f0f0f0;">
    <div style="position: fixed; top: 50px; left: 50px; width: 100px; height: 100px; background-color: red;"></div>
  </div>
</div>

CSS样式:

div {
  zoom: 1;
  position: relative;
}

div div {
  position: absolute;
  top: expression(eval(document.documentElement.scrollTop) + 50);
  left: expression(eval(document.documentElement.scrollLeft) + 50);
}

上面的示例中,子元素 div 的样式设置为 position: absolute; top: expression(eval(document.documentElement.scrollTop) + 50); left: expression(eval(document.documentElement.scrollLeft) + 50);,通过javascript表达式,实现让子元素 div 的位置跟随页面滚动而滚动。

注意事项

  1. 在IE6下,zoom 属性可以触发 hasLayout,让元素拥有独立的渲染区域,解决元素高度塌陷等问题。

  2. 在IE6/7下,定位元素使用了 position: absoluteposition: fixed,需要设置 zoom 和 position:relative。

  3. 在IE6/7下,用 expression 表达式使元素在滚动时发生位移,要跟 position:absolute 一起使用。

  4. 在IE8+和其他大部分现代浏览器中不需要使用这种解决方案,元素定位与滚动互不影响。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IE6/7在滚动区域内的标签使用position会飘出这个滚动区域不随滚动条滚动 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 5分钟教你学会超简单的html+css魔幻霓虹灯文字特效

    你好!关于“5分钟教你学会超简单的html+css魔幻霓虹灯文字特效”的攻略,下面给出详细的步骤说明。 一、所需基础知识 HTML基础语法 CSS基础语法 一些基础的CSS动画知识 二、步骤说明 1. 创建HTML文件 在任何文本编辑器中打开一个新文件,然后将以下代码复制到文件中。这是一个最基本的HTML骨架 <!DOCTYPE html> &l…

    css 2023年6月9日
    00
  • bootstrap3.0教程之栅格系统案例(包括栅格选项、从堆叠到水平排列、移动设备和桌面等

    下面是关于”bootstrap3.0教程之栅格系统案例”的一些详细讲解。 栅格系统简介 在制作一个网页时,我们通常会使用栅格系统来布局页面,把页面上的内容划分为若干个列和行,然后在列中放置内容。Bootstrap框架提供了一套非常好用的栅格系统,可以让你快速的创建响应式布局的页面。 栅格选项说明 Bootstrap栅格系统有5个选项,分别是:超小屏幕设备(&…

    css 2023年6月10日
    00
  • CSS命名规范参考及书写注意事项

    CSS命名规范参考及书写注意事项 CSS命名规范是Web开发中非常重要的一部分,良好的命名规范可以提高代码的可读性和可维护性。本攻略将详细讲解CSS命名规范的参考及书写注意事项,包括命名规范的原则、命名规范的分类、命名规范的书写注意事项等,并提供两个示例说明。 1. 命名规范的原则 CSS命名规范的原则是简洁、明确、有意义。具体来说,应该遵循以下几个原则: …

    css 2023年5月18日
    00
  • 一步步教你在Asp.net Mvc中使用UEditor编辑器

    一步步讲解在Asp.net Mvc中使用UEditor编辑器的完整攻略如下: 第一步:下载UEditor编辑器 首先需要到UEditor的官网下载编辑器的源码包,可以选择压缩包下载或者git clone到本地。 第二步:解压UEditor编辑器 将下载下来的源码进行解压,并将解压后的UEditor文件夹放到我们项目的根目录下。 第三步:在项目中引用UEdit…

    css 2023年6月9日
    00
  • 苹果iPhone safari浏览器样式重置修复submit按钮圆角bug

    问题描述:在苹果iPhone的Safari浏览器中,如果使用CSS对button或者input标签来设置圆角边框,那么当这些标签设置为type=”submit”时,会出现圆角边框不显示或者显示不正确的问题。这种情况下,我们需要进行样式重置来修复这个问题。 解决方案: 步骤1:为了避免Safari的默认样式,我们需要首先重置样式: button, input[…

    css 2023年6月10日
    00
  • css常用代码分享(css圆角代码、渐变、密码框)

    下面是关于”CSS常用代码分享”的攻略。 CSS圆角代码 圆角可以让一个元素的边角呈现出圆润的效果,可以让UI更加美观。而CSS中实现圆角效果主要有如下几种方式。 使用border-radius属性 border-radius属性是最常用的方式来实现圆角效果,如下所示: .example { border-radius: 10px; } 这样就给使用.exa…

    css 2023年6月10日
    00
  • 带你深入剖析inline-block属性值的前世今生

    当我们需要在页面上放置多个块级元素时,通常使用float或display: inline-block属性。其中,inline-block属性在使用过程中可能会遇到一些奇怪的问题,因此我们需要深入剖析这个属性值的前世今生。 1. inline-block基本属性 display:inline-block是将元素显示为内联对象,但可以保留其内部的块级属性,比如设…

    css 2023年6月9日
    00
  • Vue指令实现大屏元素分辨率适配详解

    Vue指令实现大屏元素分辨率适配详解 背景 随着大屏幕设备的普及,如何使Web应用能够在各种分辨率的屏幕上呈现出美观自然的布局是前端开发者需要重视的问题。 目标 本攻略将讲解如何使用Vue指令实现大屏元素分辨率的适配,让Web应用在不同大小的屏幕上均能有良好的展示效果。 实现原理 通过自定义Vue指令,监听元素的宽高变化,并在变化时通过计算实现元素的自适应布…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部