Flex布局“弹性盒子”

一.概念

flex布局:

Flex Box 的缩写,意味“灵活的盒子”或“弹性盒子”,所以flex布局又称“弹性布局”。

  • flex容器

采用flex布局的元素,成为flex容器。display:flex;

  • flex项目

flex容器的所有子元素自动成为容器成员,称为flex项目。

<div style=“ display:flex;”>
  <img >
  <div></div>
  <p></p>
  <p> <a></a></p>
</div>

注:<a>不是项目,如果想让<a>成为项目可以给其父元素<p>添加display:flex;

<style>
 ul{list-style-type: none;}
 li{width: 100px; text-align: center;}
 a{text-decoration: none;}
 ul{display: flex;}     /*可以让垂直导航变水平  因为项目默认沿主轴排列*/
</style>
<body>
 <ul>
  <li><a href="#">1</a></li>
  <li><a href="#">2</a></li>
  <li><a href="#">3</a></li>
  <li><a href="#">4</a></li>
  <li><a href="#">5</a></li>
  <li><a href="#">6</a></li>
 </ul>
</body>

二.属性

Flex布局“弹性盒子”

容器属性:

display                是否flex布局

flex-direction       主轴方向

flex-wrap             是否换行

flex-flow               flex-firection/flex-wrap的缩写

justify-content      项目在主轴上的对齐方式

align-items           项目在交叉轴上的对齐方式

align-content        许多行项目整体在交叉轴上的对齐方式

  • display

是否使用flex布局。

display :flex / inline-flex;

Flex:将元素作为块级弹性伸缩盒显示;

inline-flex:将元素作为内联块级弹性伸缩盒显示。

  • flex-direction

决定主轴的排列方向,即项目的排列方向。

flex-direction : row / row-reverse / column / column-reverse;

row:水平(左到右)默认

row-reverse:反转水平(右到左)

column:垂直(上到下)

column-reverse:反转垂直(下到上)

  • flex-wrap

如果项目沿主轴一行排不了,决定是否换行。

flex-wrap : nowrap / wrap / wrap-reverse;

nowrap :默认 不换行 平均压缩每一个项目排满一行

wrap :正向换行 (第一行在上方)

wrap-reverse:反向换行(第一行在下方)

  • flex-flow

是flex-direction和flex-wrap的缩写。

flex-flow : flex-direction flex-wrap;

默认:flex-flow:row nowrap;

  • justify-content

定义项目在主轴上的对齐方式。

justify-content : flex-start / flex-end / center / space-between / space-around;

flex-start:主轴开始 默认

flex-end:主轴结束

center:主轴中心

space-between:两端对齐,项目中间间隔相等

space-around:每个项目两侧的间隔相等(项目之间的间隔比项目与边框的距离大一倍)

  • align-items

定义在交叉轴上如何对齐。

align-items : flex-start / flex-end / center / baseline / stretch;

flex-start:交叉轴开始

flex-end:交叉轴结束

center:交叉轴中心

baseline:项目的第一行文字的基线对齐

strech:默认  如果项目未设置高度或高度为auto,项目将占满容器的高度

  • align-content

定义多行项目在交叉轴上如何对齐,如果项目只有一个,该属性不起作用。

align-content : flex-start / flex-end / center / space-between / space-around / stretch;

flex-start:整体从交叉轴开始对齐

flex-end:整体从交叉轴结束对齐

center:整体从交叉轴中心对齐,用于设置多行垂直居中

space-between:整体与交叉轴中点对齐,多行之间的间隔平均分配

space-around :每行的上下加个都相等,所以,每行之间的间隔比两端与边框的间隔大一倍。

strech:默认   如果项目未设置高度或高度为auto,项目将占满容器的高度

  • 项目属性:

order:项目的排列顺序

flex-grow:项目放大

flex-shrik:项目缩小

flex-basis:主轴空间

flex:flex-grow flex-shrik flex-basis 的缩写

align-self:单个项目对齐方式

  • order

定义项目的排列顺序,默认为0。

order:数值;

数值越小排列越靠前。

例如,order值为-1的项目排在前面。

  • flex-grow

