flex 布局,flex-grow 宽度未等比放大问题解决办法
本文转载自: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设置的是剩余空间的分配比例,分配之前一定要先除去实际固定空间在进行计算。
flex 布局,flex-grow 宽度未等比放大问题解决办法的更多相关文章
- [flex布局]-flex教程
简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...
- [flex 布局]——flex教程
简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...
- flex布局基本语法
注 : 本文章按照菜鸟教程 Flex布局语法教程为原型稍加修改,以方便自己学习. 菜鸟教程地址:http://www.runoob.com/w3cnote/flex-grammar.html 2009 ...
- 第103天:CSS3中Flex布局(伸缩布局)详解
一.Flex布局 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行 ...
- flex布局中flex-grow与flex-shrink的计算方式
CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其中决定 Flex 布局内项目宽度/高度的是三个属性: flex-basis, flex-grow, flex-shrink. flex ...
- flex布局使用
什么是flex布局 flex是flexible Box的缩写,意味"弹性盒子",用来为盒子状模型提供最大的灵活性 任何一个盒子都可以指定为flex布局 .box{ display: ...
- Flex布局的详细总结
Flex布局的详细总结 1.认识flex布局 flex布局(flexible布局,弹性布局),是目前web开发中使用的最多的布局方案. 两个重要概念: 开启flex布局的元素叫flex contain ...
- 微信小程序开发:Flex布局
微信小程序页面布局方式采用的是Flex布局.Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局.Flex布局提供了元素在容器中的对齐,方向以及顺序,甚至他们 ...
- 微信小程序之Flex布局
微信小程序页面布局方式采用的是Flex布局.Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局.Flex布局提供了元素在容器中的对齐,方向以及顺序,甚至他们 ...
随机推荐
- NIO浅析(一)
一:NIO与IO的区别 1.NIO面对的是缓冲区,IO面对的是流 2.NIO是非阻塞的,IO是阻塞的 3.NIO中引入了选择器 二:既然NIO面对的是缓冲区,那就先来了解缓冲区 1.NIO中Buffe ...
- java 并发——synchronized
java 并发--synchronized 介绍 在平常我们开发的过程中可能会遇到线程安全性的问题,为了保证线程之间操作数据的正确性,我们第一想到的可能就是使用 synchronized 并且 syn ...
- Jmeter+ InfluxDB+Grafana安装配置
前置条件: 系统:windows jmeter:5.1 InfluxDB安装 下载InfluxDB-v1.7.9和Chronograf-v1.7.14(InfluxDB的可视化web端). 下载完成之 ...
- 从输入url到显示网页,发生了那些事情?
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等. 本文将更深入的研究当你输入一个网址 ...
- [轉]User namespaces – available to play!
User namespaces – available to play! Posted on May 10, 2012by s3hh Over the past few months, Eric Bi ...
- Python建立Tab自动补全的脚本
Python建立Tab自动补全的脚本 #!/usr/bin/python #python steup file import sys import readline import rlcomplete ...
- Pytest conftest共享数据及不同层次共享
数据共享:在 conftest.py配置里写方 法可以实现数据共享, 不需要import导入.可 以跨文件共享 1.建立一个新的文件,文件名必须叫"conftest.py",然后写 ...
- BUUCTF RE部分题目wp
RE 1,easyre拖进ida,得到flag 2,helloworld 将文件拖入apk改之理,得到flag 3,xor拖进ida,就是简单异或,写脚本 glo=[0x66,0x0a,0x6b,0x ...
- java如何生成一个0-100的随机整数?
public class Test {public static void main(String[] args) {int num=(int)(Math.random()*101);System.o ...
- Tmux 简单配置使用
Tmux Prefix (prefix) Tmux 使用 Prefix 以将自身的快捷键与其它应用区分,运行 Tmux 快捷键时首先按下这个 Prefix (默认是 Ctrl-b 组合键),松手后紧接 ...