最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

css浮動(dòng)中避免包含元素高度為0的4種解決方法

  發(fā)布時(shí)間:2013-03-04 15:26:50   作者:佚名   我要評(píng)論
當(dāng)一個(gè)元素只包含浮動(dòng)元素的時(shí)候,它會(huì)出現(xiàn)高度折疊,即元素的上下底邊重合,和高度為0效果一樣,針對(duì)這個(gè)問(wèn)題與大家分享四種解決方法,感興趣的你可以參考下本文或許對(duì)你更好的理解css有所幫助
當(dāng)一個(gè)元素只包含浮動(dòng)元素的時(shí)候,它會(huì)出現(xiàn)高度折疊(在火狐中是這樣,IE9不會(huì)),即元素的上下底邊重合,和高度為0效果一樣,下面是解決這個(gè)問(wèn)題的4種方法。
首先我么看最原始的情況,下面是代碼:

復(fù)制代碼
代碼如下:

<html>
<head>
<title>Float</title>
<style type = "text/css">
ul {
list-style-type: none;
width: 800px;
background: blue;
}
li {
float: left;
}
</style>
</head>
<body>
<ul>
<li><img src = "1.jpg" /></li>
<li><img src = "2.jpg" /></li>
<li><img src = "3.jpg" /></li>
<li><img src = "4.jpg" /></li>
<li><img src = "5.jpg" /></li>
<li><img src = "6.jpg" /></li>
</ul>
</body>
</html>

運(yùn)行結(jié)果:
 
本來(lái)ul的背景色被設(shè)置成blue,但是由于它出現(xiàn)了高度折疊,所以看不到背景色。
1 給包含元素設(shè)置高度height
最直接的辦法是給包含元素設(shè)置一個(gè)高度,在本例中就是給ul標(biāo)簽添加height屬性,添加后的代碼如下:

復(fù)制代碼
代碼如下:

ul {
list-style-type: none;
width: 800px;
background: blue;
height: 300px; /*添加高度屬性*/
}

但是這種方法有一個(gè)缺點(diǎn),就是包含元素的高度不能自適應(yīng)內(nèi)容。比如我們?cè)谔砑佣鄠€(gè)列表項(xiàng),那么高度又不夠了。
2 利用overflow屬性
可以包含元素設(shè)置overflow屬性,并設(shè)置屬性值為auto或者h(yuǎn)idden,添加后的代碼如下:

復(fù)制代碼
代碼如下:

ul {
list-style-type: none;
width: 800px;
background: blue;
overflow: hidden; /*添加overflow屬性,可以設(shè)置為auto或者h(yuǎn)idden*/
}

這種方式?jīng)]有直接設(shè)置height屬性的限制,但是當(dāng)包含元素的overflow屬性必須設(shè)置為visible時(shí),這種方法失效。
3 添加一個(gè)空的div
這種方法是添加一個(gè)空的div,這個(gè)div和浮動(dòng)元素同一級(jí)別,且位于浮動(dòng)元素的最后。這種方法要改動(dòng)兩個(gè)地方,一個(gè)是html代碼,另一個(gè)是必須要為這個(gè)div添加一個(gè)clear屬性:

復(fù)制代碼
代碼如下:

<html>
<head>
<title>Float</title>
<style type = "text/css">
ul {
list-style-type: none;
width: 800px;
background: blue;
}
li {
float: left;
}
/*為添加的空div設(shè)置的樣式*/
.clearDiv {
clear: both;
}
</style>
</head>
<body>
<ul>
<li><img src = "1.jpg" /></li>
<li><img src = "2.jpg" /></li>
<li><img src = "3.jpg" /></li>
<li><img src = "4.jpg" /></li>
<li><img src = "5.jpg" /></li>
<li><img src = "6.jpg" /></li>
<div class = "clearDiv"></div> <!--新添加的空div,它和浮動(dòng)元素同一級(jí)別,且位于最后-->
</ul>
</body>
</html>

這種方法雖然也能解決高度問(wèn)題,但是卻引入了一個(gè)多余的標(biāo)簽div,它這里并不具有實(shí)際意義,它的作用只是撐開(kāi)ul標(biāo)簽而已。
4 利用偽元素:after
用這種方法時(shí)要為包含元素先添加一個(gè)類名,這里為ul標(biāo)簽設(shè)置的類名.clearUl,代碼如下:

復(fù)制代碼
代碼如下:

<html>
<head>
<title>Float</title>
<style type = "text/css">
ul {
list-style-type: none;
width: 800px;
background: blue;
}
li {
float: left;
}
/*利用:after偽元素*/
.clearUl:after {
content:"";
display: block;
clear: both;
}
</style>
</head>
<body>
<ul class = "clearUl"> <!--為包含的外圍元素設(shè)置類-->
<li><img src = "1.jpg" /></li>
<li><img src = "2.jpg" /></li>
<li><img src = "3.jpg" /></li>
<li><img src = "4.jpg" /></li>
<li><img src = "5.jpg" /></li>
<li><img src = "6.jpg" /></li>
</ul>
</body>
</html>

在:after為元素里面用到了content屬性,這樣這條樣式的意思是在ul元素后面生成指定的內(nèi)容,這里生成的內(nèi)容是一個(gè)空字符串,因?yàn)橹皇亲屗鼇?lái)消除ul標(biāo)簽的高度折疊,并不讓它顯示出來(lái)。還有,這條樣式里有display屬性,要將他設(shè)置成block,這樣clear屬性才會(huì)起作用,因?yàn)榍宄僮髦蛔饔糜趬K級(jí)元素,它的原理是為要執(zhí)行清除操作的元素添加上邊距,以此讓元素降到浮動(dòng)元素的下面,而操作行內(nèi)元素的上邊距不起作用。

相關(guān)文章

最新評(píng)論

买车| 瑞安市| 页游| 永康市| 镶黄旗| 米林县| 长葛市| 宁津县| 盱眙县| 安福县| 镇雄县| 双江| 临邑县| 溧水县| 宝山区| 封开县| 曲松县| 承德市| 南汇区| 介休市| 洪泽县| 安泽县| 马公市| 得荣县| 武汉市| 徐州市| 千阳县| 上思县| 陆川县| 开鲁县| 房产| 巴中市| 云霄县| 浪卡子县| 沽源县| 铜梁县| 武义县| 增城市| 博客| 民县| 柯坪县|