什么是弹性盒模型?
弹性盒模型是指在父级改变大小的时候内部的自己元素也会相应的改变大小,即子集会按照父级的大小按比例自适应大小。 弹性盒模型的提出可以解决一些响应式布局的需求
 
如何使用弹性盒模型?
建立弹性盒模型: 给父级设置css属性display: flex; 即可。
若子集宽度大于父级宽度则子集会整体压缩或者给子集设置css属性flex-shrink: 1;浏览器会根据flex-shrink的比值进行按比例缩放。
若子集宽度小于父级宽度则可给子集设置flex-grow: 1;浏览器会根据flex-grow的比值按比例扩大,将剩余部分分布给子集元素
 
在弹性盒模型中,我们把父级叫做容器 子集叫做项目
 
 
弹性盒模型中项目有哪些可设置的css属性?
1.flex-shrink: 设置缩小比例 默认子集的该值均为1
案例:
代码:
 
效果:
分析:父级宽度: 500px 子集正常宽度每一个为300px 三个子集即需要父级900px的空间,但是父级宽度只有500px因此子集需要压缩400px,子集设置了flex-shrink,压缩比例为demo1:demo2:demo3 = 1 : 2 : 3;即 压缩的400px将分成6份每一份为66.6666 即demo1需要减掉66.6666 , demo2需要减掉 133.3333, demo3要减掉199.9999,即demo1剩余部分为 300 - 66.6666 = 233.3334px , demo2剩余部分为 300 - 133.3333 = 166.6667, demo3剩余部分为 300 - 199.9999 = 100
 
2.flex-grow: 设置扩大比例
不加flex-grow属性时默认flex-grow: 0;
案例代码如下
 
效果:
 
 
添加flex-grow属性之后的代码:
 
 
效果:
分析:父级宽度: 500px 子集正常宽度每一个为100px 三个子集即需要父级300px的空间,父级宽度500px超出子集200px,子集设置了flex-grow会按比例分配剩余的200px,分配比例为demo1:demo2:demo3 = 1 : 2 : 3;即 剩余的200px将分成6份,每一份的宽度为33.3333px;demo1将分配33.3333px, demo2将分配 66.6666px, demo3将分配99.9999px, 即demo1的宽度变为: 100px + 33.3333px = 133.3333px, demo2的宽度变为 100px + 66.6666px = 166.6666px , demo3的宽度变为 100px + 99.9999px = 199.9999px。
 
 

欢迎加入web前端冲击顶级高薪大厂学习群,群聊号码:820269529

css3之弹性盒模型初探(一)的更多相关文章

  1. CSS-3 新弹性盒模型属性

    flex 语法:flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ] 取值: none:none关键字的计算值为: 0 0 au ...

  2. css3之弹性盒模型(Flex Box)

    CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时 ...

  3. css3中 弹性盒模型布局之box-flex

    box-flex:也就是让子容器针对父容器的宽高属性依照一定的规则来划分 Eg: html代码: <div class="wrap"> <div class=&q ...

  4. CSS3 中弹性盒模型--容器的属性

    1.display : flex | inline-flex注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性 将失效. 2.flex-direction ...

  5. (转)详解css3弹性盒模型(Flexbox)

    今天刚学了css3的弹性盒模型,这是一个可以让你告别浮动.完美实现垂直水平居中的新特性. Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似 ...

  6. css3弹性盒模型(Flexbox)

    Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间,当可用空间变大,Flex元素将伸展大小以填充可用空间,当 ...

  7. 详解css3弹性盒模型(Flexbox)

    目前没有浏览器支持 box-flex 属性. Firefox 支持替代的 -moz-box-flex 属性. Safari.Opera 以及 Chrome 支持替代的 -webkit-box-flex ...

  8. css3弹性盒模型

    一.简介 css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间.使用该模型,可以很轻松的创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局. 目 ...

  9. CSS3弹性盒模型flexbox布局基础版

    原文链接:http://caibaojian.com/using-flexbox.html 最近看了社区上的一些关于flexbox的很多文章,感觉都没有我这篇文章实在,最重要的兼容性问题好多人都没有提 ...

随机推荐

  1. [转]iOS系列译文:深入理解 CocoaPods

    Cocoapods是 OS X 和 iOS 下的一个第三方库管理工具.你能使用CocoaPods添加被称作“Pods”的依赖库,并轻松管理它们的版本,而不用考虑当前的时间和开发环境. Cocoapod ...

  2. 对路径访问拒绝,要加上具体filename/c.png

    string strPath = Path.Combine(FilePath, DateTime.Now.ToString("yyyy-MM-dd")); if (!Directo ...

  3. NSInvocation 调用block clang代码转换c++

    NSInvocation 调用block cpp 转换 fatal error: 'UIKit/UIKit.h' file not found https://blog.csdn.net/yst199 ...

  4. 大象——Thinking in UML

    目录 大象--Thinking in UML 面向对象 普通民众的面向对象 大师眼中的面向对象 大象--Thinking in UML 大音希声,大象希形, 近来闲暇,随手翻起一些曾经看过的书籍,才发 ...

  5. Maven 整合 robot framework 进行测试

    1. 在maven pom.xml中先配置robot framework的plugin: <plugin> <!-- integration test runner (robot-f ...

  6. JavaScript 流程控制器

    已知有流程step1.step2.step3.step4.step5 , 如何控制输出下面过程 例如: 1:step1.step2.step3.step2.step3.step4.step5 2:st ...

  7. KB4284826 远程桌面发生身份验证错误,要求的函数不受支持

    win -r  -> run  ->  gpedit.msc 链接:https://www.zhangfangzhou.cn/authentication-error.html远程桌面发生 ...

  8. 《The One 团队》第二次作业:团队项目选题

    项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10726884.h ...

  9. Ubuntu 16.04安装SecureCRT替代XShell

    XShell应该是最强大的,在Ubuntu下只有SecureCRT能实现跨平台(Linux/Windows/Mac),并且可以实现Tab的功能等.当然,还有其它的类似PuTTY这些.Windows下建 ...

  10. 【C语言】-指向一维数组元素的指针

    本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能 ...