定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话);

如果一个项目的flex-grow属性为2,其它为1,则前者占剩余空间将比其它项目多一倍,依次类推;

如果有的项目有flex-grow属性,有的项目有width属性,有flex-grow属性的项目将等分剩余空间。

  • flex-shrink

定义项目的缩小比例,默认为1,即如果空间不足,项目将被缩小。

如果所有项目的flex-shrink属性都为1,当空间不足时,都将被等等比例缩小;

如果一个项目的flex-shrink属性为0,其它项目都为1,则空间不足时,前者不缩小;

注意负值对该属性无效。

  • flex-basis

定义了项目占据的主轴空间(main-size)。

如果主轴为水平,效果跟width一样;

如果主轴为垂直,效果跟height一样;

如果同时设置,flex-basis优先级高于width/height;

默认值为auto,即项目本来width/height。

  • flex

是flex-grow flex-shrik flex-basis 的缩写,默认值为 0 1 auto;

后2个属性值可选,即flex:1;等同于flex:1 1 auto;

该属性有两个快捷值auto(1 1 auto)、none(0 0 auto)。

  • align-self

设置单个项目与其它项目不一样交叉轴上的对齐方式,即可覆盖align-items属性。

ü默认值为auto,表示继承父元素(即flex容器)的align-items属性,如果没有,等同于strech。

üalign-self:auto / flex-start  / flex-end / center / baseline / stretch;

 

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/5769.html

(0)
江山如画的头像江山如画管理团队
上一篇 2020年4月11日 下午7:10
下一篇 2020年4月14日 上午9:20

99%的人还看了以下文章

  • 实现表格单线边框的两种方法

    实现表格单线边框方法一 border-collapse: collapse; 代码如下: See the Pen 实现表格单线边框的两种方法 by 江山如画 (@jgyzhr)on CodePen. 实现表格单线边框方法二 给table上边和左边设上边框线,给td下边和右边设上边框线 See the Pen 实现表格单线边框方法二 by 江山如画 (@jgy…

    2019年10月31日
    3.4K0
  • 第12课:高度和宽度

    到目前为止,我们还没有在元素尺寸方面给予关注。在这一课,我们将看到为元素定义高度和宽度是十分简单的。 设定宽度[width] 设定高度[height] 设定宽度[width] 你可以通过width属性来设定一个元素的宽度,即在水平方向上的尺寸。 下面是一个简单的例子,它为我们提供了一个可以容纳文本的盒子: div.box {width: 200px;bord…

    2020年2月25日
    1.5K0
  • css布局基础-盒子模型

    网页设计的第一步就是设计版面布局,本文介绍了css布局基础-盒子模型,CSS盒模型是描述网页布局的视觉模型中网页元素的矩形盒状模型。盒模型由margin(边界)、border(边框)、padding(填充)和content(内容)4部分组成。

    2022年7月14日
    7610
  • 第5课:到目前为止学到了些什么?

    上一课我们已经学习了这些: <html> <head><title></title></head> <body> </body> </html> 网页标题(title)写在head(头部)里:<title>网页标题写在这里</title>。…

    2018年1月20日
    2.2K0
  • 第4课:制作自己的第一个网站

    学完前几节课,现在只需再花几分钟时间,你就能学会如何制作自己的第一个网站了。 如何做呢? 通过第一课,我们知道制作一个网页需要有浏览器和记事本程序(或者类似的文本编辑器)。请打开记事本程序(Notepad):依次选择“开始菜单→程序→附件→记事本”即可。 然后呢? 我们先从简单的做起吧。先试着做一个显示如下内容的网页:“哇!这是我的第一个网站。 ”继续学习,…

    2018年1月20日
    2.5K0
  • 怎么让一长串英文字符自动换行?

    长串英文字符之间没有空格,整串都显示在一行,撑破了div,甚至跑到屏幕外了,如何解决? <!doctype html> <html> <head> <meta charset=”utf-8″> <title>怎么让一长串英文字符自动换行?|www.125jz.com</title> &l…

    2019年11月20日
    1.9K0

发表回复

登录后才能评论