浅析flex 布局
Flex基本概念:
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
flex容器中的每个单元块被称作flex item,其实flex布局的属性虽然分为父级容器的属性和子级容器的属性,但是其实所有的效果都是作用在子级容器上的,只不过父级容器的属性作用的是子集容器整体或者说是所有的子级容器。
如何创建flex布局?
给div这种块状元素元素设置display:flex
或者给span这种内联元素设置display:inline-flex
,flex布局就创建完成了
属性介绍以及示例:
作用在父元素上的属性。
1.flex-direction 控制flex子项整体的布局方向。
row : 子项按照布局顺序从浏览器的左侧开始横向排列
row-reverse :子项按照布局顺序从浏览器的右侧开始横向排列
column :子项按照布局顺序从浏览器的顶端开始竖向排列
column-reverse:子项按照布局倒序从浏览器的顶端开始竖向排列
2.flex-wrap 控制子项整体是单行显示还是换行显示,如果换行上下左右的方向是否反方向显示
nowrap:不换行,宽度不够时子项进行缩小
wrap:换行显示
wrap-reverse:反方向换行显示
3.flex-flow 上面两个属性的缩写形式
flex-flow: <‘flex-direction’> || <‘flex-wrap’>
默认值:row nowrap
4.justify-content 控制子项整体在水平方向上的对齐方式和分布方式
flex-start:与主轴的开始位置对齐
flex-end:与主轴的结束位置对齐
center:在主轴的中间位置
space-between:在水平方向上两端对齐
space-around:环绕对齐,子项左右两边的空余距离相等。
space-evenly:均分对齐,子项和子项之间包括子项和两端的距离相等
5.align-items 控制子项们在垂直方向上的对齐方式
stretch:
flex-start:主轴的开始位置对齐
flex-end:主轴的结束位置对齐
center:中间对齐
baseline:子项内容的基线对齐。
6.align-content 控制子项整体在垂直方向上的对齐方式和分布方式
flex-start:在主轴的开始位置对齐
flex-end:主轴的结束位置对齐
center:主轴中心对齐
space-between:两端对齐
space-around:环绕对齐(同上)
space-evenly:等距对齐
作用在子元素上的属性
任何子项都没有设置多余的属性时,子项按照内容顺序从左到右一次排序
1.order 定义子项的排序位置 属性值为整数类型 默认值为0 数值越小越靠前 如果想让某一个子项在最前面 可以给他设置一个比0小的数值例如-1
2.flex-grow 放大 属性值不支持负值 默认为0。将剩余空间平均分配,设置的属性值为总份数中的几份
下图中,我给第一个子项设置flex-grow为4,第四个子项设置flex-grow为2,所以剩余空间会被平均分成6份,1占4份,4占2份
3.flex-shrink 缩小 (flex空间不足时) 属性值不支持负值 默认值为1(即所有的子项都会收缩,设置为0则表示不收缩,保持原始的宽度)
下面的例子:所有盒子的初始宽度都是400,我只给序号为4的盒子设置了flex-shrink: 0 属性;所以即使整体布局的宽度变小时,序号4的盒子宽度也会依然保持400,而其他没有设置该属性的因为没有再设置新的属性值(所以默认为1),都发生了缩小
4.flex-basis 最小宽度 (在分配剩余空间之前的大小) 默认值 auto 有宽度值就是宽度值,没有就按内容来
当设置了flex-basis值之后,width的属性值不再起作用,即使设置了@important或者是行内样式也依然没有作用
例子:
html代码:
<div class="flexFather flexFather1">
<div class="child child1" style="background-color: aquamarine">1</div>
<div class="child child2" style="background-color: palevioletred">2</div>
<div class="child child3" style="width:200px;background-color: peachpuff">3</div>
</div>
css代码:
.flexFather{
display: flex;
flex-direction: row;
height:600px;
}
.flexFather .child{
flex-basis:400px;
height:100px;
width: 100px !important;
font:bold 20px/100px "Micsoroft";
text-align: center;
}
效果图:
5.flex 前面三个属性的缩写
flex: none | auto | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
默认值:0 1 auto
--------------------------------------------------------end------------------------------------------------------------
浅析flex 布局的更多相关文章
- Flex 布局教程:语法篇
作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...
- Flex 布局教程:实例篇
该教程整理自 阮一峰Flexible教程 今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我的主要参考资料是Landon Schropp的文章和Solved ...
- 在移动端中的flex布局
flex布局介绍: flex布局很灵活, 这种布局我们也可以称之为弹性布局, 弹性布局的主要优势就是元素的宽或者高会自动补全; flex布局实例: 比如有两个div,一个div的宽度为100px, ...
- css flex布局
关于flex布局的一些简单用法 效果(下图) 实现代码: <!--html--> <div class="wrap"> <div class=&quo ...
- FLEX布局的一些问题和解决方法
前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的 ...
- CSS之flex布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- flex布局示例
来自:授权地址 作者:水牛01248 几个横排元素在竖直方向上居中 display: flex; flex-direction: row;//横向排列 align-items: center;//垂直 ...
- 【转】Flex 布局语法教程
网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...
- [flex布局]-flex教程
简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...
随机推荐
- Oracle解决空表不导出
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows ...
- 后缀数组练习2:可重叠的k次最长重复子串
其实和上一题是差不多的,只是在二分check的时候有一些小小的改动 1468: 后缀数组2:可重叠的k次最长重复子串 poj3261 时间限制: 1 Sec 内存限制: 128 MB提交: 113 ...
- 六一广告页H5全屏滚动效果实现
明天就六一儿童了(放假了),在这里提前祝大家周末快乐,每逢节假日公司必然会推出h5活动页的需求,这次六一儿童节也不例外,产品这次倒是没提什么互动效果需求,只不过根据UI妹子给的设计图,图片与图片中颜色 ...
- oracle按用户导出导入表
查看备份目录:select * from dba_directories where directory_name='DATA_PUMP_DIR'; 导入导出的文件名默认都是以备份目录为相对路径. 按 ...
- Scala学习三——数组相关操作
一.若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 固定长度数组: 如val nums=new Array[Int](10) //10个整型数组,所有元素初始化为0; val ...
- PS 中混合模式
1.正常模式 2. 溶解 3. 变暗 : 把两幅图中较暗的区域显示出来 4.正片叠底 总体变暗,把图层中较浅的颜色由下一图层较深的颜色显现(和滤色相反) 7. 深色 取较小的颜色 8. ...
- mysql双yes但是同步延时问题
今天发现在153服务器insert一条数据,然后查看从库154和162都没有这条数据,但是在154和162执行show slave status 显示的双yes 后来重启了153 154 162 ...
- 4.移动端自动化测试-API讲解
一.前置代码 1.导入driver对象 from appium import webdriver 2.声明手机驱动对象 只有声明驱动对象我们才可以让手机完成脚本的操作 driver = ...
- SmartBinding与kbmMW#2
前言 在之前的文章中,我介绍了SmartBinding作为Delphi的一个新的易于使用和智能的绑定框架.介绍了包括绑定对象,列表,常规数据和可视控件,以及如何使用导航器,所有这些都用代码做了演示. ...
- WiFi 6是否适合个人用户
5G已经被热炒得家喻户晓,但与其对标的WiFi新技术标准——Wi-Fi 6却可能有着更好的经济和技术前景,WiFi 6也称为802.11ax,比过去的Wi-Fi技术更好,速度更快能跟5G对标,连接性更 ...