三列布局中間寬度自適應

admin發表於2018-09-09

三列布局的頁面效果很多,為了適應不同的解析度,通常兩邊的列寬度固定,中間寬度自適應。

首先看程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
body{
  margin: 0;
  padding: 0;
  font-size: 30px;
  font-weight: bold;
}
.left,
.main,
.right {
  text-align:center;
}
.left {
  width: 240px;
  height: 600px;
  background: #ccc;
  position: absolute;
  left: 0;
  top:0
}
.main {
  height: 600px;
  margin: 0 240px;
  background: #9CF
}
.right {
  width: 240px;
  height: 600px;
  position: absolute;
  top: 0;
  right: 0;
  background: #FCC;
}
</style>
</head>
<body>
  <div class="left">left</div>
  <div class="main">main</div>
  <div class="right">right</div>
</body>
</html>

上面實現了左右兩列寬度固定,中間寬度自適應的效果。

一.實現過程:

[CSS] 純文字檢視 複製程式碼
body{
  margin: 0;
  padding: 0;
  font-size: 30px;
  font-weight: bold;
}

將內外邊距都是設定為零0,設定字型大小和粗細,非常簡單,不用多說。

[CSS] 純文字檢視 複製程式碼
.left {
  width: 240px;
  height: 600px;
  background: #ccc;
  position: absolute;
  left: 0;
  top:0
}

將left元素設定為絕對定位,left屬性值設定為0,這樣left元素就能緊貼左壁。

無論網頁怎麼縮放,left元素都會緊貼著左壁;right元素緊貼右壁,原理是一樣的。

[CSS] 純文字檢視 複製程式碼
.main {
  height: 600px;
  margin: 0 240px;
  background: #9CF
}

首先main元素並沒有設定它的寬度,一個塊級元素預設狀態下會盡可能鋪滿它的父元素。

但是main元素設定設定了左右外邊距,並且這個值恰好是左右元素的寬度,於是不但實現了main元素寬度自適應,而且實現了它能夠緊鄰左右兩個元素的效果。

二.相關閱讀:

(1).position屬性參閱CSS position:absolute 絕對定位一章節。

相關文章