Flex弹性布局

 

1 Flex: 弹性布局 (转)

任何一个容器都可以指定为 Flex 布局。

1 .box {
2  display: flex;
3 }

行内元素也可以使用 Flex 布局。

1 .box{
2   display: inline-flex;
3 }

注意,设为 Flex 布局以后,子元素的 

float
clear 
和 
vertical-align 
属性将失效。

2 Flex: 基本概念

采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做

main start
,结束位置叫做
main end
;交叉轴的开始位置叫做
cross start
,结束位置叫做
cross end

项目默认沿主轴排列。单个项目占据的主轴空间叫做

main size
,占据的交叉轴空间叫做
cross size

3 容器的属性

flex-direction      // 属性决定主轴的方向(即项目的排列方向)
flex
-wrap        // 属性定义,如果一条轴线排不下,如何换行
flex
-flow       // 属性是
flex-direction
属性和
flex-wrap
属性的简写形式,默认值为
row nowrap

justify
-content   // 属性定义了项目在主轴上的对齐方式
align
-items     // 属性定义项目在交叉轴上如何对齐。
align
-content   // 属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用

3.1 flex-direction属性

flex-direction 
属性决定主轴的方向(即项目的排列方向)。

.box {
flex-direction: row | row-reverse | column | column-reverse;
}

它可能有 4 个值

1 row(默认值):      主轴为水平方向,起点在左端。
2 row-reverse:      主轴为水平方向,起点在右端。
3 column:          主轴为垂直方向,起点在上沿。
4 column-reverse:    主轴为垂直方向,起点在下沿。

3.2 flex-wrap属性

默认情况下,项目都排在一条线(又称"轴线")上。

flex-wrap 
属性定义,如果一条轴线排不下,如何换行。

1 .box{
2   flex-wrap: nowrap | wrap | wrap-reverse;
3 }

它可能取三个值。

(1)

nowrap
(默认):不换行。

(2)

wrap
:换行,第一行在上方。

(3)

wrap-reverse
:换行,第一行在下方。

3.3 flex-flow

flex-flow
属性是
flex-direction 
属性和
flex-wrap 
属性的简写形式,默认值为  
row nowrap

1 .box {
2   flex-flow: <flex-direction> || <flex-wrap>;
3 }

3.4 justify-content属性

justify-content 
属性定义了项目在主轴上的对齐方式。

1 .box {
2   justify-content: flex-start | flex-end | center | space-between | space-around;
3 }

它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

1 flex-start(默认值):左对齐
2 flex-end:右对齐
3 center: 居中
4 space-between:两端对齐,项目之间的间隔都相等。
5 space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

3.5 align-items属性

align-items 
属性定义项目在交叉轴上如何对齐

1 .box {
2   align-items: flex-start | flex-end | center | baseline | stretch;
3 }

它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

1 flex-start:交叉轴的起点对齐。
2 flex-end:交叉轴的终点对齐。
3 center:交叉轴的中点对齐。
4 baseline: 项目的第一行文字的基线对齐。
5 stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

3.6 align-content属性

align-content 
属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

1 .box {
2   align-content: flex-start | flex-end | center | space-between | space-around | stretch;
3 }

该属性可能取6个值。

1 flex-start:与交叉轴的起点对齐。
2 flex-end:与交叉轴的终点对齐。
3 center:与交叉轴的中点对齐。
4 space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
5 space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
6 stretch(默认值):轴线占满整个交叉轴。

4、项目的属性

以下6个属性设置在项目上。

1 order
2 flex-grow
3 flex-shrink
4 flex-basis
5 flex
6 align-self

4.1 order属性

order
属性定义项目的排列顺序。数值越小,排列越靠前,默认为 0。

1 .item {
2   order: <integer>;
3 }

4.2 flex-grow属性

flex-grow 
属性定义项目的放大比例,默认为
0
,即如果存在剩余空间,也不放大。

1 .item {
2   flex-grow: <number>; /* default 0 */
3 }

如果所有项目的 

flex-grow 
属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的 
flex-grow 
属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

4.3 flex-shrink属性

flex-shrink 
属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

