CSS position屬性absolute relative等五個值的解釋
目前幾乎所有主流的瀏覽器都支持position屬性("inherit"除外,"inherit"不支持所有包括IE8和之前版本IE瀏覽器,IE9、IE10還沒測試過),以下是w3school對position五個值的解釋:

其中absolute和relative是最常用的,fixed用得也比較多(其中IE6并不支持fixed)。
1、absolute(絕對定位)
absolute是生成覺對定位的元素,脫離了文本流(即在文檔中已經(jīng)不占據(jù)位置),參照瀏覽器的左上角通過top,right,bottom,left(簡稱TRBL) 定位??梢赃x取具有定位的父級對象(下文將說到relative與absolute的結(jié)合使用)或者body坐標(biāo)原點進(jìn)行定位,也可以通過z-index進(jìn)行層次分級。absolute在沒有設(shè)定TRBL值時是根據(jù)父級對象的坐標(biāo)作為始點的,當(dāng)設(shè)定TRBL值后則根據(jù)瀏覽器的左上角作為原始點。具體案例如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>position:absolute定位</title>
<style type="text/css">
html,body,div{
margin:0;
padding:0;
list-style:none;
}
.center{
margin:30px;
border:#999999 solid 10px;
width:400px;
height:300px;
}
.div1{
width:200px;
height:200px;
background:#0099FF;
/*設(shè)定TRBL*/
position:absolute;
left:0px;
top:0px;
}
.div2{
width:400px;
height:300px;
font-size:30px;
font-weight:bold;
color:#fff;
background:#FF0000;
}
</style>
</head>
<body>
<div class="center">
<div class="div1"></div>
<div class="div2">position:absolute定位測試</div>
</div>
</body>
</html>
這段代碼產(chǎn)生的效果如下:

這是設(shè)定TRBL之后的效果(設(shè)置TRBL以瀏覽器左上角為原點),當(dāng)沒有設(shè)置TRBL時(沒有設(shè)置TRBL是以父級對象的坐標(biāo)為原點),即將div1改成如下代碼時
.div1{
width:200px;
height:200px;
background:#0099FF;
/*沒有設(shè)定TRBL*/
position:absolute;
}
則效果如下:

2、relative(相對定位)
relative是相對的意思,顧名思義就是相對于元素本身在文檔中應(yīng)該出現(xiàn)的位置來移動這個元素,可以通過TRBL來移動元素的位置,實際上該元素依然占據(jù)文檔中原有的位置,只是視覺上相對原來的位置有移動。具體案例如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>position:relative定位</title>
<style type="text/css">
html,body,div{
margin:0;
padding:0;
list-style:none;
}
.center{
margin:30px;
border:#999999 solid 10px;
width:400px;
height:300px;
background:#FFFF00;
}
.div1{
width:200px;
height:150px;
background:#0099FF;
position:relative;
top:-20px;
left:0px;
}
.div2{
width:400px;
height:150px;
font-size:30px;
font-weight:bold;
color:#fff;
background:#FF0000;
}
</style>
</head>
<body>
<div class="center">
<div class="div1"></div>
<div class="div2">position:relative定位測試</div>
</div>
</body>
</html>
代碼產(chǎn)生的效果如下:

