当前位置: 首页 > 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;

 

 

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

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • go语言day21 goland使用gin框架、gorm框架操作mysql数据库redis数据库 使用宝塔创建redis数据库
  • NIO专题学习(一)
  • 计算右侧小于当前元素的个数
  • 【C++】—— 类与对象(二)
  • [Git][认识Git]详细讲解
  • 【启明智显分享】适用于多功能养生壶、茶吧机的2.8寸触摸彩屏解决方案
  • uni-app封装组件实现下方滑动弹出模态框
  • NeRF学习——复现训练中的问题记录
  • 【全国大学生电子设计竞赛】2022年E题
  • TCP Analysis Flags 之 TCP Window Full
  • 解决 Vue 页面中地址栏参数变更不刷新的问题
  • react防抖和节流hooks封装
  • Hystrix 线程池策略时使用ThreadLocal
  • 【LeetCode】219.存在重复元素II
  • STM32卡死、跑飞如何调试确定问题
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • css属性的继承、初识值、计算值、当前值、应用值
  • emacs初体验
  • gcc介绍及安装
  • gulp 教程
  • HTML5新特性总结
  • JavaScript DOM 10 - 滚动
  • java正则表式的使用
  • Linux CTF 逆向入门
  • Median of Two Sorted Arrays
  • rabbitmq延迟消息示例
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue学习第二天
  • 分享一份非常强势的Android面试题
  • 聊聊flink的BlobWriter
  • 配置 PM2 实现代码自动发布
  • 巧用 TypeScript (一)
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 线上 python http server profile 实践
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Android开发者必备:推荐一款助力开发的开源APP
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​用户画像从0到100的构建思路
  • # 透过事物看本质的能力怎么培养?
  • #NOIP 2014# day.1 T2 联合权值
  • #前后端分离# 头条发布系统
  • $.ajax,axios,fetch三种ajax请求的区别
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (编译到47%失败)to be deleted
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)Docker基本介绍
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .FileZilla的使用和主动模式被动模式介绍
  • .gitignore文件—git忽略文件
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net 基于MiniExcel的导入功能接口示例