Flex:CSS3布局利器
实习以来做了三个小控件,都是用的CSS2.1里传统的DIV+CSS布局方式,综合使用position、margin、float、BFC等属性或特性将元素放到指定的位置上。然而面对日益复杂的界面,这些来自于上个时代、主要针对普通文档流的属性越来越力不从心,比如一个垂直居中就很让人头疼。后来遇到一个布局问题,苦思良久无解,然后在前辈的指点下使用了Flex,问题瞬间解决。竟然这么神奇!那一刻真有一种相见恨晚的感觉。
Flex,顾名思义,flexible,可以自动根据布局需要灵活地调整被布局元素的位置和宽高,非常适于需要对齐、居中、等间距等规整布局,以及布局元素宽度不定的情况。
欲使容器元素变为flex布局上下文,块级元素可以声明display为flex,行内元素可以声明为inline-flex。布局方式主要在容器元素上指定。
身处flex上下文的元素,float、clear和vertical-align属性失效。position为absolute和fixed的元素将脱离文档流,而不参与flex布局;relative元素可以正常参与flex布局。
Flex上下文中的元素沿轴排布,默认横向从左到右的叫主轴,竖向从上到下的叫交叉轴,当然方向是可以改的。元素沿主轴依次排列,与主轴正交方向的对齐方式参考交叉轴。
容器属性
规定沿主轴排布方式的属性有:
flex-direction: row(默认) | row-reverse | column | column reverse 该属性规定主轴方向。
flex-wrap: no-wrap(默认) | wrap | wrap-reverse(从底往上逐行排版)
flex-flow是以上两个属性的简写
justify-content: flex-start(默认) | flex-end | center | space-between | space-around 注意!这里用的start、end而不是left、right,因为主轴方向不一定是从左向右~
规定沿交叉轴排布方式的属性有:
align-items: strech(默认) | flex-start | flex-end | center | baseline 重要属性!flex布局默认情况下会让未定高元素填满父容器,这在CSS2.1里实现巨麻烦的效果,就这么轻而易举地解决啦!垂直居中也简单,一条语句搞定!简直喜大普奔!
align-content: stretch(默认) | flex-start | flex-end | center | space-between | space-around 多根主轴(多行)在交叉轴上的排布方式,单轴时无效。默认会拉伸每个主轴上的元素以填满交叉轴长。利用该属性很容易实现多行居中。
子元素属性
order:整数,默认0,决定沿主轴的出场顺序
flex-grow: 整数,默认0,定义主轴有多余空间时项目放大的比例。具体地说,当只有一个项目该属性不为0时,它将占满剩余空间;当有多个时,将按该属性值的比例瓜分剩余空间。
flex-shrink: 整数,默认1,定义主轴空间不足时项目缩小的比例,类似grow。
flex-basis: 长度,默认auto,定义项目占据主轴的长度。浏览器据此计算主轴剩余空间。
flex: 以上三个属性的简写,为none时三个值分别为0 0 auto
align-self: 取值同align-items,多了个auto。允许单项与其他项不一样的对齐方式,覆盖align-items的效果。默认值auto继承父元素的align-items,或等于stretch。
Flex:CSS3布局利器的更多相关文章
- 整理CSS中display flex(布局利器)
关于display:flex布局,有人了解颇深,我也是看着别人的东西学习的. display:flex的布局是什么.基本概念之类的我根本就不了解,只会用.每次看到概念之类的东西,我都是扫一眼就过去. ...
- CSS3动画属性和flex弹性布局各个属性
[CSS3动画的使用] 1.声明一个关键帧(动画): @keynames name{ from{} to{} } 每个阶段的写法: ①可以直接使用from-to的写法 ②可以设置0%-100%的写法, ...
- 前端CSS3布局display:flex用法
前端CSS3布局display:flex用法 先附上代码 点击查看代码 <!DOCTYPE html> <html> <head> <meta charset ...
- CSS3新属性之---flex box布局实例
flex box布局实例 flex的强大之处在于不管什么布局,几行命令即可实现 /*本节模板div元素(代表骰子的一个面)是Flex容器,span元素(代表一个点)是Flex项目.如果有多个项目,就要 ...
- web前端学习(三)css学习笔记部分(8)-- SVN的介绍和应用、CSS动画效果、CSS3布局属性全接触
15.SVN的介绍和应用 15.1.SVN的介绍和应用课程概要 将代码进行集中管理,有版本号的进行迭代,方便集体工作的build流程 15.2.SVN的介绍 SVN是Subversion的简称,是一个 ...
- css进阶之二:flex弹性布局
布局模式是指一个盒子与其兄弟.祖先盒的关系决定其尺寸与位置的算法.css2.1中定义了四种布局模式,分别是块布局.行内布局.表格布局.以及定位布局.css3引入了新的布局模式Flexbox布局,灵活度 ...
- 前端CSS3布局display:grid用法
前端CSS3布局display:flex用法 1. 先附上代码 点击查看代码 <!DOCTYPE html> <html> <head> <meta char ...
- 2021年3月-第02阶段-前端基础-Flex 伸缩布局-移动WEB开发_流式布局
移动web开发流式布局 1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器.谷歌浏览器.火狐浏览器.QQ浏览器.百度浏览器.搜狗浏览器.IE浏览器. 移动端常见浏览器:UC浏览器, ...
- CSS弹性盒模型flex在布局中的应用
× 目录 [1]元素居中 [2]两端对齐 [3]底端对齐[4]输入框按钮[5]等分布局[6]自适应布局[7]悬挂布局[8]全屏布局 前面的话 前面已经详细介绍过flex弹性盒模型的基本语法和兼容写法, ...
随机推荐
- http一问一答
1.用户浏览网站时,发起请求和得到响应的基本过程是什么样的?为什么用户键入一个网址往往会发起多个请求? 首先制作一个非常简单的网页,它的内容只有一行: <html><body> ...
- asp.net 服务器端缓存与客户端缓存 [转]
介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管 理,有的提到的cache管理,这里我比较喜欢ca ...
- C#的类成员初始化顺序
C#的类成员的定义和声明如下 using UnityEngine; using System.Collections; public class TestController : ECControll ...
- smarty模板中类似for的功能实现
1. 功能说明,在页面使用smarty循环100次输出,类似for循环100次 {section name=total loop=100} {$smarty.section.total.index+1 ...
- 传输层之UDP
1.UDP的定义 跟tcp一样,我们把她定义为: 无连接的,不可靠的,用户数据报协议. 从中我们看到了:无连接和不可靠,这是它的缺点也是它的优点,因为他选择了性能,舍弃了部分安全,节约资源,速度快. ...
- Area - POJ 1265(pick定理求格点数+求多边形面积)
题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少. 分析: 1.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其 ...
- IOS开发之内存管理--dealloc该写些什么
在非ARC开发环境中,dealloc是类释放前,清理内存的最后机会.到底那些变量和属性该释放呢,一些特殊的类(nstimer,observer)该怎么释放.需要注意的是不释放会引起内存泄露,过度释放也 ...
- java的单例设计模式
java的单例设计模式包括:饿汉设计模式和懒汉设计模式: 步骤: 1.创建一个对象把他设置为私有的成员变量,保证唯一 2.私有构造方法,防止new一个对象. 3.定义一个公开的静态方法,返回第一步创建 ...
- java-常用快捷键
alt+/:代码提示 ctrl+/:代码提示 ctrl+1:快速生成impl代码
- IOS开发之网络开发工具
IOS开发之网络开发工具 做移动端开发 常常会涉及到几个模块:1.网络检測 2.网络请求get和post请求 3.文件上传 4.文件下载 5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...