3、relative與absolute的結(jié)合使用
在網(wǎng)頁設(shè)計時經(jīng)常會用到浮動來對頁面進(jìn)行布局,但是浮動所帶來的不確定因素卻很多(例如:IE瀏覽器的兼容問題)。相對來說,在有些布局中定位使用會更加簡單、快捷、兼容性更好(relative與absolute相結(jié)合來使用),下面通過網(wǎng)頁中的一個實例(網(wǎng)頁中的head部分)進(jìn)行說明,具體代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html,body,div,ul,li,a{
margin:0;
padding:0;
list-style:none;
}
a, a:hover{
color:#000;
border:0;
text-decoration:none;
}
#warp,#head,#main,#foot
{
width: 962px;
}
/*設(shè)置居中*/
#warp{
margin: 0 auto;
}
#head{
height:132px;
position:relative;
}
.logo{
position:absolute;
top:17px;
}
.head_pic{
position:absolute;
top:17px;
left:420px;
}
.sc{
position:absolute;
right:5px;
top:12px;
}
.sc a{
padding-left:20px;
color:#666;
}
.nav{
width:960px;
height:42px;
line-height:42px;
position:absolute;
bottom:0px;
background:url(img/nav_bj.jpg) no-repeat center;
}
.nav ul{
float:left;
padding:0 10px;
}
.nav li{
float:left;
background:url(img/li_bj.jpg) no-repeat right center;
padding-right:40px;
padding-left:20px;
text-align:center;
display:inline;
}
.nav li a{
font-size:14px;
font-family:Microsoft YaHei !important;
white-space:nowrap;
}
.nav li a:hover{
color:#FBECB7;
}
</style>
<title></title>
</head>
<body>
<div id="warp">
<div id="head">
<div class="logo"><img src="img/logo.jpg" /></div>
<div class="head_pic"><img src="img/head_pic.jpg" /></div>
<div class="sc">
<a href=""><img src="img/sc_btn.jpg" /></a>
<a href=""><img src="img/sy_btn.jpg" /></a>
<a href=""><img src="img/kf_btn.jpg" /></a>
</div>
<div class="nav">
<ul>
<li><a href="">首頁</a></li>
<li><a href="">關(guān)于我們</a></li>
<li><a href="">團隊文化</a></li>
<li><a href="">公司動態(tài)</a></li>
<li><a href="">資訊參考</a></li>
<li><a href="">業(yè)務(wù)中心</a></li>
<li><a href="">合作銀行</a></li>
<li><a href="">聯(lián)系我們</a></li>
</ul>
</div>
</div>
<div id="main"></div>
<div id="foot"></div>
</div>
</body>
</html>
效果如下圖:

在上述代碼中首先是給head設(shè)置relative定位,那么可以看到里面所有的子元素在設(shè)置absolute后都會相對head進(jìn)行定位,而不是相對body定位。這樣相對于用浮動來說就簡單方便了很多,也不需要擔(dān)心兼容問題。
相關(guān)文章
- positon有4個屬性:static relative absolute fixed,我們都知道absolute是絕對定位,relative是相對定位,但是這個絕對與相對是什么意思呢?絕對是什么地方的絕對,相對又2014-11-28
css中定位中的absolute和relative是什么意思
做一些浮動層等特殊特殊效果時要考慮到定位問題就要用到Position屬性,其有四個屬性值:static、fixed、absolute和relative,想必后面兩個大家都熟悉吧2014-04-15CSS中的position:relative;的作用示例介紹
CSS中的position:relative是控制元素相對定位的,relative 不脫離文檔流而absolute 脫離文檔流,relative 的元素盡管表面上看到它偏離了原來的位置,但它實際上在文檔流中2013-11-05css relative相對定位的top值在不同瀏覽器中使用js獲取的差異
relative是指相對于這個對象原來所在位置(參照)的值,下面為大家將講解下使用js獲取時在IE、chrome、oprea等瀏覽器中的區(qū)別,感興趣的朋友可以參考下2013-10-24css中position:relative和overflow:hidden之間的問題
在父標(biāo)簽中使用了overflow:hidden;時,如果子標(biāo)簽中有元素的position設(shè)置成relative的時候,在IE6和IE7中父元素的overflow對其將不起作用,其實將父標(biāo)簽的position也設(shè)置成2013-09-04css中position屬性(absolute|relative|static|fixed)概述及應(yīng)用
position屬性的相關(guān)定義:static:無特殊定位,對象遵循正常文檔流;relative:對象遵循正常文檔流;absolute:對象脫離正常文檔流fixed:對象脫離正常文檔流,有興趣的朋友2013-04-08跨瀏覽器實現(xiàn)float:center-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學(xué)網(wǎng)
原文: http://www.macji.com/blog/article/to-achieve-cross-browser-css-float-center/to-achieve-cross-browser-css-float-center/ 我們都知道float:left和float:rig2008-10-17css 使用relative設(shè)置top為百分比值的方法(仿百度首頁)
最近在學(xué)習(xí)HTML、CSS的過程中,想模仿一下百度首頁。發(fā)現(xiàn)搜索框這一部分與上下其它元素的空白距離可以隨著窗口大小變化,下面小編給大家?guī)砹薱ss 使用relative設(shè)置top為百2018-02-27

