微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CSS flex 属性

flex: flex-grow flex-shrink flex-basis|auto|initial|inherit

属性

描述
flex-grow一个数字,规定项目将相对于其他灵活的项目进行扩展的量。
flex-shrink一个数字,规定项目将相对于其他灵活的项目进行收缩的量。
flex-basis项目的长度。合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。
auto与 1 1 auto 相同。
none与 0 0 auto 相同。
initial设置该属性为它的认值,即为 0 1 auto。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

flex-grow  定义和用法

flex-grow 属性用于设置或检索弹性盒子的扩展比率。。

<style> 
#main {
  width: 350px;
  height: 100px;
  border: 1px solid #c3c3c3;
  display: flex;
}

#main div:nth-of-type(1) {flex-grow: 1;}
#main div:nth-of-type(2) {flex-grow: 3;}
#main div:nth-of-type(3) {flex-grow: 1;}

</style>
</head>
<body>

<div id="main">
  <div style="background-color:coral;"></div>
  <div style="background-color:lightblue;"></div>
  <div style="background-color:khaki;"></div>
</div>

按比例扩展

CSS 语法

flex-grow: number|initial|inherit;

属性

描述
number一个数字,规定项目相对于其他灵活的项目进行扩展的量。认值是 0。
initial设置该属性为它的认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

flex-shrink:  定义和用法

lex-shrink 属性指定了 flex 元素的收缩规则。flex 元素仅在认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。

<style>
#content {display: flex; width: 400px;}
#content div {flex-basis: 120px;}
.Box { flex-shrink: 1;}
.Box1 {  flex-shrink: 2; }
</style>
<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>

iv 总宽度为 400px, flex-basic 为 120px。

A, B, C 设置 flex-shrink:1。 D , E 设置为 flex-shrink:2

D , E 宽度与 A, B, C 不同

本例中A、B、C 显式定义了 flex-shrink 为 1,D、E 定义了 flex-shrink 为 2,所以计算出来总共将剩余空间分成了 7 份,其中 A、B、C 占 1 份,D、E 占 2 份,即1:1:1:2:2

我们可以看到父容器定义为 400px,子项被定义为 120px,子项相加之后即为 600 px,超出父容器 200px。那么超出的 200px 需要被 A、B、C、D、E 消化 通过收缩因子,所以加权综合可得 200*1+200*1+200*1+200*2+200*2=700px。

于是我们可以计算 A、B、C、D、E 将被移除的溢出量是多少:

A 被移除溢出量:(200*1/700)*100,即约等于28.5px
B 被移除溢出量:(200*1/700)*100,即约等于28.5px
C 被移除溢出量:(200*1/700)*100,即约等于28.5px
D 被移除溢出量:(200*2/700)*100,即约等于57px
E 被移除溢出量:(200*2/700)*100,即约等于57px

最后A、B、C、D、E的实际宽度分别为:120-28.5=91.5px,120-57=63px,此外,这个宽度是包含边框的。

CSS 语法

flex-shrink: number|initial|inherit;

属性

描述
number一个数字,规定项目将相对于其他灵活的项目进行收缩的量。认值是 1。
initial设置该属性为它的认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

flex-basis:  定义和用法

flex-basis 属性用于设置或检索弹性盒伸缩基准值。。

<style> 
#main {
  width: 350px;
  height: 100px;
  border: 1px solid #c3c3c3;
  display: flex;
}

#main div {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 40px;
}
</style>
<div id="main">
  <div style="background-color:coral;">红色 DIV</div>
  <div style="background-color:lightblue;" id="myBlueDiv">蓝色 DIV</div>
</div>

CSS 语法

flex-basis: number|auto|initial|inherit;

属性

描述
number一个长度单位或者一个百分比,规定灵活项目的初始长度。
auto认值。长度等于灵活项目的长度。如果该项目未指定长度,则长度将根据内容决定。
initial设置该属性为它的认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

flex-direction 定义和用法

flex-direction 属性规定灵活项目的方向。

<style>
#main {
    width: 400px;
    height: 400px;
    border: 1px solid #c3c3c3;
    display: -webkit-flex; /* Safari */
    -webkit-flex-direction: row-reverse; /* Safari 6.1+ */
    display: flex;
    flex-direction: row;
}

#main div {
    width: 50px;
    height: 50px;
}
</style>
<div id="main">
  <div style="background-color:coral;">A</div>
  <div style="background-color:lightblue;">B</div>
  <div style="background-color:khaki;">C</div>
  <div style="background-color:pink;">D</div>
  <div style="background-color:lightgrey;">E</div>
  <div style="background-color:lightgreen;">F</div>
</div>

设置flex-direction 属性一次为ow|row-reverse|column|column-reverse  看效果

CSS 语法

flex-direction: row|row-reverse|column|column-reverse|initial|inherit;

属性

描述实例
row认值。灵活的项目将水平显示,正如一个行一样。尝试一下 »
row-reverse与 row 相同,但是以相反的顺序。尝试一下 »
column灵活的项目将垂直显示,正如一个列一样。尝试一下 »
column-reverse与 column 相同,但是以相反的顺序。尝试一下 »
initial设置该属性为它的认值。请参阅 initial尝试一下 »
inherit从父元素继承该属性。请参阅 inherit

flex-wrap 定义和用法

flex-wrap 属性规定flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向。。

注意:如果元素不是弹性盒对象的元素,则 flex-wrap 属性不起作用。

<style>
#main {
    width: 200px;
    height: 200px;
    border: 1px solid #c3c3c3;
    display: -webkit-flex; /* Safari */
    -webkit-flex-wrap: wrap; /* Safari 6.1+ */
    display: flex;
    flex-wrap: wrap;
}

#main div {
    width: 50px;
    height: 50px;
}
</style>
<div id="main">
  <div style="background-color:coral;">A</div>
  <div style="background-color:lightblue;">B</div>
  <div style="background-color:khaki;">C</div>
  <div style="background-color:pink;">D</div>
  <div style="background-color:lightgrey;">E</div>
  <div style="background-color:lightgreen;">F</div>
</div>

CSS 语法

flex-wrap: Nowrap|wrap|wrap-reverse|initial|inherit;

属性

描述
Nowrap认值。规定灵活的项目不拆行或不拆列。
wrap规定灵活的项目在必要的时候拆行或拆列。
wrap-reverse规定灵活的项目在必要的时候拆行或拆列,但是以相反的顺序。
initial设置该属性为它的认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

定义和用法

flex-flow 属性是 flex-direction 和 flex-wrap 属性的复合属性

flex-flow 属性用于设置或检索弹性盒模型对象的子元素排列方式。

flex-direction 属性规定灵活项目的方向。

flex-wrap 属性规定灵活项目是否拆行或拆列。

CSS 语法


flex-flow: flex-direction flex-wrap|initial|inherit;

属性

描述
flex-direction可能的值:
row    row-reverse    column    column-reverse
initial   inherit    认值是 "row"。    规定灵活项目的方向。
flex-wrap可能的值:
Nowrap    wrap    wrap-reverse    initial    inherit

认值是 "Nowrap"。  规定灵活项目是否拆行或拆列。

initial设置该属性为它的认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