CSS position屬性absolute relative等五個(gè)值的解釋

目前幾乎所有主流的瀏覽器都支持position屬性("inherit"除外,"inherit"不支持所有包括IE8和之前版本IE瀏覽器,IE9、IE10還沒測試過),以下是w3school對(duì)position五個(gè)值的解釋:
其中absolute和relative是最常用的,fixed用得也比較多(其中IE6并不支持fixed)。
1、absolute(絕對(duì)定位)
absolute是生成覺對(duì)定位的元素,脫離了文本流(即在文檔中已經(jīng)不占據(jù)位置),參照瀏覽器的左上角通過top,right,bottom,left(簡稱TRBL) 定位??梢赃x取具有定位的父級(jí)對(duì)象(下文將說到relative與absolute的結(jié)合使用)或者body坐標(biāo)原點(diǎn)進(jìn)行定位,也可以通過z-index進(jìn)行層次分級(jí)。absolute在沒有設(shè)定TRBL值時(shí)是根據(jù)父級(jí)對(duì)象的坐標(biāo)作為始點(diǎn)的,當(dāng)設(shè)定TRBL值后則根據(jù)瀏覽器的左上角作為原始點(diǎ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" />
<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以瀏覽器左上角為原點(diǎn)),當(dāng)沒有設(shè)置TRBL時(shí)(沒有設(shè)置TRBL是以父級(jí)對(duì)象的坐標(biāo)為原點(diǎn)),即將div1改成如下代碼時(shí)
.div1{
width:200px;
height:200px;
background:#0099FF;
/*沒有設(shè)定TRBL*/
position:absolute;
}
則效果如下:
2、relative(相對(duì)定位)
relative是相對(duì)的意思,顧名思義就是相對(duì)于元素本身在文檔中應(yīng)該出現(xiàn)的位置來移動(dòng)這個(gè)元素,可以通過TRBL來移動(dòng)元素的位置,實(shí)際上該元素依然占據(jù)文檔中原有的位置,只是視覺上相對(duì)原來的位置有移動(dòng)。具體案例如下:
<!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ì)時(shí)經(jīng)常會(huì)用到浮動(dòng)來對(duì)頁面進(jìn)行布局,但是浮動(dòng)所帶來的不確定因素卻很多(例如:IE瀏覽器的兼容問題)。相對(duì)來說,在有些布局中定位使用會(huì)更加簡單、快捷、兼容性更好(relative與absolute相結(jié)合來使用),下面通過網(wǎng)頁中的一個(gè)實(shí)例(網(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="">團(tuán)隊(duì)文化</a></li>
<li><a href="">公司動(dòng)態(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后都會(huì)相對(duì)head進(jìn)行定位,而不是相對(duì)body定位。這樣相對(duì)于用浮動(dòng)來說就簡單方便了很多,也不需要擔(dān)心兼容問題。
相關(guān)文章
- positon有4個(gè)屬性:static relative absolute fixed,我們都知道absolute是絕對(duì)定位,relative是相對(duì)定位,但是這個(gè)絕對(duì)與相對(duì)是什么意思呢?絕對(duì)是什么地方的絕對(duì),相對(duì)又2014-11-28
css中定位中的absolute和relative是什么意思
做一些浮動(dòng)層等特殊特殊效果時(shí)要考慮到定位問題就要用到Position屬性,其有四個(gè)屬性值:static、fixed、absolute和relative,想必后面兩個(gè)大家都熟悉吧2014-04-15CSS中的position:relative;的作用示例介紹
CSS中的position:relative是控制元素相對(duì)定位的,relative 不脫離文檔流而absolute 脫離文檔流,relative 的元素盡管表面上看到它偏離了原來的位置,但它實(shí)際上在文檔流中2013-11-05css relative相對(duì)定位的top值在不同瀏覽器中使用js獲取的差異
relative是指相對(duì)于這個(gè)對(duì)象原來所在位置(參照)的值,下面為大家將講解下使用js獲取時(shí)在IE、chrome、oprea等瀏覽器中的區(qū)別,感興趣的朋友可以參考下2013-10-24css中position:relative和overflow:hidden之間的問題
在父標(biāo)簽中使用了overflow:hidden;時(shí),如果子標(biāo)簽中有元素的position設(shè)置成relative的時(shí)候,在IE6和IE7中父元素的overflow對(duì)其將不起作用,其實(shí)將父標(biāo)簽的position也設(shè)置成2013-09-04css中position屬性(absolute|relative|static|fixed)概述及應(yīng)用
position屬性的相關(guān)定義:static:無特殊定位,對(duì)象遵循正常文檔流;relative:對(duì)象遵循正常文檔流;absolute:對(duì)象脫離正常文檔流fixed:對(duì)象脫離正常文檔流,有興趣的朋友2013-04-08跨瀏覽器實(shí)現(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