首頁  >  文章  >  web前端  >  css flex-shrink屬性怎麼用

css flex-shrink屬性怎麼用

藏色散人
藏色散人原創
2019-05-27 16:26:592938瀏覽

css flex-shrink屬性指定了flex元素的縮規則。 flex元素僅在預設寬度總和大於容器的時候才會發生收縮,其收縮的大小是依據flex-shrink的值。

css flex-shrink屬性怎麼用

css flex-shrink屬性怎麼用?

定義和用法

flex-shrink 屬性指定了flex 元素的縮寫規則。 flex 元素僅在預設寬度總和大於容器的時候才會發生收縮,其收縮的大小是依據 flex-shrink 的值。

注意:如果元素不是彈性盒物件的元素,則 flex-shrink 屬性不起作用。

預設值: 1

繼承:否

可動畫化: 是。

版本: CSS3

JavaScript 語法:

object.style.flexShrink="5"

CSS 語法:

flex-shrink: number|initial|inherit;

#屬性值

number 一個數字,規定項目將相對於其他靈活的項目進行收縮的量。預設值是 1。

initial 設定該屬性為它的預設值。

inherit 從父元素繼承該屬性。

實例

A, B, C 設定flex-shrink:1, D , E 設定為flex-shrink:2:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#content {
  display: flex;
  width: 500px;
}
 
#content div {
  flex-basis: 120px;
  border: 3px solid rgba(0,0,0,.2);
}
 
.box { 
  flex-shrink: 1;
}
 
.box1 { 
  flex-shrink: 2; 
}
</style>
</head>
<body>
 
<p>div 总宽度为 500px, flex-basic 为 120px。</p>
<p>A, B, C 设置 flex-shrink:1。 D , E 设置为 flex-shrink:2</p>
<p>D , E 宽度与 A, B, C 不同</p>
<div id="content">
  <div class="box" style="background-color:red;">A</div>
  <div class="box" style="background-color:lightblue;">B</div>
  <div class="box" style="background-color:yellow;">C</div>
  <div class="box1" style="background-color:brown;">D</div>
  <div class="box1" style="background-color:lightgreen;">E</div>
</div>
</body>
</html>

效果:

css flex-shrink屬性怎麼用

實例解析:

flex-shrink的預設值為1,如果沒有顯示定義該屬性,將會自動依照預設值1在所有因子相加之後計算比率來進行空間收縮。

本例中A、B、C 明確定義了flex-shrink 為1,D、E 定義了flex-shrink 為2,所以計算出來總共將剩餘空間分成了7 份,其中A、 B、C 佔1 份,D、E 佔2 份,即1:1:1:2:2

我們可以看到父容器定義為500px,子項被定義為120px,子項相加之後為600 px,超出父容器100px。那麼超出的 100px 需要被 A、B、C、D、E 消化 通過收縮因子,所以加權綜合可得 100*1 100*1 100*1 100*2 100*2=700px。

於是我們可以計算A、B、C、D、E 將被移除的溢位量是多少:

A 被移除溢位:(100*1/700)* 100,即約等於14px

B 移除溢出量:(100*1/700)*100,即約等於14px

C 移除溢出量:(100*1 /700)*100,即約等於14px

D 被移除溢出量:(100*2/700)*100,即約等於28px

#E 移除溢出量: (100*2/700)*100,即約等於28px

最後A、B、C、D、E的實際寬度分別為:120-14=106px, 120-14=106px, 120- 14=106px, 120-28=92px,120-28=92px,此外,這個寬度是包含邊框的。

以上是css flex-shrink屬性怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn