首页 技术 正文
技术 2022年11月11日
0 收藏 798 点赞 3,202 浏览 1633 个字

本文转载自:https://blog.csdn.net/sinat_41695090/article/details/79215893

先粘贴上一段代码,flex总体布局

  

<body>  <div class="total">    <div class="one">第一个</div>    <div class="two">第二个</div>    <div class="three">第三个</div>  </div></body>

css样式

*{  margin:;  padding: ;}.one{  background: #f00;}.two{  background: #0f0;  height: 30px;}.three{  background: #00f;  height: 60px;}.total{  width: 900px;  height: 100px;  display: flex;
  
  display: -webkit-flex;  background: #ff0;  flex-direction: row;  -webkit-flex-direction:row;  flex-wrap:wrap;  -webkit-flex-wrap:wrap;  justify-content:space-between;  -webkit-justify-content:space-between;}.total>div{  flex-grow:;  -webkit-flex-grow:;}.total>.two{  flex-grow:;  -webkit-flex-grow:;}

第二个div设置flex-grow为2,另外两个均为1.

实际效果第二个div并没有是其他两个div的宽度的二倍,似乎是不到二倍,但确实是比另外两个要大,这是为什么呢?

后来经过一番折腾终于搞明白了,是自己的理解有误,参考于阮一峰先生的相关文章,链接在这里flex布局教程

自己总结了三个解决办法:

一、结合flex-basis

将整体div样式进行修改,加入flex-basis属性

.total>div{  flex-grow:;  -webkit-flex-grow:;  flex-basis:;  -webkit-flex-basis:;}

设置项目固定空间均为0;
二、不单设置flex-grow属性,设置flex综合属性

这一点在阮一峰老师文章中有提到,建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

单单设置flex-grow的数值时,因为这时flex-basis的值为auto,项目占据了相应的固定空间,导致设置错误。

.total>div{  flex:;}.total>.two{  flex:;}

三、去掉div文本内容

这种方法是使div中不含有固定宽度,设置二倍不成功的根本原因就在这儿,因为div中的文本占有固定宽度,我们都知道flex-grow设置的是剩余空间的大小分配,而剩余空间就是去掉文本之后的空间,大家可以自己计算一下,为什么不是我们想要的二倍,去掉div中的文本,就相当于去掉了固定空间,如下

<body>  <div class="total">    <div class="one"></div>    <div class="two"></div>    <div class="three"></div>  </div></body>
.total>div{  flex-grow:;  -webkit-flex-grow:;}.total>.two{  flex-grow:;  -webkit-flex-grow:;}

这样设置出来也是二倍关系,当然,这种方法肯定不推荐

其实,这三种方法的原理实际上是一样的,都是使固定空间为0,切记flex-grow设置的是剩余空间的分配比例,分配之前一定要先除去实际固定空间在进行计算。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,499
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,914
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,746
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,503
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,142
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,305