css3中 弹性盒模型布局之box-flex
box-flex:也就是让子容器针对父容器的宽高属性依照一定的规则来划分
Eg:
html代码:
<div class="wrap">
<div class="box1">01</div>
<div class="box2">02</div>
<div class="box3">03</div>
</div>
CSS样式:
<style type="text/css">
body,div { background:#fff; margin:0; padding:0;}
.wrap { width:600px; height:200px; color:#fff; margin:20px 0 0 20px; text-align:center;
display:-moz-box; display:-webkit-box; display:box;
-moz-box-orient:block-axis; -webkit-box-orient:block-axis; box-orient:block-axis;
-moz-box-direction:reverse; -webkit-box-direction:reverse; box-direction:reverse;
}
.box1 {background:red;
-moz-box-flex:3; -webkit-box-flex:3; box-flex:3;
-moz-box-ordinal-group:1; -webkit-box-ordinal-group:1; box-ordinal-group:1;
}
.box2 {background:green;
-moz-box-flex:1; -webkit-box-flex:1; box-flex:1;
-moz-box-ordinal-group:3; -webkit-box-ordinal-group:3; box-ordinal-group:3;
}
.box3 {background:blue;
-moz-box-flex:2; -webkit-box-flex:2; box-flex:2;
-moz-box-ordinal-group:2; -webkit-box-ordinal-group:2; box-ordinal-group:2;
}
</style>
预览效果:
解析:
先看父级的元素中中设置的属性
1、box-orient:block-axis; 使得子元素依照块级类型竖向显示。
2、box-direction:reverse; 使得子元素显示顺序与默认相颠倒。
再看子元素中的属性(这个以红色区域且标有01文字的模块为例来做具体介绍)
1、box-flex:3; 子元素按照无级元素设置了占有比例。
从全局来看,一共将低级元素划分成了6份。而红色区域是占了3/6的。即上图中显示所总体高度的1/2。
2、box-ordinal-group:1; 即给每个子元素定义了一个组,则依照组的大小来呈现,先小后大; 依照组中定义的大小,本应该是红色居上、蓝色居中、绿色最下显示,而在父级的元素中中定义了一个子元素的反向呈现方式(box-direction:reverse),即与默认相反。
讲到这里。我想大家都豁然开朗了吧!呵呵,当然也存在疑问。假设想让当中某一模块设置为固定数字。那么其它模块又会按如何的比例来呈现呢?我们能够再看一下以下这个样例(由例1稍做修改)。
静态代码不变、样式由之前的改为:
<style type="text/css">
body,div { background:#fff; margin:0; padding:0;}
.wrap { width:600px; height:200px; color:#fff; margin:20px 0 0 20px; text-align:center;
display:-moz-box; display:-webkit-box; display:box;
-moz-box-orient:block-axis; -webkit-box-orient:block-axis; box-orient:block-axis;
-moz-box-direction:reverse; -webkit-box-direction:reverse; box-direction:reverse;
}
.box1 {background:red;
-moz-box-flex:3; -webkit-box-flex:3; box-flex:3;
-moz-box-ordinal-group:1; -webkit-box-ordinal-group:1; box-ordinal-group:1;
}
.box2 {background:green;
height:100px;
-moz-box-ordinal-group:3; -webkit-box-ordinal-group:3; box-ordinal-group:3;
}
.box3 {background:blue;
-moz-box-flex:2; -webkit-box-flex:2; box-flex:2;
-moz-box-ordinal-group:2; -webkit-box-ordinal-group:2; box-ordinal-group:2;
}
</style>
预览效果:
这个时候。绿色模块的高度是固定的,设置为100,占领了父元素的一半。
从预览图能够看出,无论哪个模块。一旦设置了固定的宽或者是高,则优先级会比較高。而其它模块呢,还是依照之前的那种思路。用对应比例来显示。要注意的是,这时候的总宽或者高就变了。应
css3中 弹性盒模型布局之box-flex的更多相关文章
- CSS3 中弹性盒模型--容器的属性
1.display : flex | inline-flex注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性 将失效. 2.flex-direction ...
- CSS3弹性盒模型布局模块介绍
来源:Robert’s talk原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-in ...
- 87.CSS Flex 弹性盒模型布局教程(共用的css在48篇文章gird)
CSS Flex 弹性盒模型布局教程 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. flex布局就是给任何一个容器添加 dis ...
- 彻底搞懂flex弹性盒模型布局
为什么要用flex 基于css3简单方便,更优雅的实现,浏览器兼容性好,传统的css实现一个div居中布局要写一堆代码,而现在几行代码就搞定了,没有理由不用flex. 兼容性: Base Browse ...
- CSS-3 新弹性盒模型属性
flex 语法:flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ] 取值: none:none关键字的计算值为: 0 0 au ...
- css3之弹性盒模型初探(一)
什么是弹性盒模型? 弹性盒模型是指在父级改变大小的时候内部的自己元素也会相应的改变大小,即子集会按照父级的大小按比例自适应大小. 弹性盒模型的提出可以解决一些响应式布局的需求 如何使用弹性盒模型? ...
- 详细介绍弹性盒模型(display:flex)
弹性盒模型,即Flexbox,是css3中的新特性,其实弹性盒模型的原身是dispaly:box:这里,我们暂时不考虑旧的,我们只看新的. 为容器指定弹性盒子,只需在父元素(也就是容器)中设置:dis ...
- css3之弹性盒模型(Flex Box)
CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时 ...
- CSS3弹性盒模型布局模块
原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-introduction-and-d ...
随机推荐
- Win7 + VS2015 + CMake3.6.1-GUI + Makefile 编译开源库
CMake生成Unicode版本VC工程 Just add this line in your top CMakeLists.txt file: add_definitions(-DUNICO ...
- maven 纯注解一步一步搭建Spring Mvc项目(入门)
初次接触spring MVC项目,通过一段时间的学习,本文介绍一种以纯注解的方法去配置spring MVC环境,让那些配置的.xml文件统统见鬼吧. 什么是Spring MVC Spring MVC属 ...
- JS压缩图片(canvas),返回base64码
上传图片时总会遇到图片过大上传不上去的问题,本方法是在网上搜的压缩图片的例子,我测试过了,确实能用,但是照搬别人的代码,发现压缩后图片会失真,不清晰,现经修改图片清晰度还可以,不仔细看差别不大,so, ...
- Android彻底组件化方案实践
本文提出的组件化方案demo已经开源,参见文章Android彻底组件化方案开源. 文末有罗辑思维"得到app"的招聘广告,欢迎各路牛人加入!! 一.模块化.组件化与插件化 项目发展 ...
- 【译】x86程序员手册17-第6章保护
Chapter 6 Protection 第六章 保护 6.1 Why Protection? 为什么要保护? The purpose of the protection features of th ...
- Python语言之变量2(命名规则,类型转换)
1.命名规则 1.起始位为字母(大小写)或下划线('_') 2.其他部分为字母(大小写).下划线('_')或数字(0-9) 3.大小写敏感 2.先体验一把: #Ask the user their n ...
- CNN结构:HSV中的饱和度解析
参考:颜色的前世今生-饱和度 详解,划重点- 关键这个"纯"是指什么? 是指颜色明亮么?明度高的颜色看起来也明亮啊,不一定纯度高啊- 是说颜色鲜艳么?颜色 "不鲜艳&qu ...
- Memcached 之PHP实现服务器集群一致性hash算法
/** * memcached 一致性hash,分布式算法 * Class MemcacheCluster */ class MemcacheCluster { protected $nodes = ...
- vue04 组件化开发 Vue自动化工具
5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...
- Shell脚本备份数据库
使用crontab 定时备份数据库 1. 编辑crontab 规则,定时执行脚本 2. 在my.cnf 文件中加 [mysqldump] user=root password=密码 3.编写shell ...