Flex 弹性布局-Flex常用属性

  1. 什么是弹性布局

    一句话:就是用于解决一个盒子内多个子盒子的排列及其分布。(不存在float浮动塌陷问题)

    display: flex;/*开启弹性布局,注:设置于父元素*/

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <title>Document</title>
    <style>
        .box {
            width: 350px;
            border: 1px solid black;
            display: flex;
            /*开启弹性模式*/
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="item" style="width: 100px;height: 100px;background: red;"></div>
        <div class="item" style="width: 100px;height: 100px;background:rebeccapurple;"></div>
        <div class="item" style="width: 100px;height: 100px;background:blue;"></div>
    </div>
</body>

</html>

未开启弹性布局效果图

开启弹性布局效果图
在这里插入图片描述

  1. float

    主要为了解决多个元素共存一行。

    缺点:子元素浮动后,父元素高度塌陷;当父元素宽度,大于所有的的子元素宽度之和,为了美观,需要人为计算边距。
    解决办法:在父元素加 overflow: hidden;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <title>Document</title>
    <style>
        .box {
            width: 350px;
            border: 1px solid black;
        }
        
        .box div {
            float: left;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="item" style="width: 100px;height: 100px;background: red;"></div>
        <div class="item" style="width: 100px;height: 100px;background:rebeccapurple;"></div>
        <div class="item" style="width: 100px;height: 100px;background:blue;"></div>
    </div>
</body>
</html>

效果图:在这里插入图片描述

  1. 弹性布局属性

    父元素属性

    👉 justify-content属性主要用于控制子元素在主轴方向上(主轴方向默认是水平从左向右)的排列及分布方式。

    假设:主轴的方向是水平的,从左向右的。

    flex-start 弹性开头(相当于左对齐),默认的

    flex-end 弹性结尾(相当于右对齐)

    center 居中对齐

    space-between 等距分隔(左、右子元素与父元素左边、右边没有间距)

    space-around 等距环绕(左、右子元素与父元素左边、右边有间距)

    align-items 属性主要用于控制子元素在次轴方向上(交轴方向默认是垂直从上向下)的排列及分布方式。

    👉align-items(设置单行效果)/align-content(设置多行效果)主要用在子元素高度不一致的情况下使用`

    假设:次轴默认就是垂直的,方向是从向下的。

    flex-start /*上对齐,默认的*、

    flex-end 下对齐

    center 居中对齐

    baseline 首行文字对齐

    stretch 上下都对齐(上下拉伸),当没有设置子元素的高度时会拉伸

    👉flex-wrap主要用于实现多行布局

    nowrap 不实现换行

    当不使用弹性换行时,如果子元素的宽度超出了父元素的宽度,那么子元素宽度会被自动压缩。

    wrap 当子元素的总宽大于父元素时,进行换行显示。向下换行

    wrap-reverse

    当子元素的总宽大于父元素时,进行换行显示。向上换行

    设置多行的对齐方式,只要当换行时才会生效。

    子元素属性

    flex 为子元素设置所要占据父元素尺寸的权重。

    ouder 设置子元素排列顺序,值越小越靠前。默认0。

    align-self 仅设置当前子元素,跟align-items用法一样

    flex-direction修改主轴的方向,当主轴方向修改时,次轴会自己修改为与主轴交差。

    值: row 默认是从左向右

    row-reverse 从右向左

    column 从上向下

    column-reverse 从下向上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值