元素的定位

1元素的定位属性

制作网页时,如果希望元素出现在某个特定的位置,就需要使用定位属性对元素进行确定位。元素的定位就是将元素放置在页面的指定位置,主要包括定位模式和边偏移两部分。

1.1定位模式

在CSS中, position属性用于定义元素的定位模式,其基本语法格式如下。
选择器{ position:属性值;}

在上面的语法中,position属性常用值有四个,分别表示不同的定位模式,具体如下表。

描述
static 静态定位(默认定位方式)
relative 相对定位,其对于其原文档流的位置进行定位
absolute 绝对定位,相对于其上一个已经定位的父元素进行定位
fixed 固定定位,相对于浏览器窗口进行定位

 

 

 

 

 

 

从表中可以看出,定位的方法有多种,分别为静态定位( statc)、相对定位( relative)、绝对定位( absolute)及固定定位(fxed),后面将对它们进行详细讲解。

1.2边偏移

定位模式( position)仅仅用于定义元素以哪种方式定位,并不能确定元素的具体位置。在CSs中,通过边偏移属性top、 bottom、left或right来精确定义定位元素的位置,具体解释如下:

边偏移属性 描述
top 顶端偏移量,定义元素相对于其父元素上边线的距离
bottom 底部偏移量,定义元素相对于其父元素下边线的距离
left 左侧偏移量,定义元素相对于其父元素左边线的距离
right 右侧偏移量,定义元素相对于其父元素右边线的距离

 

 

 

 

 

 

从表中可以看出,边偏移可以通过top、bottom、left、right进行设置,其取值为不同单位的数值或百分比,示例如下:

position:relative;  /*相对定位*/
left:50px;      /*距左边线50px*/
top:10px;      /*距上边线10px*/

2.静态定位 static

静态定位是元素的默认定位方式,当 position属性的取值为static时,可以将元素定位于静态位置。所谓静态位置就是各个元素在HTML文档流中默认的位置。

任何元素在默认状态下都会以静态定位来确定自己的位置,所以当没有定义 position属性时,并不说明该元素没有自己的位置,它会遵循默认值显示为静态位置。在静态定位状态下无法通过边偏移属性(top、 bottom、left或 right)来改变元素的位置。

3 相对定位relative

相对定位是将元素相对于它在标准文档流中的位置进行定位,当 position属性的取值为relative时,可以将元素定位于相对位置。对元素设置相对定位后,可以通过边偏移属性改变元素的位置,但是它在文档流中的位置仍然保留。

下面演示一个例子:

 

效果:

 

4 绝对定位 absolute

绝对定位是将元素依据最近的已经定位(绝对、固定或相对定位)的父元素进行定位,若所有父元素都没有定位,则依据body根元素(浏览器窗口)进行定位。当 position属性的取值为 absolute时,可以将元素的定位模式设置为绝对定位。
下面在上例的基础上,将 child-02的定位模式设置为绝对定位,即将.child02代码更改如下。

 效果图:

在图中,设置为绝对定位的元素 child02,依据浏览器窗口进行定位。并且,这时child03占据了 child02的位置,即 child2脱离了标准文档流的控制,不再占据标准文档流中的空间。

在上面的案例中,对 child02设置了绝对定位,当浏览器窗口放大或缩小时, child02相对于其直接父元素的位置都将发生变化。当缩小浏览器窗口时,页面将呈现下图所示效果:

很明显 child02相对于其直接父元素的位置发生了变化。

然而在网页中,一般需要子元素相对于其直接父元素的位置保持不变,即子元素依据其直接父元素绝对定位,如果直接父元素不需要定位,该怎么办呢?

对于上述情况,可将直接父元素设置为相对定位,但不对其设置偏移量,然后再对子元素应用绝对定位,并通过偏移属性对其进行精确定位。这样父元素既不会失去其空间,同时还能保证子元素依据直接父元素准确定位。

下面通过一个案例来演示子元素依据其直接父元素准确定位的方法:

效果图:

注意:

(1)如果仅设置绝对定位,不设置边偏移,则元素的位置不变,但其不再占用标准文档流中的空间,与上移的后续元素重叠。

(2)定义多个边偏移属性时,如果left和 right冲突,以left为准,top和bottom冲突,以top为准

5 固定定位

元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动。

注意:

Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。

Fixed定位使元素的位置与文档流无关,因此不占据空间。

Fixed定位的元素和其他元素重叠。

6 z-index 层叠等级属性

z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

注意:Z-index 仅能在定位元素上奏效(例如 position:absolute;)!

效果图:

 

posted @ 2021-12-24 14:46  wenwenfff  阅读(482)  评论(0编辑  收藏  举报