css常見自適應布局
1.兩列布局,左側寬度固定,右側寬度自適應
1.1.左側進行浮動,右側設置margin-left
/* 1.利用浮動進行布局*/
.left {
float: left;
width: 200px;
height: 200px;
background-color: cornflowerblue;
}
.right {
margin-left: 200px;
height: 200px;
background-color: bisque;
}
<div class="left"></div>
<div class="right"></div>
1.2.利用絕對定位來代替浮動
/* 2.利用絕對定位進行布局*/
.wrap {
position: relative;
}
.left {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 200px;
background-color: cornflowerblue;
}
.right {
margin-left: 200px;
height: 200px;
background-color: bisque;
}
<div class="wrap">
<div class="left"></div>
<div class="right"></div>
</div>
2.兩列布局,右側寬度固定,左側寬度自適應
2.1.利用浮動進行布局
/* 1.利用浮動進行布局*/
.left {
margin-right: 200px;
height: 200px;
background-color: cornflowerblue;
}
.right {
float: right;
width: 200px;
height: 200px;
background-color: bisque;
}
<div class="right"></div>
<div class="left"></div>
注:right要寫在left的前面,否則會出現如下問題。然后百度了下,終于找到了如下一段話(首先要明白浮動元素只對后面元素有影響,浮動元素本身并不浮動,只是脫離文檔流,后面的元素會上移而占據浮動元素的位置。所以按你說的話,就要利用負邊距把浮動元素拉高才能完成。)。
2.2.利用絕對定位進行布局
/* 2.利用絕對定位進行布局*/
.wrap {
position: relative;
}
.left {
margin-right: 200px;
height: 200px;
background-color: cornflowerblue;
}
.right {
position: absolute;
top: 0;
right: 0;
width: 200px;
height: 200px;
background-color: bisque;
}
<div class="wrap">
<div class="left"></div>
<div class="right"></div>
</div> 3.三列布局,中間寬度固定,兩側寬度自適應
/* 1.常規實現方式*/
.left,
.right {
width: 50%;
height: 200px;
background-color: cornflowerblue;
}
.left {
margin-left: -300px;
float: left;
}
.right {
margin-right: -300px;
float: right;
}
.center {
margin: 0 auto;
width: 600px;
height: 200px;
background-color: bisque;
}
<div class="right"></div>
<div class="left"></div>
<div class="center"></div>
4.三列布局,中間寬度自適應,兩側寬度固定
4.1.利用浮動實現
/* 1.浮動實現方式*/
.left,
.right {
width: 300px;
height: 200px;
background-color: cornflowerblue;
}
.left {
float: left;
}
.right {
float: right;
}
.center {
margin: 0 300px;
height: 200px;
background-color: bisque;
}
<div class="right"></div>
<div class="left"></div>
<div class="center"></div>
4.2.利用絕對定位實現
/* 2.絕對定位方式實現*/
.left,
.right {
position: absolute;
top: 0;
width: 300px;
height: 200px;
background-color: cornflowerblue;
}
.left {
left: 0;
}
.right {
right: 0;
}
.center {
margin: 0 300px;
height: 200px;
background-color: bisque;
}
<div class="right"></div>
<div class="left"></div>
<div class="center"></div> 5.兩列,左右等高顯示 .wrap {
overflow: hidden;
}
.left,
.right {
margin-bottom: -10000px;
padding-bottom: 10000px;
}
.left {
background-color: cornflowerblue;
}
.right {
float: right;
width: 400px;
background-color: bisque;
}
<div class="wrap">
<div class="right">
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
</div>
<div class="left">
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p> <p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p> <p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>
<p>10. 是否忘記了寫DTD?</p>定width屬性。另外指定元素時盡量使用em而不是px做單位。</p>
</div>
</div>注:以上例子均是在清除了默認樣式的情況下進行的
* {
margin: 0;
padding: 0;
color: #fff;
}
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
注:以上例子均是在清除了默認樣式的情況下進行的