Title/CSS Flex布局完全指南 #flight.Archives002

序(from Ruanyf) :

网页布局(layout)是 CSS 的一个重点应用.

布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性. 它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现

2009年,W3C 提出了一种新的方案 - Flex 布局,可以简便、完整、响应式地实现各种页面布局.

Tag/Flex介绍

.container{
display:flex; /*or inline-flex*/
}

设置了.container元素为Flex容器(Flex container),.container的直接子元素被称为Flex项目(Flex item)

Flex元素按照主轴(main-axis)的方向排列,交叉轴(cross-axis)与主轴垂直

主轴的开始和结束被称为 main start 和 main end

交叉轴的开始和结束被称为 cross start 和 cross end

Tag/容器(flex container)属性

属性 可取值 说明
display flex,inline-flex 指定一个容器是否启用Flex布局
flex-direction row,row-reverse,column,column-reverse 指定主轴(main-axis)的方向
flex-wrap nowrap,wrap,wrap-reverse 指定内容超出一行情况的换行方式
flex-flow <flex-direction> || <flex-wrap> CSS简写属性
justify-content flex-start,flex-end,center,space-between,space-around 指定项目在主轴(main-axis)上的对齐方式
align-items flex-start,flex-end,center,baseline,stretch 指定项目在交叉轴(cross-axis)上的对齐方式
align-content flex-start,flex-end,center,space-between,space-around,stretch 同时指定项目在两根轴线上的对齐方式(如果项目只有一根轴线.该属性不起作用)

Tag/项目(flex item)属性

属性 可取值 说明
order 指定项目的排列顺序,默认值为0,order相同时按照项目在DOM中的顺序排序
flex-grow 指定项目大小的比例,默认值为0,width属性会优先指定flex-item的最小大小
flex-shrink 指定项目大小在单行空间不足时的收缩比例,默认值为1
flex-basis 指定项目在主轴方向上的初始大小
flex <'flex-grow'> <'flex-shrink'> <'flex-basis'> CSS简写属性
align-self auto,flex-start,flex-end,center,baseline,stretch 指定单个元素的对齐方式,优先级高于align-items属性

->> Details

Flex 属性的值 (from MDN)

/* 关键字值 */
flex: auto;
flex: initial;
flex: none; /* 一个值, 无单位数字: flex-grow */
flex: 2; /* 一个值, width/height: flex-basis */
flex: 10em;
flex: 30px;
flex: min-content; /* 两个值: flex-grow | flex-basis */
flex: 1 30px; /* 两个值: flex-grow | flex-shrink */
flex: 2 2; /* 三个值: flex-grow | flex-shrink | flex-basis */
flex: 2 2 10%; /*全局属性值 */
flex: inherit;
flex: initial;
flex: unset;

->> Demos

详见MDN,Codepen

->> See also

Flex Bugs https://github.com/philipwalton/flexbugs

Flexbox Properties Demonstration https://codepen.io/justd/full/yydezN/

->> Reference link

MDN中文文档 https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox

MDN 英文文档 https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox

CodingStartUp https://www.bilibili.com/video/BV1qJ411N7TA

CSS-Tricks https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Scotch.io https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties

->> 文档版本&更新记录

现在版本为V1.0

详见 Github(@flightmakers)

CSS Flex布局完全指南 #flight.Archives002的更多相关文章

  1. css flex布局

    关于flex布局的一些简单用法 效果(下图) 实现代码: <!--html--> <div class="wrap"> <div class=&quo ...

  2. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行.通过将 CSS 规则应用于 父元 ...

  3. CSS flex 布局快速入门

    以前已经学过flex了,一直没做笔记,现在做下笔记再回忆下. 首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光.先感受一下这12个flex布局属性,是不是很“迷”人. ...

  4. 轻轻松松学CSS:Flex布局

     Flex布局就是"弹性布局",它可以简便.完整.响应式地实现各种页面布局.引入弹性布局的目的,当页面需要适应不同的屏幕大小确保元素拥有恰当的布局方式,对一个容器中的子元素进行排列 ...

  5. css flex布局详解

    来源:https://blog.csdn.net/liveinmylife/article/details/51838939 1,flex布局是个什么东西? 官方说法:Flex是Flexible Bo ...

  6. CSS Flex布局整理

    Flex布局 display: flex; 将对象作为弹性伸缩盒展示,用于块级元素 display: inline-flex; 将对象作为弹性伸缩盒展示,用于行内元素 注意兼容问题: webkit内核 ...

  7. [Web 前端 ] 还在用浮动吗?CSS flex布局你了解多少?

    cp from : https://blog.csdn.net/wwwxuewen/article/details/80859764 传统的布局:围绕盒子模型(border.margin.paddin ...

  8. CSS Flex布局属性整理

    Flex布局 display: flex; 将对象作为弹性伸缩盒展示,用于块级元素 display: inline-flex; 将对象作为弹性伸缩盒展示,用于行内元素 注意兼容问题: webkit内核 ...

  9. CSS flex 布局学习笔记

    写在前面 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局. 采用 Flex 布局的元素 ...

随机推荐

  1. 8、oracle密码过期设置

    8.1.登录到oracle实例: [oracle@slave-node2 ~]$ echo $ORACLE_SID orcl [oracle@slave-node2 ~]$ sqlplus sys/1 ...

  2. Vue(14)slot插槽的使用

    为什么使用slot slot(插槽) 在生活中很多地方都有插槽,电脑usb的插槽,插板当中的电源插槽 插槽的目的是为了让我们原来的设备具备更多的扩展性 比如电脑的USB我们可以插入U盘,手机,鼠标,键 ...

  3. 6 shell内置命令

    知识点1:什么是shell内建命令? Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 内建命令与普通命令的性质是不一样的,内建命令并不是某个外部文件,只要在 ...

  4. FastTunnel-内网穿透原理揭秘

    之前写了一篇关于GVP开源项目FastTunnel的一篇介绍 <FastTunnel-开源内网穿透框架>,只简单介绍了使用方法,不少伙伴对其原理表示好奇,今天画抽空了一下其内部实现原理流程 ...

  5. git时 Failed to connect to 127.0.0.1 port 1080: Connection refused

    在公司换了一台电脑之后发现git clone 和 npm install都失败,报错为 fatal: unable to access 'https://github.com/netease-im/N ...

  6. 入门Kubernetes-minikube本地k8s环境

    前言: 在上一篇 结尾中使用到了minikube方式来做k8s本地环境来学习k8s. 那么这篇先了解下minikube及使用 一.Minikube 简介 minikube 在 macOS.Linux ...

  7. C++ MFC应用程序开发实例

    MFC:微软基础类(Microsoft Foundation Classes),同VCL类似,是一种应用程序框架,随微软Visual C++ 开发工具发布.作为Application Framewor ...

  8. DEV -C++源码中的中文复制粘贴乱码解决方案

    右击源代码用记事本打开,再复制,再粘贴,就没有乱码了

  9. ES6新增语法(一)——let、const、var的区别

    ES6简介 ES6是ECMAScript 6.0的简称,是javascript语言的下一代标准,已经在2015年6月正式发布上线.目的就是为了统一javascript的语法标准,可以用来开发大型应用程 ...

  10. 家庭账本开发day07

    返回数据问题解决,需要按照规定的json数据进行返回. 利用jsonobejact或者GSON工具将对象ArrayList转化为json 格式.然后response.getWriter().write ...