不定寬+自適應
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 一同探討~