详解flex:1什么意思_CSS教程_CSS_网页制作

来源:脚本之家  责任编辑:小易  

简单的来说一下在别人问你这个问题的时候怎么来回答它

前端新人,如有错误求大佬指出~求教??

情景复现

大佬提问:“你知道flex: 1;的更深层次的内容吗?”

我的回答:

flex:1实际代表的是三个属性的简写 flex-grow是用来增大盒子的,比如,当父盒子的宽度大于子盒子的宽度,父盒子的剩余空间可以利用flex-grow来设置子盒子增大的占比 flex-shrink用来设置子盒子超过父盒子的宽度后,超出部分进行缩小的取值比例 flex-basis是用来设置盒子的基准宽度,并且basis和width同时存在basis会把width干掉

所以flex:1;的逻辑就是用flex-basis把width干掉,然后再用flex-grow和flex-shrink增大的增大缩小的缩小,达成最终的效果。

flex-grow:1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 100px;
    }
 
    .box div:nth-child(1) {
      flex-grow: 1;
    }
 
    .box div:nth-child(2) {
      flex-grow: 3;
    }
    .box div:nth-child(3) {
      flex-grow: 1;
    }
 
 
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

父盒子剩余空间的200

第一个盒子扩大1/5,100+40 = 140 第二个盒子扩大3/5,100+120=220 第三个盒子扩大1/5,100+40= 140

flex-shrink:1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 200px;
    }
 
    .box div:nth-child(1) {
      flex-shrink: 1;
    }
 
    .box div:nth-child(2) {
      flex-shrink: 2;
    }
 
    .box div:nth-child(3) {
      flex-shrink: 1;
    }
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

父盒子的宽度为500,子盒子的宽度为600,超出100,超出的100,如何进行比例缩放

第一个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175
第二个盒子:2/4 * 100 = 50 最终第二个盒子200-50 = 150
第三个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175

flex-basis:0%

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 100px;
    }
 
    .box div:nth-child(1) {
      flex-basis: 50px;
    }
 
    .box div:nth-child(2) {
      flex-basis: 100px;
    }
 
    .box div:nth-child(3) {
      flex-basis: 50px;
    }
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

这样width的宽度就已经被flex-basis:0%干掉了

到此这篇关于详解flex:1什么意思的文章就介绍到这了,更多相关flex:1详解内容请搜索真格学网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持真格学网!


  • 本文相关:
  • 如何解决flex文本溢出问题小结
  • 关于flex 上下文中自动 margin的问题(完整例子)
  • css flex布局超长自动换行的示例代码
  • css中flex和inline-flex的区别详解
  • flex是什么及flex布局语法教程详解
  • flex弹性盒布局最后一行左对齐的实现思路
  • 详解css中的flex布局
  • flex是什么?说得具体点
  • 好孩子的安全座椅cs888和cs558有什么区别
  • flex、flash、ria 、actioncsript之间的关系
  • flash cs 中是否可以用flex sdk? 怎么用?
  • flexscan3d可以用UI-6240SE-M的 相机吗
  • flex写游戏需要创建什么项目
  • flex builder ,flashcs3,action script3是同一软件吗,有什么区别,编...
  • flex4新建项目 flex项目 ActionScript项目 Flash Professional项目...
  • 好孩子汽车安全座椅cs688与cs920有什么区别
  • flex的用处
  • Flex与***.net如何做事件交互?
  • Flex加载图片时会闪的问题
  • 求 flex as关于动画播放控制方面的资料。as3.0 和 as4.5 都可以...
  • CS专业想从事web前端工作 研究生适合考什么方向
  • 好孩子的安全座椅cs888和cs558有什么区别???
  • 好孩子的安全座椅cs888和cs558有什么区别
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全主页网页制作csscss教程详解css中的flex布局css教程css3div+css教程web标准教程浏览器兼容教程css布局实例css控制ul li 的样式详解(推荐)html设置超链接字体颜色和点击后的字体颜色div水平垂直居中的完美解决方案css设置各种中文字体如雅黑、黑体、宋体、楷体等等css 文本字体颜色设置方法(css color)css自定义select下拉选择框的样式(不用其他标签模拟)css 漂亮搜索框美化代码css 中的background:transparent到底是什么意思有什么css圆角效果 -webkit-border-radius(css3中border-radcss 首行缩进两个文字详解flex:1什么意思css子盒子水平和垂直居中的五种方法css让页脚保持在底部位置的四种方案纯css实现一个简单步骤条的示例代码css中使用grid布局实现一套模板多种布局如何解决flex文本溢出问题小结css实现背景图片全屏铺满自适应的3种方式使用css定位html元素的实现方法css 实现角标效果的完整代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved