1. 程式人生 > >CSS定位使用方法

CSS定位使用方法

網頁 abs 好用 absolut position 並不會 區域 css 元素

  對於網頁頁面布局來說,使用定位可以簡單粗暴地將各塊區域布置好,並且實現多種特效。

  絕對定位:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box0{  width: 200px; height: 200px; position: relative;background: #cfa }
            .box0-1,.box0-2
{ width: 50px; height: 50px; } .box0-1{ position:absolute; left: 50px; top: 50px; background: #567 } .box0-2{ position:absolute; left: 50px; top: 50px; background: #5a2} </style> </head> <body> <div class="box0"> <div class="box0-1"
>0-1</div> <div class="box0-2">0-2</div> </div> </body> </html>

  結果如下:

0-1 0-2

  需要註意的是,使用絕對定位調整元素在父級元素區域位置時,父級元素必須為非靜態定位,否則子元素會往上級找到非靜態的祖先元素,再依據其位置進行定位。

  如果不適用定位,要實現這樣的效果,需要使用CSS屬性為:

.box0{  width: 200px; height: 200px;background: #cfa; overflow: hidden }
.box0-1,.box0-2{  width: 50px; height: 50px; }
.box0-1{  margin: 50px 0 0 50px;  }
.box0-2{  margin: 0 50px 0 100px; }

  使用邊距和浮動是一個計算的過程,需要把握好每一個像素之間的關系。而使用絕對定位就是單純的找位置,只要量得住,那就找的準,直接粗暴。需要註意的是,絕對定位的元素脫離了標準文檔流,其本身的位置並不會保留,所以不能和浮動同時使用。並且也不建議和margin一起使用。

  對於相對定位來說,由於元素本身的位置並不會消失,所以配合浮動更加好用,否則使用絕對定位更方便。

  如下(便於觀察,兩個小塊設置100的上外邊距,此時原本位置應從下方3/4開始):

  

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box1{  width: 200px; height: 200px; background: #abc }
            .box1-1,.box1-2{ width: 50px; height: 50px; margin-top: 100px; float: left; position: relative; }
            .box1-1{  top: 50px; left: 50px; background: #a2c; }
            .box1-2{  bottom: 50px; right: 50px; background: #22c; }
        </style>
    </head>
    <body>
    <div class="box1">
        <div class="box1-1">1-1</div>
        <div class="box1-2">1-2</div>
    </div>
    </body>
</html>

  結果如下:

1-1 1-2

  相對定位的相對,就是指沒有設置定位值,元素所在的位置,根據代碼順序,後者會對前者內容進行覆蓋。

  絕對定位就是牛皮蘚,固定在顯示區域的位置,此時固定是針對顯示區域而言,對於絕對定位,也不能和浮動使用,同樣不建議與margin使用。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box2{  width: 200px; height: 200px; background: #ca9 }
            .box2-1{ width: 50px; height: 50px;   position: fixed; }
            .box2-1{  top: 50px; left: 50px; background: #4b3; }
        </style>
    </head>
    <body>
    <div class="box2">
        <div class="box2-1">我被固定了</div>
    </div>
    </body>
</html>

  結果自己找吧:

  結果不是根據父級元素定位的,顯示不出(和上一篇的旋轉一樣)暫時不知道為什麽。

  總之,不同的定位方式有不同的作用,使用定位的目的是讓代碼簡潔直觀,所以具體使用哪一種應當根據實際情況而定。

CSS定位使用方法