css 定位詳解介紹帶執行個體demo

來源:互聯網
上載者:User

CSS 相對定位

相對定位是一個非常容易掌握的概念。如果對一個元素進行相對定位,它將出現在它所在的位置上。然後,可以通過設定垂直或水平位置,讓這個元素“相對於”它的起點進行移動。

如果將 top 設定為 20px,那麼框將在原位置頂部下面 20 像素的地方。如果 left 設定為 30 像素,那麼會在元素左邊建立 30 像素的空間,也就是將元素向右移動。

 代碼如下 複製代碼
#box_relative {
  position: relative;
  left: 30px;
  top: 20px;
}

如下圖所示:

 

注意,在使用相對定位時,無論是否進行移動,元素仍然佔據原來的空間。因此,移動元素會導致它覆蓋其它框。

CSS 絕對位置

絕對位置使元素的位置與文檔流無關,因此不佔據空間。這一點與相對定位不同,相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。

普通流中其它元素的布局就像絕對位置的元素不存在一樣:

 代碼如下 複製代碼
#box_relative {
  position: absolute;
  left: 30px;
  top: 20px;
}

如下圖所示:

 

絕對位置的元素的位置相對於最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊。


通過這個demo可以快速地協助理解css的各種定位的問題.閑話不說,直接上代碼吧

 代碼如下 複製代碼

<!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>無標題文檔</title><style>
body
{margin: 30px; font-size:9pt;}
  
.a, .b, .c, .d, .e
{
width: 100px;
height: 100px;
margin: 5 auto;
color: #fff;
background: #000;
}
.aa, .bb, .cc, .dd, .ee
{
top: 10px;
left: 10px;
width: 10px;
height: 10px;
overflow: hidden;
background: #F90;
}
.b, .d, .e
{position: relative;}
.cc, .dd, .ee
{position: absolute;}
</style>
</head>
  
<body>
  
  
<div class="a">
<div class="aa"></div>
A:均不設定postion,一般嵌套關係
</div>
  
<div class="b">
<div class="bb"></div>
B:僅外div設定relative,一般嵌套關係
</div>
  
<div class="c">
<div class="cc"></div>
C:僅內div設定absolute,文檔中為嵌套關係,頁面中內div浮起[非float],相對於頁面定位,與外div無關。
</div>
  
<div class="d" style="background:#ff0000">
<div class="dd" ></div>
D:外div設定relative,內div設定absolute,內div浮起來並相對於外div定位
</div>
  
<div class="d" style="background:#ff0000">
<div class="dd" style="position:relative"></div>
D:外div設定relative,內div設定relative,內div浮起來並相對於外div定位
</div>
  
<div class="e">
<div class="ee" style="left: -10px;"></div>
E:這個是說明邊界問題。-10 != 反向10px間距
</div>
  
</body>
</html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.