1 .item {
2   flex-shrink: <number>; /* default 1 */
3 }

如果所有项目的 

flex-shrink 
属性都为1,当空间不足时,都将等比例缩小。如果一个项目的 
flex-shrink 
属性为0,其他项目都为1,则空间不足时,前者不缩小。

负值对该属性无效。

4.4 flex-basis属性

flex-basis
属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为
auto
,即项目的本来大小。

1 .item {
2   flex-basis: <length> | auto; /* default auto */
3 }

它可以设为跟

width
height
属性一样的值(比如350px),则项目将占据固定空间

4.5 flex属性

flex
属性是
flex-grow
flex-shrink
 和 
flex-basis
的简写,默认值为
0 1 auto
。后两个属性可选。

1 .item {
2   flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
3 }

该属性有两个快捷值:

auto
 (
1 1 auto
) 和 none (
0 0 auto
)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

4.6 align-self属性

align-self
属性允许单个项目有与其他项目不一样的对齐方式,可覆盖
align-items
属性。默认值为
auto
,表示继承父元素的
align-items
属性,如果没有父元素,则等同于
stretch

1 .item {
2   align-self: auto | flex-start | flex-end | center | baseline | stretch;
3 }

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

5 注

本文转自阮一峰的网络日志 

 

本文转载于:猿2048➧https://www.mk2048.com/blog/blog.php?id=h0ajakkj&title=Flex弹性布局

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

firewallD卸载Linux,在Ubuntu 18.04/16.04系统上安装和使用Firewalld的方法

本文介绍Firewalld在Ubuntu 18.04或Ubuntu 16.04发行版上的安装方法及基本用法。简介Firewalld是Linux防火墙管理工具&#xff0c;支持IPv4、IPv6、以太网桥和IPSet防火墙设置&#xff0c;它充当Linux内核的netfilter框架的前端&#xff0c;同时Firewalld是RHEL 7系列上的默认防…

PCGen的垃圾收集分析

介绍 我决定结合我的两个软件爱好&#xff0c;并在PCGen上进行一些分析&#xff0c; PCGen是一种流行的基于Java的开放源代码角色生成器&#xff0c;用于角色扮演游戏。 我用Censum &#xff0c;我们&#xff08; jClarity的&#xff09;新的垃圾收集日志分析工具来进行分析。 …

springboot不会运行gc_SpringBoot 和JVM 调优(深度好文,建议收藏)

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]项目调优作为一名工程师&#xff0c;项目调优这事&#xff0c;是必须得熟练掌握的事情。在SpringBoot项目中&#xff0c;调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.p…

3dobject用什么打开_第一次用开塞露是什么感觉?网友:像打开了新世界的大门

第一次用开塞露是什么感觉&#xff1f;网友:像打开了新世界的大门我妈说我小时候便秘去医院&#xff0c;医生给开了支开塞露&#xff0c;然后在医院的公厕里使用的&#xff0c;我妈的描述是:“要不是我手挪走的快点&#xff0c;就直接喷我手了”。。。。。。。。。。。。。。。…

Java 7中对String.substring的更改

众所周知&#xff0c;在您生成相同源字符串的许多子字符串的情况下&#xff0c;Java会优化子字符串操作。 它通过使用(value, offset, count)存储信息的方式来做到这一点。 请参阅以下示例&#xff1a; 在上图中&#xff0c;您会看到字符串“ Hello”和“ World&#xff01;”…

原生js创建模态框

1.效果图如下&#xff1a; 2.代码如下&#xff1a; <!DOCTYPE html><html><head><meta charset"UTF-8"><title>Test</title><style>#pageMask {visibility: hidden; position: absolute;left: 0px; top: 0px;width:…

CSS节选——选择器

CSS&#xff0c;cascading style sheet&#xff0c;层叠样式表&#xff0c;请留意层叠概念。 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before…

vue.js基础知识篇(7):表单校验详解

目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vuerequire("vue"); var VueValidatorrequire("vue-validator"); Vue.use(VueValidator); 2.直接使用script标签引入vue.js 要下载vue-validator&#xff0c…

SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

