使用CSS的overflow屬性防止float撐開div的方法

許多應(yīng)征前端工程師的人,在面試時(shí)都會(huì)被問到這類float的問題。
例如:div元素內(nèi)的兩個(gè)子元素p都float:left,外面的div會(huì)變成沒有高度,此時(shí)該怎么辦呢?
通常解法是在排版流里面的元素加一個(gè)after的偽元素,將它設(shè)成display: block以及clear:both即可解決。
- div:after {content: "";display: block;clear: both;}
不過我今天意外發(fā)現(xiàn),原來(lái)overflow: hidden;也會(huì)撐開div呀!如下:
長(zhǎng)知識(shí)了。
- <body>
- <div>
- <p>I am floated</p>
- <p>So am I</p></div><style>div {
- overflow: hidden;}p {
- float: left;}</style>
深入
讓我們繼續(xù)深入,來(lái)看下面的例子:
編寫如下代碼,查看效果
HTML代碼:
- <div class="content">
- <div class="div1">
- </div>
- </div>
CSS代碼:
- .content {
- border: 1px solid red;
- }
- .div1 {
- width: 100px;
- height: 100px;
- background-color: cyan;
- }
效果如下:
在content中添加一個(gè)div1,并設(shè)置了content標(biāo)簽的邊框和div1標(biāo)簽的大小和顏色,看到content標(biāo)簽把div1標(biāo)簽包裹起來(lái)了。并且還撐起了content標(biāo)簽的大小
但,當(dāng)我們?cè)O(shè)置了div1向右浮動(dòng)的屬性之后
- .div1 {
- width: 100px;
- height: 100px;
- background-color: cyan;
- float: rightright;
- }
就會(huì)變成這個(gè)樣子:
div1標(biāo)簽確實(shí)右對(duì)齊了,但是并沒有撐起content標(biāo)簽的高度。
莫著急,我們需要設(shè)置一個(gè)屬性,就是給content標(biāo)簽,添加overflow屬性
添加屬性 (overflow: hidden;)
- .content {
- border: 1px solid red;
- overflow: hidden;
- }
添加完之后,效果就成了這樣
相關(guān)文章
css 設(shè)置overflow:scroll 滾動(dòng)條的樣式
這篇文章主要介紹了css 設(shè)置overflow:scroll 滾動(dòng)條的樣式 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-25CSS中overflow-y: visible;不起作用的原因分析及解決方法
小編最近遇到這樣的需求,移動(dòng)端的h5頁(yè)面,要求有一排可選擇的卡片, 超出容器部分可以左右滑動(dòng),同時(shí)每張卡片左上角要有一個(gè)刪除按鈕。接下來(lái)通過本文給大家介紹CSS中overf2018-09-13深入理解CSS overflow:hidden——溢出,坍塌,清除浮動(dòng)
這篇文章主要介紹了深入理解CSS overflow:hidden——溢出,坍塌,清除浮動(dòng)的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-08-03
詳解CSS中zoom屬性或overflow:auto屬性清除浮動(dòng)的作用
css 給div添加滾動(dòng)并隱藏滾動(dòng)條