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. centos7 安装最新的 wiki confluence

    41.1 下载confluence Confluence是一个企业级的Wiki,可用于企业.部门.团队内部进行信息共享和协同编辑. 下载地址: https://www.atlassian.com/so ...

  2. 1、mysql基础入门(2)

    1.4.常用非关系型数据库产品介绍: 1.Memcached(key-value)数据库:

  3. solidity 小案例 收费站

    solidity IDE下载地址 https://pan.baidu.com/s/1cY8VgDqB9Wt9VzK-Nocbyw 代码案例: pragma solidity ^0.4.0; //创建合 ...

  4. 暑假自学java第八天

    1.接口的概念(关键字interface  ) Java程序设计中的接口 ( interface)也是一种规范,用来组织应用程序中的类,并调节它们的相互关系.接口是由常量和抽象方法组成的特殊类,是对抽 ...

  5. Cent OS下安装JDK11

    自己云服务器以前装了个JDK1.7,最近发现出了jdk11,所以修改一下JDK版本: 我这里用的是Xshell和XFtp工具,下载地址:https://www.netsarang.com/downlo ...

  6. Linux | Shell流程控制语句

    流程控制语句 简单的Shell 脚本还不能满足我们日常工作的需要要,因为他不能批量的帮我们完成工作,所以Shell引入了 if.for.while.case 4种流程控制语句来帮助我们完成工作. if ...

  7. Filter+Listener核心技术

    一.filter过滤器 javaweb三大组件:filter.listener.servlet. 过滤器是向web应用程序的请求和响应处理添加功能的web服务组件,可以在访问资源之前对请求和响应进行修 ...

  8. GO系列-ioutil包

    ioutil包提供给外部使用的一共有1个变量,7个方法. // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情 // 并且始终成功返回. var Disca ...

  9. Java+Selenium3.3.1环境搭建

    一.背景和目的 selenium从2.0开始,加入了webdriver,实际上,我们说的selenium自动化测试,大部分情况都是在使用webdriver的API.现在去Selenium官网,发现最新 ...

  10. c语言:scanf(" %c",&bla); scanf("%c",&bla); 语句差别

    %前有空格,%没有空格 scanf("%c",&c) 与 scanf(" %c",&c),后者只是在%前多了个空格,似乎没有什么区别,但使用起来 ...