21番茄网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 21番茄网
查看: 52|回复: 3

flex弹性盒子模型

[复制链接]

693

主题

911

帖子

2993

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2993
发表于 2024-7-27 21:58:53 | 显示全部楼层 |阅读模式
测试.png

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>flex布局</title>
    <style type="text/css">
    .box {
        background: blue;
        display: flex;
    }
    .box div {
        width: 200px;
        height: 200px;
    }
    .box1 {
        background: red;
    }
    .box2 {
        background: orange;
    }
    .box3 {
        background: green;
    }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>

</html>


回复

使用道具 举报

693

主题

911

帖子

2993

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2993
 楼主| 发表于 2024-7-27 22:03:37 | 显示全部楼层
justify-content属性,本属性定义了项目在主轴上的对齐方式。结合上一节的布局例子进行理解,属性值分别为:

justify-content: flex-start | flex-end | center | space-between | space-around;
flex-start:交叉轴的起点对齐(即左对齐

  1. .box {
  2.         background: blue;
  3.         display: flex;
  4.         justify-content: flex-start;
  5.     }
复制代码

实现效果:

左对齐.jpg

flex-end:右对齐
  1. .box {
  2.         background: blue;
  3.         display: flex;
  4.         justify-content: flex-end;
  5.     }
复制代码

实现效果:

右对齐.jpg

center:居中
  1. .box {
  2.         background: blue;
  3.         display: flex;
  4.         justify-content: center;
  5.     }
复制代码

实现效果:
居中.jpg

space-between:两端对齐,项目之间的间隔都相等。
  1. .box {
  2.         background: blue;
  3.         display: flex;
  4.         justify-content: space-between;
  5.     }
复制代码

实现效果:
两端对齐.jpg


space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

  1. .box {
  2.         background: blue;
  3.         display: flex;
  4.         justify-content: space-around;
  5.     }
复制代码

实现效果:

等距.jpg

回复

使用道具 举报

693

主题

911

帖子

2993

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2993
 楼主| 发表于 2024-7-27 22:11:15 | 显示全部楼层
align-items属性,本属性定义了项目在交叉轴上的对齐方式。属性值分别为:

align-items: flex-start | flex-end | center | baseline | stretch;
结合右侧编辑器中的布局以及下面的样式设置进行理解:

flex-start:默认值,上对齐

  1.    .box {
  2.         height: 700px;
  3.         background: blue;
  4.         display: flex;
  5.         align-items: flex-start;
  6.     }
复制代码

实现效果:
左对齐.jpg


flex-end:交叉轴的终点对齐(下对齐)

  1. .box {
  2.         height: 700px;
  3.         background: blue;
  4.         display: flex;
  5.         align-items: flex-end;
  6.     }
复制代码

实现效果:

下对齐.jpg


center: 交叉轴的中点对齐(上下居中对齐)

  1. .box {
  2.         height: 700px;
  3.         background: blue;
  4.         display: flex;
  5.         align-items: center;
  6.     }
复制代码

实现效果:

中间对齐.jpg


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

  1. .box {
  2.         height: 700px;
  3.         background: blue;
  4.         display: flex;
  5.         align-items: baseline;
  6.     }
复制代码

三个盒子中设置不同的字体大小,可以参考右侧编辑器中的代码进行测试。

实现效果:

第一行基线对齐.jpg


stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

  1. .box {
  2.         height: 300px;
  3.         background: blue;
  4.         display: flex;
  5.         align-items: stretch;
  6.     }

  7.     .box div {
  8.         /*不设置高度,元素在垂直方向上铺满父容器*/
  9.         width: 200px;
  10.     }
复制代码

高度填满.jpg

回复

使用道具 举报

693

主题

911

帖子

2993

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2993
 楼主| 发表于 2024-7-27 22:19:07 | 显示全部楼层
flex属性,设置子元素相对于父元素的占比。

占比.jpg

1、给子元素设置flex属性,可以设置子元素相对于父元素的占比。
2、flex属性的值只能是正整数,表示占比多少。
3、给子元素设置了flex之后,其宽度属性会失效。

可以参考右侧编辑器的代码,测试效果如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>flex占比</title>
    <style type="text/css">
    .box {
        height: 300px;
        background: blue;
        display: flex;
    }

    .box div {
        width: 200px;
        height: 200px;
    }

    .box1 {
        flex: 1;
        background: red;
    }

    .box2 {
        flex: 3;
        background: orange;
    }

    .box3 {
        flex: 2;
        background: green;
    }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1">flex:1</div>
        <div class="box2">flex:3</div>
        <div class="box3">flex:2</div>
    </div>
</body>

</html>


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|21番茄网 ( 粤ICP备10099428号 ) 奇远富

GMT+8, 2024-9-20 11:01 , Processed in 0.221264 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表