`

如何通过CSS实现div的固定位置,不随页面滚动消失

 
阅读更多

每个 Web Developer / Designer 都知道 CSS 的 position:fixed 的妙用。利用这个属性,我们可以轻松的将一个元素“固定”在页面的某个位置。这在我们做一些特殊的效果,例如页边角的小角旗,或是固定页面底下的脚注都是 非常有用的。但是万恶的 IE 却对这个属性支持有问题,尽管 IE7/8 已经能够正确处理这个属性,但 IE6 的份额还是很高,所以当我们用这个属性时,还得想办法解决这个问题。

今天在一位德国朋友的博客上,看到了一个不错的通用解决方案。这里我简单介绍,或者说翻译一下作者的方法:

在 Firefox/Opera 等良好支持 W3C 标准的浏览器中,如果我们希望将某个元素固定在页面底部,我们可以给它指派这样的 CSS:

    position: fixed;
    bottom: 0;

对于 IE7 来说,它虽然可以正确的将这个元素 fix 在底部,但它却错误的处理了水平方向的位置。对于这个问题,我们可以利用一个原有的 hack 来解决:

    left: 50%;
    margin-left: -390px;

这里 margin-left 的值应该修改为您页面主要区域宽度的一半。这样 IE7 下基本也就完美了。剩下需要解决的就是 IE6, IE5.5 的问题了,他们不懂得 position: fixed 属性,所以我们需要单独解决一下:

首先我们为这些浏览器单独创建一个样式表,我们可以利用条件注释语句,让 IE<7 的浏览器单独载入这个“多于”的样式表:

    <!–[if IE lt 7]>
    <link rel=”stylesheet” href=”path/to/stylesheet/ie-stuff.css” type=”text/css” media=”screen” />
    <![endif]–>

然后我们在这个 CSS 文件中,对这个需要固定在页面底部的元素添加 CSS 属性:

    postion: absolute;
    bottom: auto;
    top: expression( eval(document.compatMode && document.compatMode==’CSS1Compat’) ? documentElement.scrollTop + (documentElement.clientHeight – this.clientHeight) – 1 : document.body.scrollTop + (document.body.clientHeight – this.clientHeight) – 1);

这里事实上就是利用了 IE 中特有的 CSS 运算符 expression。在 expression 中我们可以利用 Javascript 计算出需要的 top 值,这样就达到了与 position: fixed 同样的效果。

这种方法原理上来说和以前的 Javascript 方案是相同的,但这种方法显然通用性更好一点。当然,如果您不介意用 Javascript 的话,实现同样的效果会更直观更简单一点。

分享到:
评论

相关推荐

    jquery特效DIV层跟随页面向下滚动

    当用户滚动页面时,一个特定的div元素(通常包含重要的信息或导航)会固定在屏幕的一侧,保持可见,即使用户滚动页面也不会消失。这种效果常被称为“粘性头部”或“固定侧边栏”。 jQuery是一个轻量级的JavaScript...

    CSS3 实现Loading加载,页面遮罩层的应用

    本文将深入探讨如何使用CSS3来实现这两种功能,并解释它们在实际应用场景中的重要性。 首先,让我们来了解什么是“Loading加载”。Loading加载通常出现在网页或应用程序加载初期,它是一个可视化的提示,告知用户...

    jquery 可拖动浮动DIV ,可固定DIV

    然而,这里的“浮动DIV”可能指的是一个始终在屏幕某处保持可见,即使页面滚动也不会消失的元素。 接着,我们讨论“可拖动DIV”。这涉及到jQuery UI库中的Draggable插件,它可以将任何元素转化为可拖动的元素。通过...

    div css仿太平洋网页固定层代码.zip

    在“div css仿太平洋网页固定层代码”中,固定层通常指的是通过CSS的position属性设置为fixed的元素。当元素的position设为fixed时,它会相对于浏览器窗口定位,即使在滚动页面时也始终保持在屏幕的某个位置,这种...

    div弹出层 定位问题的 处理

    `使`div`始终相对于浏览器窗口定位,即使滚动页面也不会改变其位置。这对于创建始终可见的弹出层或悬浮菜单非常有用。 3. **居中对齐**:让`div`弹出层居中,可以采用以下几种方式: - 使用负边距:通过计算`div`...

    HTML固定Table标题行的四种方法

    每种方法都有其优缺点,例如CSS Sticky在某些老版本浏览器中可能不支持,而jQuery插件则可能增加页面加载时间。开发者应根据项目需求和目标浏览器选择合适的方法。在实际应用中,可能需要结合其他技术,如媒体查询...

    jquery滚动固定侧边栏插件

    jQuery滚动固定侧边栏插件的工作原理是通过监听页面的滚动事件,当侧边栏顶部到达浏览器窗口的顶部时,将其CSS定位改为"fixed",从而使其在页面滚动时保持在视口内。当侧边栏底部离开窗口可视区域时,恢复其原始定位...

    AmazeUI 固定元素

    在“AmazeUI 固定元素”这个主题中,我们主要探讨的是如何在网页中实现元素始终固定在某个位置,即使在滚动页面时也不会消失。这在创建导航栏、侧边栏或者页脚等需要一直可见的元素时非常有用。 AmazeUI 提供了一套...

    js固定表格行列

    这通常是通过创建一个新的div层,将需要固定的列复制到这个层,并在滚动时调整其位置。JavaScript需要根据当前滚动位置来计算这些列的显示位置,确保它们与表格的其他部分保持同步。此外,还需要处理列宽的动态调整...

    CSS 控制因Html页面高度导致抖动的问题解决方法

    由于滚动条存在,页面布局在加载时就固定下来了,从而减少布局的动态调整和随之而来的页面抖动。 其次,可以通过设置`min-height`属性来保证最小高度,确保页面内容即使不足以填满视窗也会有足够的空间,以防止滚动...

    JS固定表头及左边列

    这个技术主要是通过JavaScript实现,确保在页面滚动时,表头和左侧列始终保持可见,提高用户的浏览体验。 首先,我们来看"固定表头"这一概念。在网页中,表头(thead)通常包含表格的列名,用于标识每一列的数据...

    js+html5实现半透明遮罩层弹框效果

    position: fixed使元素相对于浏览器窗口定位,即使页面滚动,遮罩层弹框也会固定在相同的位置。示例如下: ```css .collectSucc { position: fixed; height: auto; width: 70%; background-color: #ffffff; ...

    JQuery使导航栏固定于网页顶部

    为了解决这个问题,开发人员会利用CSS的`position: fixed`属性,使导航栏在页面滚动时始终保持在屏幕的顶部,从而提供持续的导航选项。 JQuery使得实现这个功能变得更加便捷。在"JQuery使导航栏固定于网页顶部"的...

    js cookie实现页脚固定广告条代码.zip

    2. **JavaScript事件监听**:使用JavaScript监听滚动事件(`window.onscroll`),当用户滚动页面时,判断广告条的位置是否应该固定在视口底部。 3. **广告条定位**:通过CSS或者JavaScript动态调整广告条的定位属性...

    html固定表格头和列

    然而,当表格数据过多,需要滚动查看时,表头和第一列往往会随着滚动而消失,导致用户在浏览下方数据时无法清晰地识别各列内容,用户体验大打折扣。为了解决这一问题,“html固定表格头和列”的技术应运而生,它允许...

    DIV+CSS属性设置参数.pdf

    本文将详细解析`DIV+CSS`中的各种属性设置参数,这些参数是构建网页布局和美化页面的关键元素。我们将逐一探讨行距、背景图像、宽度、高度、最大字符数等核心概念,并深入讲解各种排版、定位、字体样式、文本装饰...

    网页模板——jQuery实现表格头和列固定插件RWD Table.zip

    1. **固定表头**:通过CSS定位技术,将表格的thead部分设置为固定位置,使其始终显示在顶部,即使在用户滚动页面时也不会消失。这通常涉及到`position: fixed`属性的使用,并需要根据窗口大小动态调整其宽度和高度。...

    gridview 固定表头

    然而,当用户滚动到表格下方时,表头往往会随之消失,导致用户难以识别每一列的数据含义,降低了用户体验。为了解决这个问题,“gridview固定表头”应运而生,它通过将表头固定在顶部,无论用户如何滚动表格,表头...

    js固定在网站底部在线客服代码

    本篇文章将详细讲解如何利用JavaScript(JS)、CSS(层叠样式表)和HTML(超文本标记语言)实现一个简单且固定的在线客服代码,使其始终处于页面底部,不会因页面滚动而消失。 首先,我们需要创建一个基本的HTML...

    页面悬浮窗口源码

    页面悬浮窗口源码是一种在网页设计中常见的技术,主要用于实现元素在页面滚动时始终保持在屏幕某一位置的效果。这种设计常用于展示重要的通知、广告或工具栏,为用户提供便捷的访问途径,而不会因页面滚动而消失。在...

Global site tag (gtag.js) - Google Analytics