原文链接&#xff1a;https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时&#xff0c;有时候需要建立临时表&#xff0c;将查询后的结果集放到临时表中&#xff0c;然后在针对这个数据进行操作。 创建“临时表”&#xff08;逻辑上的临时表&…

zbb20170626 myeclipse 2017 ci 构建 spring hibernate struts jar

转载于:https://www.cnblogs.com/super-admin/p/7081209.html

Java线程:保留的内存分析

本文将为您提供一个教程&#xff0c;使您可以确定活动应用程序Java线程保留Java堆空间的数量和位置。 将提供来自Oracle Weblogic 10.0生产环境的真实案例研究&#xff0c;以使您更好地理解分析过程。 我们还将尝试证明过多的垃圾回收或Java堆空间的内存占用问题通常不是由真正…

软件测试白皮书-等价类

设有一个档案管理系统&#xff0c;要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月&#xff0c;并规定日期由6位数字字符组成&#xff0c;前4位表示年&#xff0c;后2位表示月。现用等价类划分法设计测试用例&#xff0c;来测试程序的"日期检查功能&qu…

深入css布局 (1) — 盒模型 元素分类

深入css布局&#xff08;1&#xff09;—— 盒模型 & 元素分类 “ 在css知识体系中&#xff0c;除了css选择器&#xff0c;样式属性等基础知识外&#xff0c;css布局相关的知识才是css比较核心和重要的点。今天我们来深入学习一下css布局相关的知识。” 首先来列下大纲 盒模…

批改网禁止粘贴怎么破_教育部对家长批改作业表态了,明令禁止!你怎么看?...

互联网的发展&#xff0c;的确方便了现代人生活。视频电话、出去买东西你都不用带钱带卡&#xff0c;手机一扫就可以完成支付。很多中小学的家长都会建一个家长群&#xff0c;方便老师和家长的沟通。这个群可以说是家长和学校的桥梁和纽带&#xff0c;家长们为了支持老师的工作…

MapReduce算法–顺序反转

这篇文章是介绍MapReduce算法的系列文章的另一部分&#xff0c;该书在使用MapReduce进行数据密集型文本处理中找到。 先前的文章是Local Aggregation &#xff0c; Local Aggregation PartII和创建共现矩阵 。 这次我们将讨论阶数反转模式。 顺序反转模式利用的MapReduce来计算…

液压支架销轴力学计算分析研究_基于RFID射频精准定位的智能开采研究与应用...

一、项目背景近年来随着智能开采技术的不断发展&#xff0c;装备和新工艺不断更新换代,在智能开采中&#xff0c;对采煤机位置的精准定位是能否实现智能开采的关键&#xff0c;只有准确无误地获取煤机的准确位置&#xff0c;才能实现工作面的智能化开采&#xff0c;进而提高生产…

您是否能及时编译?

还记得上次被C开发人员嘲笑的时候吗&#xff1f; Java如此繁琐&#xff0c;以至于他们甚至都不会考虑使用这种语言&#xff1f; 在许多方面&#xff0c;这一概念仍然成立。 但是对于典型的用法&#xff08;在大型企业的骨干中&#xff09;&#xff0c;Java性能绝对可以与许多竞…

2d物理引擎01

我一直想做一个游戏&#xff0c;但一直感觉自己水平不够 想了想觉得不去做的话就永远做不出来 所以有了这个博文 01 我需要一个东西来显示&#xff0c;很显然h5中canvas是很好的选择 <!DOCTYPE html> <html><head><meta charset"utf-8" />&l…

Liferay Model Hints

这篇文章主要介绍如何通过model hint 来修改liferay builder service生成数据库表中默认字段的长度。 1.什么是Model Hints? 它是对liferay builder service生成的model类的基本提示. 2. 它在什么地方被定义的&#xff1f; portlet-model-hints.xml 3. 文件位置&#xff1f; /…

浏览器书签备份管理

1、火狐浏览器备份导出HTML文件&#xff1a; CtrlJ 书签 - 导入/导出 2、谷歌浏览器&#xff1a; 设置中 导入书签 转载于:https://www.cnblogs.com/AmbiguousMiao/p/8084721.html