超級實用的CSS佈局方案之多列布局(三)

不定寬+自適應

1)使用float+overflow

(1)原理、用法
原理:這種情況與兩列定寬查不多。
用法:先將左框設置爲float:left、margin-right,再設置右框overflow: hidden,最後設置左框中的內容width。

(2)代碼實例
<div class="parent">
<div class="left">
<p>left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
</div>
</div>

.left{
float: left;
margin-right: 20px;
}

.right{
overflow: hidden;
}

.left p{
width: 200px;
}

(3)優缺點
優點:簡單
缺點:ie6下兼容性存在一定問題

2)使用table

(1)原理、用法
原理:通過將父框改變爲表格,將左右框轉換爲類似於同一行的td以達到多列布局,設置父框寬度100%,給左框子元素一個固定寬度從而達到自適應。
用法:先將父框設置爲display: table、width: 100%,再設置左、右框display: table-cell,最後設置左框width: 0.1%、padding-right以及左框中的內容width。

(2)代碼實例
<div class="parent">
<div class="left">
<p>left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
</div>
</div>

.parent{
display: table; width: 100%;
}

.left,.right{
display: table-cell;
}
.left{
width: 0.1%;
padding-right: 20px;
}

.left p{
width:200px;
}

(3)優缺點
缺點:ie6 ie7不支持

3)使用flex

(1)原理、用法
原理:通過設置CSS3佈局利器flex中的flex屬性以達到多列布局,加上給左框中的內容定寬、給右框設置flex達到不定款+自適應。
用法:先將父框設置爲display:flex,再設置右框flex:1,最後設置左框margin-right:20px、左框中的內容width。

(2)代碼實例
<div class="parent">
<div class="left">
<p>left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
</div>
</div>

.parent {
display:flex;
}

.left {
margin-right:20px;
}

.right {
flex:1;
}

.left p{
width: 200px;
}

(3)優缺點
優點:flex很強大
缺點:兼容性存在一定問題,性能存在一定問題

歡迎各位想學習前端開發的小夥伴加入藍軌跡WEB開發交流羣 143046757 一同探討~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章