什么是弹性盒模型?
弹性盒模型是指在父级改变大小的时候内部的自己元素也会相应的改变大小,即子集会按照父级的大小按比例自适应大小。 弹性盒模型的提出可以解决一些响应式布局的需求
 
如何使用弹性盒模型?
建立弹性盒模型: 给父级设置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. mysql 代价

    mysql cbo cost base optimizer 基于代价,数据是一直变化的oracle8 以前是rbo rule base optimizer 基于规则, 如果sql使用了索引,必须使用索 ...

  2. string.Format("rspauth={0}",

    public string rspauth(string Username, string Realm, string Password, string Nonce, string Cnonce,   ...

  3. Idea中更改主题后xml配置文件局部黄色背景颜色去除

    相信很多小伙伴和我一样一样的,喜欢更换Idea的主题,但是细心的小伙伴就发现了,每次更改主题后xml配置文件就会局部产生黄色背景颜色,对于强迫症患者真的是够了,网上也有部分文章,但是不够详细,也跟Id ...

  4. python爬虫之urllib库(一)

    python爬虫之urllib库(一) urllib库 urllib库是python提供的一种用于操作URL的模块,python2中是urllib和urllib2两个库文件,python3中整合在了u ...

  5. vscode安装golang插件失败问题

    vscode安装golang插件失败问题 dlv go-outline go-symbols gocode-gomod gocode 代码补全 godef 代码跳转 golint gopkgs gor ...

  6. ImportError: libSM.so.6: cannot open shared object file: No such file or directory

    Solution sudo apt-get install libsm6 Similarly ImportError: libXrender.so.1: cannot open shared obje ...

  7. jmeter安装部署、maven路径配置

    jmeter下载地址: https://jmeter.apache.org/download_jmeter.cgi 解压文件 配置jmeter环境变量 (1)设置jmeter解压目录的JMETER_H ...

  8. 使用WinSCP进行简单代码文件同步

    前言传输协议FTPFTPSSFTPSCP为什么使用WinSCP?CMD的FTP命令FileZillaPuTTYrsyncSublime的SFTP插件WinSCPWinSCP进行简单代码文件同步总结备注 ...

  9. Eclipse的简单的用法大全

    Eclipse我认为最重要的功能:断点调试 Debug的作用: 调试程序并且查看程序的执行流程 如何查看程序执行的流程 断点(就是一个标记,表示从哪里开始) 设置断点(在你想要断点的代码的左边双击即可 ...

  10. 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14

    首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便.所以从现在起,我要给代码加上行号.我写博客用的这个插入代码的插件,确实不支持自动插入行号.我真的没有找到什么好方法,无奈之下,只能按照 ...