CSS positon屬性

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


其中absolute和relative是最常用的,fixed用得也比較多(其中IE6并不支持fixed)。
1、absolute(絕對定位)
absolute是生成絕對定位的元素,脫離了文本流(即在文檔中已經不占據位置),參照瀏覽器的左上角通過top,right,bottom,left(簡稱TRBL)定位。可以選取具有定位的父級對象(下文將說到relative與absolute的結合使用)或者body坐標原點進行定位,也可以通過z-index進行層次分級。absolute在沒有設定TRBL值時是根據父級對象的坐標作為始點的,當設定TRBL值后則根據瀏覽器的左上角作為原始點。具體案例如下:

<!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;
            /*設定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>```

這段代碼產生的效果如下:
![](http://upload-images.jianshu.io/upload_images/3832208-fb553300b73ec832.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
這是設定TRBL之后的效果(設置TRBL以瀏覽器左上角為原點),當沒有設置TRBL時(沒有設置TRBL是以父級對象的坐標為原點),即將div1改成如下代碼時
```.div1{
            width:200px;
            height:200px;
            background:#0099FF;
            /*沒有設定TRBL*/
            position:absolute;
    }```
則效果如下:
![](http://upload-images.jianshu.io/upload_images/3832208-d0b45817b33073ca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
** 2、relative(相對定位)**
relative是相對的意思,顧名思義就是相對于元素本身在文檔中應該出現的位置來移動這個元素,可以通過TRBL來移動元素的位置,實際上該元素依然占據文檔中原有的位置,只是視覺上相對原來的位置有移動。具體案例如下:

<!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>```
代碼產生的效果如下:


本文內容借鑒CSS position屬性和實例應用,感謝作者。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,805評論 1 92
  • CSS的position總是屬性很容易讓人弄混~ 為了仔細區別它們,所以今天總結一下CSS的position屬性~...
    fehysunny閱讀 2,956評論 0 7
  • 在CSS中關于定位的內容是:position:relative | absolute | static | fix...
    feelinghappy618閱讀 657評論 0 0
  • 學習建議 定位、浮動是 CSS 核心知識點,必須熟練掌握。 1.文檔流的概念指什么?有哪種方式可以讓元素脫離文檔流...
    饑人谷_任磊閱讀 1,120評論 0 3
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,805評論 0 2