`

css固定元素位置(fixed)

    博客分类:
  • web
css 
阅读更多

我们经常碰到的需求是希望页面某个元素固定在浏览器的一个位置,无论如何滚动滚动条,位置不变,就例如经常看到的弹出广告。方法一般是使用js控制,或者使用css。这里我写的是css的控制方法。

在IE7以上版本及firefox、opera、safari里,都支持css属性"position:fixed",它的作用就是将元素相对于窗口固定位置。代码如下

#ads{
    position:fixed;
    right:0;
    bottom:0;
    border:1px solid red;
    width:300px;
    height:250px;
}

 我们定义一个#ads的id样式,并给他设了高度宽度,通过position:fixed以及right、bottom将元素定位在窗口右下角。

但是在IE6下,并不支持position:fixed属性,这个时候我们需要对IE6进行hack处理。解决的方案是使用postion:absolute属性,它的作用大家都很熟悉,相对于父元素进行绝对定位,然后我们可以通过expression来改变#ads的top值。

PS expression的定义:IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式,CSS属性的值等于Javas cript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。

所以我们可以通过在css里计算javascript值来改变top值,代码如下:

#ads{
    _position:absolute;
    _top:expression(documentElement.scrollTop + documentElement.clientHeight-this.offsetHeight);
}

 似乎一切都完美了,但是我们在IE6下运行的时候会发现,随着滚动条的移动,我们的这个#ads朋友他会抖动。解决方法也很简单,只要在body里加一点点的css,如下:

body{
    background-image:url(about:blank); /* for IE6 */ 
    background-attachment:fixed; /*必须*/
}

 好啦,完工!!!!!!!!!!!!!!!!!!!!!!!!

有木有!!!!!!!!!!!!!!!!!!!!!!!!

PS:原本使用的是"url(text.txt)",但是txt这个是不存在的,http请求报404错误,导致影响加载速度,参考了网上的一些写法,使用about:blank可以达到相同目的。

原理据说是ie6不支持fixed 而其样式背景却支持fixed,通过背景来此消彼长消除抖动,望大牛指教。

完整的代码:

body{
    background-image:url(about:blank); /* for IE6 */ 
    background-attachment:fixed; /*必须*/
}
#ads{
    width:300px;
    height:250px;
    position:fixed;
    right:0;
    bottom:0;
    _position:absolute;
    _top:expression(documentElement.scrollTop + documentElement.clientHeight-this.offsetHeight);
    border:1px solid red;
}

 

分享到:
评论

相关推荐

    纯CSS固定表头内容滚动表格

    "纯CSS固定表头内容滚动表格"是一种高效且用户友好的设计技巧,它允许用户在浏览长表格时始终保持表头可见,从而方便用户理解每一列的数据含义。这种设计方法尤其适用于那些包含大量数据且需要横向滚动查看的表格,...

    HTML IE6 纯CSS 解决 position fixed 的问题

    `是一个非常有用的CSS属性,它可以使元素相对于浏览器窗口保持固定位置,无论滚动条如何滚动,该元素都会停留在屏幕的特定位置。然而,在Internet Explorer 6 (IE6)这个古老的浏览器中,`position: fixed;`并不完全...

    bootstrap-table-fixed-columns(css,js)

    在这个文件中,开发者可能会找到对表格元素的遍历、事件监听、计算固定列的尺寸以及在滚动时更新它们位置的代码。JavaScript的使用确保了在用户滚动表格时,固定列能够正确地与滚动内容同步。 为了使用这个扩展,...

    CSS固定背景例子(css禅意花园例子)

    总之,CSS固定背景是一个强大的设计技巧,可以为网页增添深度和动感。通过灵活运用`background-attachment`、`background-image`、`background-repeat`、`background-position`、`background-size`等属性,我们可以...

    纯css实现固定在网页底部菜单导航

    为了使菜单导航固定在底部,我们可以将其设置为`position: fixed`。这将使得元素相对于浏览器窗口进行定位,即使页面内容滚动,该元素也会保持在屏幕的指定位置。 接下来,我们设置`bottom: 0`,这会将元素的下边界...

    CSS 同级元素position:fixed和margin-top共同使用的问题

    但实际上,在某些浏览器中,如果content元素设置了margin-top,那么它会将头部(header)元素向下推移,从而导致顶部固定元素并没有固定在浏览器窗口的顶部。 在测试中,人们发现,如果将content的margin-top改为...

    IE6下的纯CSS完美position:fixed实现

    `position: fixed`在现代浏览器中用于创建固定定位元素,使得元素相对于视口(viewport)保持固定位置,即使在滚动页面时也不会移动。然而,在IE6中,这个特性并未得到良好的支持。 为了在IE6下实现类似的效果,...

    很简单的纯CSS固定漂浮层

    本案例中,我们探讨的是一个“很简单的纯CSS固定漂浮层”的实现方法,无需JavaScript或其他编程语言,仅通过CSS就能达到预期效果。 首先,我们要理解CSS中的定位属性,这是实现固定漂浮层的关键。CSS中的定位主要有...

    锁定表头和固定列(Fixed table head and columns)

    CSS中,可以将表头设置为`position: fixed`,并根据需要设置宽度和高度,使其在页面上始终保持固定位置。 固定列(Fixed Columns)则是指在表格右侧或下方滚动时,左侧或上方的列始终保持可见。这在多列数据中尤其...

    用css样式固定表头和列

    ### CSS固定表头与列的核心原理 在网页中,当表格数据量庞大时,随着用户滚动页面,表头或列往往随之消失,导致用户难以关联数据。为解决这一问题,可以采用CSS的定位属性,特别是`position`、`top`和`left`等属性...

    div+css固定表头的

    标题"div+css固定表头的"指的是如何利用这种技术在长表格中使表头在滚动时始终保持可见。这种效果在大数据量的表格中非常有用,因为它允许用户在浏览数据时始终能看到列标题,从而更好地理解表格内容。 固定表头的...

    使用CSS样式position:fixed水平滚动的方法

    在网页设计中,CSS的`position:fixed`属性通常用于创建元素的固定定位,使得元素在页面滚动时始终保持在屏幕的某个位置。然而,当页面存在水平滚动条时,`position:fixed`元素仅能实现垂直方向的固定,而无法实现...

    HTML5&CSS3网页制作:固定定位.pptx

    **固定定位(Fixed Positioning)** 是绝对定位的一个特殊形式,它将元素的位置与浏览器窗口关联,而不是与文档流或任何父元素关联。当设置 `position` 属性为 `fixed` 时,元素就会变为固定定位。这使得元素在页面...

    CSS文档流与块级元素,css

    - **固定定位元素(Fixed Positioning)**:类似于绝对定位,但固定定位的元素相对于浏览器窗口进行定位,即使滚动页面,元素位置也不变。 #### 内联元素与块级元素的转换 有时,为了实现特定的布局效果,可能需要...

    屏幕滚动到相应位置,执行css动画

    在这个场景下,通常我们会使用相对定位或者固定定位,使元素在页面上保持一个特定的位置,随着用户滚动页面,元素的位置会相对不变。 接着,媒体查询(Media Queries)是响应式网页设计的重要工具,它允许我们根据...

    AmazeUI 固定元素

    由于固定定位可能导致与其他元素的布局冲突,可能需要自定义 CSS 来微调固定元素的位置。例如,增加 `top`、`bottom`、`left` 或 `right` 属性来设置元素距离窗口边缘的距离。 6. **兼容性**: 虽然固定定位在...

    css页面滚动固定下拉导航菜单特效

    1. **固定定位(Fixed Positioning)**:CSS中的`position: fixed;`属性使得元素相对于浏览器窗口进行定位,即使在页面滚动时,该元素也会保持在屏幕的特定位置。在这个特效中,当页面向下滚动时,导航菜单会自动...

    html+js+css固定表格行列

    若要固定表头,我们还需要一个`<thead>`元素来包裹表头行,`<tbody>`用于包裹数据行。 ```html 表头1 表头2 表头3 数据1 数据2 数据3 <!-- 更多数据行 --> ``` 接下来,我们利用CSS来...

    GridView固定表头(不用javascript只用CSS!,很好用

    `和具体高度宽度的`div`中,这创建了一个可滚动的容器,而表头则通过CSS固定在顶部。 ```html ; height: 200px; width: 300px;" id="dvBody"> <!-- GridView代码 --> ``` #### 四、注意事项 1. **兼容性**:...

    CCS固定位置,DIV固定位置

    在本主题“CCS固定位置,DIV固定位置”中,我们将深入探讨如何使用CSS来实现元素在页面上的固定定位,特别是关于`div`元素的固定定位。 首先,理解CSS的定位模式是关键。有四种基本的定位方式:正常流(Normal Flow...

Global site tag (gtag.js) - Google Analytics