
批改狀態(tài):合格
老師批語:總體來講寫的很不錯,繼續(xù)加油!
1.元素浮動后從文檔流中脫離出來(意思是它會釋放出它原來占據(jù)的空間);
2元素浮動后,它后面元素會自動填充到它原來的位置;
3浮動元素只會影響到它后面的元素布局,對前面沒有影響。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮動元素的高度塌陷與解決辦法</title>
<style>
.container{
border:3px dashed red;
}
.item{
width: 150px;
height: 150px;
}
.item:first-of-type{
background-color:lightgreen;
}
.item:nth-last-of-type(2){
background-color:lightcoral;
}
.item:last-of-type{
background-color:lightblue;
}
/* 給3個item都浮動會發(fā)現(xiàn)父元素包不住子元素了 */
.item{
float:left;
}
/* 解決辦法:
1給.container一個高度,這是很不好的,不要這么用
.container{
height:150px;
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
這樣做其實父元素內(nèi)部是空的,不建議這么做;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮動元素的高度塌陷與解決辦法</title>
<style>
.container{
border:3px dashed red;
}
.item{
width: 150px;
height: 150px;
}
.item:first-of-type{
background-color:lightgreen;
}
.item:nth-last-of-type(2){
background-color:lightcoral;
}
.item:last-of-type{
background-color:lightblue;
}
/* 給3個item都浮動會發(fā)現(xiàn)父元素包不住子元素了 */
.item{
float:left;
}
/* 2給父級也進行浮動,如果這個父級還有好多個父級會產(chǎn)生傳導(dǎo)效應(yīng),就很不好了 */
.container{
float:left;
}
</style>
</head>
<body>
<div class="main">
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</div>
</body>
</html>
結(jié)果:
會發(fā)現(xiàn)如果這個父元素還有它的父元素,那么它的父元素高度將會崩塌,如果有很多個父元素就更麻煩了,所以這也是不好的;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮動元素的高度塌陷與解決辦法</title>
<style>
.container{
border:3px dashed red;
}
.item{
width: 150px;
height: 150px;
}
.item:first-of-type{
background-color:lightgreen;
}
.item:nth-last-of-type(2){
background-color:lightcoral;
}
.item:last-of-type{
background-color:lightblue;
}
/* 給3個item都浮動會發(fā)現(xiàn)父元素包不住子元素了 */
.item{
float:left;
}
/* 解決辦法:
3添加一個專用元素用來清浮動,這樣對后面渲染也不好 */
.clear{
clear:both;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="clear"></div>
</div>
</body>
</html>
結(jié)果:
可以看到代碼亂掉了,要修正需要添加不少代碼,對后期渲染很不友好;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮動元素的高度塌陷與解決辦法</title>
<style>
.container{
border:3px dashed red;
}
.item{
width: 150px;
height: 150px;
}
.item:first-of-type{
background-color:lightgreen;
}
.item:nth-last-of-type(2){
background-color:lightcoral;
}
.item:last-of-type{
background-color:lightblue;
}
/* 給3個item都浮動會發(fā)現(xiàn)父元素包不住子元素了 */
.item{
float:left;
}
/* 解決辦法:
/* 4添加一個偽元素來解決 */
.container::after{
content:"";
display:block;
clear:both;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
結(jié)果
看著是可行的,但是和方法1是差不多的;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>浮動元素的高度塌陷與解決辦法</title>
<style>
.container{
border:3px dashed red;
}
.item{
width: 150px;
height: 150px;
}
.item:first-of-type{
background-color:lightgreen;
}
.item:nth-last-of-type(2){
background-color:lightcoral;
}
.item:last-of-type{
background-color:lightblue;
}
/* 給3個item都浮動會發(fā)現(xiàn)父元素包不住子元素了 */
.item{
float:left;
}
/* 解決辦法:
/* 5最簡單的解決辦法 用到BFC塊級格式化上下文*/
.container{
/* 可行1 */
overflow:auto;
/* 可行2 */
overflow:hidden;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
結(jié)果
可以看到這是最簡單的方法。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>三列布局-絕對定位實現(xiàn)</title>
<style>
/* 初始化 */
*{
margin:0;
padding:0;
box-sizing:border-box;
}
li{
list-style:none;
}
a{
text-decoration:none;
color:#666;
}
/* 頁頭頁腳基本樣式 */
.header, .floot{
height:40px;
background-color:lightblue;
}
/* 頁頭頁腳內(nèi)容區(qū)基本樣式 */
.content{
width:960px;
margin:auto;
}
/* 頁頭里的li的樣式 */
.content ul li{
float:left;
padding:0 15px;
/* line-height:行間距離,就是行高 */
line-height:40px;
}
.content ul li:hover{
background-color:coral;
}
/* 頁腳 */
.content p{
/* text-align水平對齊方式 */
text-align:center;
line-height:40px;
}
/* 內(nèi)容區(qū)用定位做 */
.container{
width:960px;
margin:10px auto;
/* 最小高度,以后寫頁面盡量用這樣的方式去寫,這樣頁面能撐開不會顯得丑 */
min-height:600px;
/* 轉(zhuǎn)為父級定位 */
position:relative;
}
.container>.left{
width:200px;
background-color:wheat;
min-height:600px;
position:absolute;
top:0;
left:0;
}
.container > .main{
width:540px;
background-color:lightgreen;
min-height:600px;
position:absolute;
top:0;
left:210px;
}
.container>.right{
width:200px;
background-color:wheat;
min-height:600px;
position:absolute;
top:0;
right:0;
}
</style>
</head>
<body>
<!-- 頁眉 -->
<div class="header">
<div class="content">
<ul>
<li><a href="">首頁</a></li>
<li><a href="">618主會場</a></li>
<li><a href="">聯(lián)系客服</a></li>
</ul>
</div>
</div>
<!-- 主體 -->
<div class="container">
<div class="left">左側(cè)</div>
<div class="main">內(nèi)容</div>
<div class="right">右側(cè)</div>
</div>
<!-- 頁腳 -->
<div class="floot">
<div class="content">
<p>php中文網(wǎng)©|備案號:蘇ICP備*******</p>
</div>
</div>
</body>
</html>
效果圖:
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號