父元素寬度一定,子元素完美均分父級寬度

2021-10-01 10:53:21 字數 2253 閱讀 9420

我們都是愛美的生物,大多數要求對乙個東西進行分割時,我們都會盡可能的均分它。在頁面中,乙個div盒子有的固定畫素寬度,有的為百分比。如何能很好的均分乙個div呢?

以下將提供五個均分父元素的方法,其中 方法四flex布局為常用

先提供原始**及其展示:

為了展示有所區別,便於觀察,新增了padding,不同的子元素新增不同的border顏色

html:

class

="child"

>

child1div

>

class

="child"

>

child2div

>

class

="child"

>

child3div

>

div>

css:

.farther

.farther div:nth-of-type(1)

.farther div:nth-of-type(2)

.farther div:nth-of-type(3)

原始效果為:

下面我們將child1,child2,child3實現均分父盒子的寬度

所需要實現的效果:

將子元素依次左浮動,根據子元素的個數,設定每個子元素的寬度百分比,如100/3=33.3%

注意:!子元素浮動會造成 高度坍塌 ,需要對父元素使用overflow:hidden;

!當設定了border或其他值後,子元素的寬度將 大於 所設定的寬度,還需要設定box-sizing:border-box

css**:

.farther div

.farther

類似於方法一,完美均分時子元素需要設定box-sizing:border-box,但是此方法不會造成高度坍塌

css**:

.farther div

但是設定為inline-block後,元素之間會產生乙個 空白間隙 ,使之無法均分父元素,如圖

**這時候簡單粗暴的方法為更改html** 不換行 **

class

="farther"

>

class

="child"

>

child1div

>

class

="child"

>

child2div

>

class

="child"

>

child3div

>

div>

這樣就能實現沒有空白,當然也有別的方法解決inline-block的留白。

不會造成高度坍塌,也不用設定box-sizing,但是對父元素的寬度有所設定。不然父元素的寬度只會為子元素的長度之和。

css**:

.farther

.farther div

如今flex布局能夠滿足99%所想要的布局效果,並且為彈性布局,很方便!

css**:

.farther div

.farther

首先需要引入bootstrap相關資源,在柵格系統中會將一行等分為12份,col-md-4為佔4/12

class

="farther"

>

class

="child col-md-4"

>

child1div

>

class

="child col-md-4"

>

child2div

>

class

="child col-md-4"

>

child3div

>

div>

CSS 父元素寬度自適應子元素寬度之和

直接新增 width max content 宣告就 ok,之前太單純了。最近碰見這樣乙個需求,要讓橫向排列設定 x 方向的滾動條滾動檢視,原本當直接建立乙個 ifc inline,float 什麼的 就解決了,搞了半天發現搞不定 ifc 也是不能父元素寬度自適應子元素寬度之和的,因為會換行。最後用...

清除上外邊距溢位和浮動對父元素寬度的影響

上外邊距溢位 父元素沒有邊框border,子元素設定了上外邊距,此時就會出現上外邊距溢位,本該子元素設定了上外邊距,結果卻是沒有體現出來,反而父元素上多了子元素設定的上外邊距 解決方案 在父元素新增類clearmargin top clearmargin top before浮動對父元素寬度的影響 ...

css選中父元素下的第乙個子元素

最近在專案中用到 first child很容易的就想到了,嗯嗯。這不就是選擇第乙個元素嗎?好像很好用,平時使用中也沒有遇到什麼問題,理所當然的就以為它只會選中父元素下的第乙個元素,對孫元素和曾孫元素沒有影響。事實證明,我的理所當然是錯的。body p first child style head 這...