溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css怎樣設(shè)置多列等高布局

發(fā)布時(shí)間:2020-10-26 13:54:06 來源:億速云 閱讀:121 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了css怎樣設(shè)置多列等高布局,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

初始時(shí),多個列內(nèi)容大小不同,高度不同?,F(xiàn)在需要設(shè)置不同的背景來顯示,而且各個列的高度需要保持一致。那么這就需要利用到多列等高布局。

css怎樣設(shè)置多列等高布局

最終需要的效果:

css怎樣設(shè)置多列等高布局

1. 真實(shí)等高布局

flex 技術(shù)點(diǎn):彈性盒子布局flex,默認(rèn)值就是自帶等高布局的特點(diǎn)。

定義flex布局的時(shí)候,有一些默認(rèn)值。

flex-direction 屬性定義主軸的方向。默認(rèn)值為 row ,一般是水平顯示。flex容器的主軸被定義為與文本方向相同。 主軸起點(diǎn)和主軸終點(diǎn)與內(nèi)容方向相同。

align-item 屬性定義flex子項(xiàng)在flex容器的當(dāng)前行的側(cè)軸(縱軸)方向上的對齊方式。默認(rèn)值為 stretch ,元素被拉伸以適應(yīng)容器。

<p class="box">
  <p class="left"></p>
  <p class="center"></p>
  <p class="right"></p>
</p>

css

.box {
  display: flex;
}
.left {
  width: 300px;
  background-color: grey;
}
.center {
  flex: 1;
  background: red;
}
.right {
  width: 500px;
  background: yellow;
}

See the Pen equal-hight-layout-flex by weiqinl ( @weiqinl ) on CodePen .

2. 真實(shí)等高布局

table-cell 技術(shù)點(diǎn):table布局天然就具有等高的特性。

display設(shè)置為 table-cell ,則此元素會作為一個表格單元格顯示。類似于使用標(biāo)簽 <td> 或者 <th> 。

HTML結(jié)構(gòu)

<p class="box">
  <p class="left"></p>
  <p class="center"></p>
  <p class="right"></p>
</p>

CSS樣式

.left {

  display: table-cell;

  width:30%;

  background-color: greenyellow;

}

.center {

  display: table-cell;

  width:30%;

  background-color: gray;

}

.right {

  display: table-cell;

  width:30%;

  background-color: yellowgreen;

}

3. 假等高列布局 內(nèi)外邊距底部正負(fù)值

實(shí)現(xiàn):設(shè)置父容器的overflow屬性為hidden。給每列設(shè)置比較大的底內(nèi)邊距,然后用數(shù)值相似的負(fù)外邊距消除這個高度。

  • 不考慮可擴(kuò)展性,只需要將padding-bottom/margin-bottom ,設(shè)置為最高列與最低列相差高度值,就可以得到等高效果。

  • 考慮擴(kuò)展性,為了防止將來可能某列高度大量的增加或減少,所有,我們設(shè)置了一個比較大的值。

技術(shù)點(diǎn)

  • background 會填充內(nèi)邊距 padding,而不會填充外邊距 margin 。margin具有坍塌性,可以設(shè)置負(fù)值。

  • float:left。使用float,元素會脫離文檔流,使其浮動至最近的文檔流元素。在這里的作用是,將三個p元素并排。

  • overflow:hidden; 設(shè)置overflow屬性為hidden,同時(shí)會產(chǎn)生 塊級格式化上下文(BFC),消除float帶來的影響。同時(shí),根據(jù)需要,會截取內(nèi)容以適應(yīng)填充框,將超出容器的部分隱藏。

HTML結(jié)構(gòu)

<p class="box">

  <p class="left"></p>

  <p class="center"></p>

  <p class="right"></p>

</p>

CSS

.box {
  overflow: hidden;
}
.box > p{
  /**
  * padding-bottom 設(shè)置比較大的正值。
  * margin-bottom 設(shè)置絕對值大的負(fù)值。
  **/
  padding-bottom: 10000px;
  margin-bottom: -10000px;
  float:left;
  width:30%;
}
.left {
  background-color: greenyellow;
}
.center {
  background-color: gray;
}
.right {
  background-color: yellowgreen;
}

4. 假等高布局,背景視覺效果

技術(shù)點(diǎn): float浮動,并設(shè)置每一列的寬度。設(shè)置父元素為行內(nèi)塊級元素,之后再利用線性漸變的圖片來設(shè)置父元素的背景凸顯等高的效果

CSS linear-gradient 函數(shù)用于創(chuàng)建一個表示兩種或多種顏色線性漸變的圖片。

display: inline-block ,設(shè)置為行內(nèi)塊級元素。

<p class="box five-columns">
    <p class="col"></p>
    <p class="col"></p>
    <p class="col"></p>
    <p class="col"></p>
    <p class="col"></p>
</p>

css

/** 需要自己算出平均每列的寬度 */

.box {

  display: inline-block;

  background: linear-gradient(

    to right, 

    red, 

    red 20%,

    blue 20%,

    blue 40%,

    yellow 40%,

    yellow 60%,

    orange 60%,

    orange 80%,

    grey 80%,

    grey);

} 

.col {

  float: left; 

  width: 16%;

  padding: 2%;

}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享css怎樣設(shè)置多列等高布局內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI