当前位置: 首页 > news >正文

前端的学习-CSS(弹性布局-flex)

一:什么是弹性布局-Flex

                flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

                 语法:

.box{display: flex;
}
.box{display: inline-flex;
}

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

                基本概念: 

                按照我自己的理解,横向代表主轴的方向,纵向代表交叉轴的方向,横向的方向由左到右为开始到结束,纵向则是由上到下。

                我将被设置弹性布局的盒子称作父元素,将里面的内容称为子元素。方便记忆。

                通常设置盒子页面都是按照标准流进行排列。块元素的话就是从上到下排列。如下图。 

 

                现在给父元素也就是绿色的盒子设置弹性布局。 子元素的盒子会自动按照主轴方向排列。

 

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>弹性布局</title><style type="text/css">.main-box {width: 800px;height: 300px;background-color: aquamarine;margin: 0 auto;/* 设置弹性盒子 */display: flex;}.main-box>div {width: 200px;height: 200px;border: 1px solid red;font-size: 20px;color: #000;}</style></head><body><div class="main-box"><div>1</div><div>2</div><div>3</div></div></body>
</html>

 

                以下6个属性设置在容器上。

                        flex-direction:项目的排列方向

                        flex-wrap:项目如何换行

                        flex-flow: flex-direction 属性和 flex-wrap的简写方式。

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

                        align-items:项目在交叉轴上如何对齐

                        align-content:多根轴线的对齐方式 

        1:  flex-direction:项目的排列方向

                 flex-direction,默认排列为主轴方向,也就是水平方向。

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

                row:默认方向,主轴的方向

                row-reverse:主轴方向,但元素会从主轴结束的方向开始排列,并且元素的顺序会反过来。

                column:交叉轴方向

                colmun-reverse:交叉轴方向,但元素会从交叉轴结束的方向开始排列,并且元素的顺序会反过来。。

flex-direction: row-reverse;

        设置交叉轴方向 

flex-direction: column;

 

 

        设置交叉轴反向  

flex-direction: column-reverse;

 2:flex-wrap:项目如何换行 

                首先弹性布局默认是不会换行,当子元素的宽度或者高度总和加起来大于父元素的宽度时,子元素会被压缩。如下。

 

        这时如果需要换行,则需要flex-warp属性来控制,flex-warp默认是 flex-warp: no-warp;

这时将其值为:flex-warp: warp;

flex-wrap: wrap;

        交叉轴方向换行 

 

.main-box {width: 800px;height: 300px;background-color: aquamarine;margin: 0 auto;/* 设置弹性盒子 */display: flex;/* 设置交叉轴方向 */flex-direction: column;flex-wrap: wrap;
}
3:justify-content:项目在主轴上的对齐方式 
.box {justify-content: flex-start | flex-end | center | space-between |space-around;
}
justify-content: flex-start;

 

justify-content: flex-end;

 

 

justify-content: space-between;

 

 

justify-content: space-around;

justify-content: space-evenly;

 

 

                 space-around与space-evenly的区别是,space-evenly的间隙全是一样的,而,sapce-around的最左右两别的间隙和子元素之间的间隙是不一样的,space-beween的只有中间存在空隙。 

 4: align-items:项目在交叉轴上如何对齐
.box {align-items: flex-start | flex-end | center | baseline | stretch;
}
align-items: flex-start;

align-items: flex-end;

align-items: center;

 

align-items: baseline;以第一行文字的基线作为对齐的基准。

align-items: baseline;

 

                如果子元素未设置高度,而设置了align-items: stretch; 则会占满整个父元素。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>弹性布局</title><style type="text/css">.main-box {width: 800px;height: 300px;background-color: aquamarine;margin: 0 auto;/* 设置弹性盒子 */display: flex;/* 设置交叉轴方向 */align-items: stretch;}.main-box>div {width: 100px;/* height: 300px; */border: 1px solid red;font-size: 20px;color: #000;}</style></head><body><div class="main-box"><div class="box1">1</div><div class="box2">2</div><div class="box3">3</div><div class="box4">4</div><div class="box5">5</div></div></body>
</html>

 

 5: align-content:多根轴线的对齐方式 

                align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

.box {align-content: flex-start | flex-end | center | space-between | spacearound | stretch;
}
align-content: flex-start;

 

align-content: flex-end;

 

 

align-content: space-around;

 

 

align-content: space-between;

 

 

align-content: space-evenly;

 

align-content: center;

 

 

align-content: stretch;

 

 

 今天就先这样。。。。。。

 

 

 

 

http://www.lryc.cn/news/413355.html

相关文章:

  • vue3集成LuckySheet实现导入本地Excel进行在线编辑,以及导出功能
  • 【征求意见】同济大学--城镇给水厂碳排放核算与评价方法
  • 【Python】后台开发返回方法和状态码类的实现
  • opencloudosV8.6和openEuler 24安装 k8s
  • Tensor安装和测试
  • ELK对业务日志进行收集
  • 新质生产力
  • 《LeetCode热题100》---<5.②普通数组篇五道>
  • 【面试题】【C语言】寻找两个正序数组的中位数
  • 原始的原型链是怎样玩的
  • RabbitMQ高级篇(如何保证消息的可靠性、如何确保业务的幂等性、延迟消息的概念、延迟消息的应用)
  • 正点原子imx6ull-mini-Linux驱动之platform设备驱动实验(14)
  • z3基础学习
  • 开发助手专业版,有反编译等多种功能
  • 嵌入式初学-C语言-十一
  • 浅谈几个常用OJ的注册方式
  • Html实现全国省市区三级联动
  • 前端构建工具Webpack 与 Vite 大对比
  • Ubuntu-22.04环境搭建
  • 嵌入式学习---DAY17:共用体与位运算
  • 蓝牙网关和蓝牙MESH总结
  • 了解关于标准化的知识
  • 【云原生】数据库忘记密码怎么办?
  • Postman 接口测试详解
  • 【JavaEE】线程状态
  • C++笔记之编译过程和面向对象
  • ModuleNotFoundError: No module named ‘tqdm‘
  • 东京电影节公布2024年竞赛片评审团成员并对其业绩分别进行评介 没什么含金量
  • 智能景区垃圾识别系统:基于YOLO的深度学习实现
  • ventoy和微pe可以共存吗?ventoy和pe共存使用教程