div里的转发如何换行_如何讲清楚Flex弹性盒模型?(上)

一、什么是Flex弹性盒?

Flex弹性盒,意为“弹性布局”,用来为盒状模型提供最大的灵活性。

当一个元素 display:flex 的时候,内部元素float会失效,vertical-align也会失效

因此我们至少能确定一点,flex替代了浮动的解决方案。

我们来看一下它的基本特点。

flex容器当中,div这样的块元素不再独占一行

而是自动排成一行。

23f0bbba6b5516fd34f62ce2ed1f0867.png

这个效果虽然和浮动很像, 但是请记住, 在flex的容器里, 不存在浮动的概念, 我将代码贴出来, 大家可以自行尝试.

div容器

width: 100px

height: 100px

div容器

width: 100px

height: 100px

div容器

width: 100px

height: 100px

dispplay: flex的元素,称为Flex容器(flex container),它的所有子元素称为Flex项目(flex item)。

在flex容器当中, 项目的排列方式默认是row(水平的). 可以使用flex-direction属性进行更改

.container {    display: flex;    flex-direction: row;  /*这是默认值, 按照row(水平方向)排列*/}

如果将这个属性进行更改column

.container {    display: flex;    flex-direction: column;  /* 按照列column(垂直方向)排列*/}

效果如下:

9459e8edb34eb9a09560f2596c618b28.png

你看, flex容器里的项目, 变成了垂直方向, 由上至下排列

对于一个flex容器来说, 子项目的排列方向, 只有row和column这两种,

怎么样, 很简单?

当然, 项目不仅可以从左向右, 还可以反过来, 从右向左

.container{    display: flex;    flex-direction: row-reverse;/* 按照行(反方向)排列*/}

效果如下:

f7f9cb79de4f610eadcb89dc09668190.png

垂直方向也是如此

.container{    display: flex;    flex-direction: column-reverse;/* 按照列(反方向)排列*/}
372ab9c75c82cd37cc89f0cb004dc774.png

一个flex容器, 子项目默认是不换行的

当然, 想要换行的话, 可以通过flex-wrap属性可以修改

.container {    flex-wrap: nowrap | wrap | wrap-reverse;}

我们还可以通过 justify-content属性 设置「主轴」的对齐方式

注意:主轴的方向不一定是水平方向 它是由flex-direction决定的. 可以是 row方向 也可以 column方向, 下面的例子假定主轴为row, 因此column方向为对应 侧轴

.container {     justify-content: flex-start | flex-end | center | space-between | space-around;}

flex-start 可以理解为左对齐

69b56275d3bcc08941d95f6e1e91a042.png

flex-end 可以理解为右对齐

3056dfc870c4f671cf24c59e041f4984.png

center 居中对齐

5fbd49ca39c292ae79ff1893546691c5.png

space-between 两侧对齐

dfd6412b0feb0b7351110f75e4e03bc6.png

space-around 两侧间隔均匀

5ca97b4fd1a23cd3b30194ce41cefa57.png

如果flex容器是固定高度的, 且大于了子元素, 这时, 我们可能还需要侧轴(垂直方向)的对齐方式

align-items属性定义项目在交叉轴上如何对齐。

.container {    align-items: flex-start | flex-end | center | baseline | stretch;}

flex-start 可以理解为顶部对齐

54f55fa39f5958f6ae5a0593c4488d1d.png

flex-end 底部对齐

777c0a4abd22eeff206d77a744a6189a.png

center 中部对齐

fba5ebf43d36e9669c273321f7a89c6c.png

baseline 基线对齐

428c7741221b4097fbfff74ecea13e91.png

stretch 上下两侧对齐

54f55fa39f5958f6ae5a0593c4488d1d.png

子元素设置了高度, 因此没有效果

a4caf60e9797a008247ed69bacce2448.png

子元素没有设置高度


简单总结一下

弹性盒的容器属性(添加在父元素身上 )

1 display:flex;属性

.box{   display: -webkit-flex; /* Safari或者chrome*/   display: flex;}

注意:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

同时,需要加上-webkit-前缀,兼容-webkit-低版本写法。

2 flex-direction属性

flex-direction属性决定主轴的方向(即容器内子元素的排列方向)。

.box {    flex-direction: row | row-reverse | column | column-reverse;}

3 flex-wrap属性

默认情况下,子元素都排在一条线(又称”轴线”)上, 不换行。flex-wrap属性定义是否换行, 以及换行方式

.box{    flex-wrap: nowrap | wrap | wrap-reverse;}

4 justify-content属性

justify-content属性定义了项目在主轴上的对齐方式。

.box {     justify-content: flex-start | flex-end | center | space-between | space-around;}

5 align-items属性

align-items属性定义项目在交叉轴上如何对齐。

.box {    align-items: flex-start | flex-end | center | baseline | stretch;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值