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

flex布局容易忽略的角色作用

目录

清除浮动

作用于行内元素

flex-basis宽度

案例一:

案例二:

案例三:

flex-grow设置权重

案例一:

案例二:

 简写flex-grow:1 0 auto;


flex作为一维布局,行和列的使用,忽略的小角色,大作用。

清除浮动

父元素display:flex; 子元素的float:left;无效。

 <div class="wrap"><div class="item">首页0</div><div class="item"><span>内容很长</span><span>helloWorld</span></div><div class="item">首页2</div></div>
.wrap {width:562px;background-color: #999;display: flex;
}
.item{float: left;background-color:aquamarine;color:blueviolet;border: 1px solid #999;margin: 20px;
}

 

作用于行内元素

第二个item下面有两个行内元素span,在父元素item中更改期布局。

.item:nth-child(2){

  display: inline-flex;

  flex-direction: column;

  text-align:center;

}

.wrap {width:562px;background-color: #999;display: flex;
}
.item{float: left;background-color:aquamarine;color:blueviolet;border: 1px solid #999;margin: 20px;
}
.item:nth-child(2){display: inline-flex;flex-direction: column;
}

flex-basis宽度

在使用flex布局之中,flex-basis不是auto的情况下,等同于width;

flex-grow的值用来定义每个子元素的比例权重值。

案例一:

flex-basis和width同时存在的话,flex-basis有number值,优先级高于width

<div class="wrap"><div class="item flex1">flex1 text Hello world</div><div class="item flex2">flex2 text Hello world</div><div class="item flex3">flex3 text Hello world</div><div class="item flex4">flex4 text Hello world</div><div class="item flex5">flex5 text Hello world</div><div class="item flex6">flex6 text Hello world</div>
</div>
<style>
.wrap {width:100%;height: 200px;display: flex;
}
.item {flex-basis: 100px;// 这时的width的值无效,flex-basis优先级高于width的值width: 10;border: 1px solid #999;background-color:aqua;font-size: 16px;font-family: bold;
}
</style>

案例二:

flex-basis值为auto时,大小跟随width的值

.item {flex-basis: auto;// 这时flex-basis的值为auto,值跟随width的值width:80px;border: 1px solid #999;background-color:aqua;font-size: 16px;font-family: bold;
}

 

案例三:

内容有空格不会换行展示,flex-basis配合white-space:nowrap;使用。

flex-basis:0;

white-space:nowrap;

.item {flex-basis: 0;white-space: nowrap;width: 90px;border: 1px solid #999;background-color:aqua;font-size: 16px;font-family: bold;
}

  • 默认是auto,跟随内容的大小来适应,如果这时设置了width,则等于width的值;
  • 不为auto,例如'100px',这时的width值无效,在使用flex布局情况下,flex-basis优先级高于width;
  • 为0时,子元素的宽度跟随width的值;如果内容有空格,会换行展示;
  • flex-basis:0;white-space:nowrap; 宽度跟随width的值,内容如果有空格,使用white-space:nowrap; 不会换行;

flex-grow设置权重

1:剩余空间:父元素的总宽度减去子元素宽度之和

2:权重比例值:所有子元素flex-grow之和 > 1 ? 1 : 所有子元素flex-grow之和

3:可以分配的剩余空间 = 剩余空间*权重比例值

4:可以分配的剩余空间 * 单个子元素权重之和/所有子元素权重之和

案例一:

在父元素宽度没有撑满的情况下,使用flex-grow比重属性,用来占满父元素多余的空间。

.item {flex-basis: 14%;flex-grow:0.2;width:10px;border: 1px solid #999;background-color:aqua;font-size: 16px;font-family: bold;
}
.flex2 {flex-grow: 3;background-color:blue;
}

案例二:

之前写布局的时候,经常使用的布局方式如下,然后在子元素设置width:100%;

.wrap {width:562px;background-color: #999;display: flex;justify-content: space-around;
}
.item{width:100%;text-align:center;background-color:aquamarine;color:blueviolet;border: 1px solid #999;
}

 子元素使用flex-grow:1;flex-grow:1;也可以达到同样的效果

.wrap {width:562px;background-color: #999;display: flex;
}
.item{flex-grow:1;text-align:center;background-color:aquamarine;color:blueviolet;border: 1px solid #999;
}

 简写flex-grow:1 0 auto;

  flex-grow:1;

  flex-shrink: 0;

  flex-basis: auto;

.wrap {width:562px;background-color: #999;display: flex;
}
.item{flex: 1 0 auto;text-align:center;background-color:aquamarine;color:blueviolet;border: 1px solid #999;
}

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

相关文章:

  • 如何开发高效的企业内训APP?教育培训系统源码搭建实战详解
  • 【软考网工笔记】网络基础理论——传输层
  • 如何预防服务器后台爆破攻击
  • CMake笔记之在CMakeLists.txt文件中开启Debug模式
  • C++编程:模拟实现CyberRT的DataVisitor和DataDispatcher
  • 【Flutter】WillPopScope组件-监听物理返回键事件自定义返回事件
  • 【sqlserver】mssql 批量加载数据文件 bulk copy使用
  • flinkSql中累计窗口CUMULATE
  • 关于在ubuntu上无法运行EasyConnect的解决方法
  • 【Axure高保真原型】数值条件分组
  • python学习——字符串的拼接操作
  • 多线程篇-8--线程安全(死锁,常用保障安全的方法,安全容器,原子类,Fork/Join框架等)
  • el-select的搜索功能
  • MFC实现全屏功能
  • 网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)
  • v-model 根据后端接口返回的数据动态地确定要绑定的变量
  • 图形开发基础之在WinForms中使用OpenTK.GLControl进行图形绘制
  • 离散数学重点复习
  • Javaweb梳理21——Servlet
  • 推荐学习笔记:矩阵补充和矩阵分解
  • etcd分布式存储系统快速入门指南
  • 解决VUE3 Vite打包后动态图片资源不显示问题
  • 大数据新视界 -- 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)
  • Android学习14--charger
  • 页面开发样式和布局入门:Vite + Vue 3 + Less
  • 瑞芯微RK3566/RK3568开发板安卓11固件ROOT教程,Purple Pi OH演示
  • Netty 入门应用:结合 Redis 实现服务器通信
  • 试题转excel;pdf转excel;试卷转Excel,word试题转excel
  • 查看网卡设备Bus号
  • 鸿蒙Next星河版高级用例之网络请求和自适应布局以及响应式布局