关于CSS盒模型的flex弹性布局的笔记

前言:

以下内容由小范看黑马程序员flex的相关视频整理的笔记,希望能帮助到大家。

flex布局

可以用少量的的代码高效的实现各种页面的布局,是一个基础的但是必须会的基本技能。

与传统布局相比

传统布局:兼容性好 布局繁琐 局限性,不能在移动端较好的布局

flex弹性布局:操作方便,布局简单,移动端应用广泛 PC端浏览器支持情况差

flex布局初体验

现在小范想要让三个行内元素能设置宽高并且要让它们之间有均匀间距 就如下图的效果

如果运用传统布局

那么代码是

/*CSS代码区*/
    <style>
        div{
            width: 760px;/*宽度*/
            height: 600px;/*高度*/
            background-color: #bfa;/*背景颜色*/
        }
        div span{
            display: inline-block;/*行内块元素设置*/
            margin: 0px 50px;/*间距*/
            width: 150px;/*宽度*/
            height: 100px;/*高度*/
            background-color: purple;/*span的背景颜色*/
        }
    </style>
<!--HTML代码区-->
<body>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
</body>

操作一下发现很麻烦,因为你需要计算行内块元素之间的间距大小和父元素宽度的大小的关系

(或者可以HTML将span改成块元素 然后将其display成inline形式)

而如果我们运用flex弹性布局

那么只需要

/*CSS代码*/
<style>
        div{
            width: 760px;
            height: 600px;
            background-color: #bfa;
            display: flex;/*设置flex布局*/
            justify-content: space-around;/*布局形式*/
        }
        div span{
            width: 150px;
            height: 100px;
            background-color: purple;
        }
</style>
<!--HTML代码-->
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>

十分便利。

flex布局原理

采用Flex布局的元素,成为Flex容器(flex container),简称为容器,他的子元素即为容器成员,成为Flex的项目,简称“项目”。

原理:通过给父元素添加flex属性,来控制子盒子的位置和排列方式

flex布局父元素常见六大属性

flex-direction:设置主轴方向

主轴与侧轴

默认主轴:水平向右 默认侧轴:水平向下

属性值说明

row

默认值从左到右
row-reverse从右到左
column从上到下
column-reverse从下到上                                        

justify-content:设置主轴上子元素排列方式

justify-content属性值定义了主轴上的对齐方式

属性值说明
flex-start默认值 从头部开始 如果主轴是x轴,则从左到右
flex-end

从尾部开始排列

center从主轴居中对齐(如果主轴是x轴则水平居中)
space-around

平分剩余空间(与边框之间会有间距,不会贴边)

space-between先两边贴边,再平分剩余空间

flex-wrap:设置子元素是否换行

flex布局中,默认是不换行的,如果父元素放不下,那么子元素会调整大小

默认值:nowrap

可选值:wrap

align-items:设置侧轴上的子元素排列方式(单行)

属性值说明
flex-start默认值 从上到下

flex-end

从下到上
center

挤在一起居中(垂直居中)可以

与justify-content的center一起用,

使其完全居中

stretch         

拉伸(但是子盒子不要给高度

使子元素和父元素一样高

(宽 看主轴方向))

align-content:设置侧轴上的子元素的排列方式(多行)

只能用于子项出现换行的情况,对单行是没有效果的

属性值说明
flex-start

默认值再策州的头部开始排列

flex-end

在侧轴的尾部开始排列

center在侧轴中间显示
space-around子项在侧轴平分剩余空间
space-between子项在侧轴先分布在两头,在平分剩余空间
stretch设置子项元素高度平分父元素高度

flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

示例:

flex-flow:row wrap;

flex布局子项常见属性

主要属性:

1.flex 子项目占的份数 

格式:flex:数字;

如果给定左右的宽度:

代码

<style>        
        /*CSS代码*/
        .item{
            width: 700px;
            height: auto;  
        }
        .item div:nth-child(1){
            width: 100px;
            height: 150px;
            background-color: aqua;
        }
        .item div:nth-child(3){
            width: 100px;
            height: 150px;
            background-color: aliceblue;
        }
        .item div:nth-child(2){
            flex: 1;/*平分剩余部分*/
            background-color: #bfa;
        }
</style>
        <!--HTML代码-->
        <div class="item">
            <div></div>
            <div></div>
            <div></div>
        </div>

如果不给指定宽度,那么就是

 代码

<style> 
       /*CSS代码*/
        p{
            display: flex;
            width: 760px;
        }
        p span{
            width: 150px;
            height: 100px;
            background-color: purple;
            flex: 1;/*子元素平分父元素*/
        }
        p span:nth-child(1){
            background-color: red;
        }
        p span:nth-child(3){
            background-color: blue;
        }
</style>
        <!--HTML代码-->
        <p>
            <span>1</span>
            <span>2</span>
            <span>3</span>
        </p>

2.align-self控制子项在侧轴的排列方式

用于子项自己在侧轴上的排列方式

3.order属性定义子项的排列顺序

示例

order:数字;

数字越小越前 默认值为0;

所以可以设置数字为负数。

好了,flex布局大概就是这样了,小范要去更改他之前的作业了。

目录

flex布局

flex布局初体验

flex布局原理

flex布局父元素常见六大属性

flex-direction:设置主轴方向

justify-content:设置主轴上子元素排列方式

flex-wrap:设置子元素是否换行

align-items:设置侧轴上的子元素排列方式(单行)

align-content:设置侧轴上的子元素的排列方式(多行)

flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

flex布局子项常见属性

1.flex 子项目占的份数 

2.align-self控制子项在侧轴的排列方式

3.order属性定义子项的排列顺序


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值