css中fixed,css中fixed1
css样式中的fixed固定定位,是不是不受支持
position属性有:固定(fixed)、相对(relative)、 绝对(absolute)、默认(static)。代码:position:fixed,position:relative,position:absolute,position:static。例:div style="position:fixed;height:50px;width:50px;background:#f00;left:50px;top:50px;"/div这个代码显示出在浏览器的样式是 50x50 像素的一个正方形框,它的位置是在浏览器的左上 离左边50像素,离顶部50像素的地方。设置了定位方式的话就需要设置左右上下的浮动位置。设置为浏览器默认的就不要具体定位。 追问: 问题是position:fixed作了这样的敲定后,当浏览器拖动窗口时,该层并没有跟随窗口游走,能进一步解释吗 回答: 是这样的。position:fixed 固定定位是让某一元素固定在屏幕的某个位置,不会随窗口移动的。具体的我不知道你需要什么样的效果,你可以尝试使用其他样式。
css 中position: fixed;是什么意思?
position:
fixed用于生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过
"left",
"top",
"right"
以及
"bottom"
属性进行规定。
position
属性规定元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。
absolute
生成绝对定位的元素,相对于
static
定位以外的第一个父元素进行定位。
元素的位置通过
"left",
"top",
"right"
以及
"bottom"
属性进行规定。
fixed
生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过
"left",
"top",
"right"
以及
"bottom"
属性进行规定。
relative
生成相对定位的元素,相对于其正常位置进行定位。
因此,"left:20"
会向元素的
LEFT
位置添加
20
像素。
static
默认值。没有定位,元素出现在正常的流中(忽略
top,
bottom,
left,
right
或者
z-index
声明)。
inherit
规定应该从父元素继承
position
属性的值。
在css中如何正确使用fixed
我们经常碰到的需求是希望页面某个元素固定在浏览器的一个位置,无论如何滚动滚动条,位置不变,就例如经常看到的弹出广告。方法一般是使用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;
}
需要注意的是IE6可不支持fixed,一般用_position:absolute加js来代替fixed的实现
css中定位中的fixed是什么意思?
用Div+CSS进行网站布局时,做一些浮动层等特殊特殊效果时要考虑到定位问题。这就要用到Position属性等。
Position属性有四个值:static、fixed、absolute和relative,
后面两个在布局中的定位里是经常用到的,顾名思义,
absolute是指绝对定位,即将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位,而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框。
ralative是指相对定位,就是依据left,right,top,bottom等属性在正常文档流中偏移位置。
但是,怎么个绝对法,又怎么个相对法呢?
以前我一直没有仔细去研究它,到具体应用时有时会有点迷糊,我相信很多朋友也会有这样的问题。今天我特意测试了一下,得出了以下结论:
1、当Position属性值为Relative时对象原来占有的位置保留,其后面的对象按原来文档流仍然保持原来的位置Top的值表示对象相对原位置向下偏移的距离bottom的值表示对象相对原位置向上偏移的距离两者同时存在时,只有Top起作用。left的值表示对象相对原位置向右偏移的距离right的值表示对象相对原位置向左偏移的距离两者同时存在时,只有left起作用。
2、当Position属性值为absolute时对象从文档流中抽取出来,原占有的位置被后面的对象顶替上来Top的值表示对象上边框与浏览器窗口顶部的距离bottom的值表示对象下边框与浏览器窗口底部的距离两者同时存在时,只有Top起作用;如果两者都未指定,则其顶端将与原文档流位置一致,即垂直保持位置不变。left的值表示对象左边框与浏览器窗口左边的距离right的值表示对象右边框与浏览器窗口右边的距离两者同时存在时,只有left起作用;如果两者都未指定,则其左边将与原文档流位置一致,即水平保持位置不变。
在Position属性值为absolute的同时,如果有一级父对象(无论是父对象还是祖父对象,或者再高的辈分,一样)的Position属性值为Relative时,则上述的相对浏览器窗口定位将会变成相对父对象定位,这对精确定位是很有帮助的。
CSS 中 fixed 元素为什么会遮盖滚动条?
这两个滚动条不是同一个元素的滚动条,第一个是那个绝对定位的div的滚动条,第二个则是body的滚动条。从它们的黑色框线就能看出来区别啊。所以第二张图的蓝色框当然不会覆盖滚动条啊,因为那是body的滚动条。
而第一张图蓝色框覆盖滚动条很容易理解啊,定位元素是脱离文档流的,它们之间的前后关系是由z-index属性来决定的(如果z-index相同则按物理顺序),与它们物理上的包含(或者说父子)关系无关,而滚动条也是元素的组成部分,要覆盖那肯定是连滚动条也一起覆盖的,否则效果就会不伦不类的。
css中position的fixed属性使用
说明:fixed是以body为定位时的对象,总是根据浏览器的窗口来进行元素定位,通过"left""top""right""bottom“来进行定位
用法:
效果
此时拉动浏览器的上下滚条,层2在浏览器中的位置都不会发生变化