css布局笔记(二)Flex

flex

  • Flex是“Flexible Box”的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。
    任何一个容器都可指定为Flex布局。

    .box{display:flex;}

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

    .box{display:inline-flex;}

    webkit内核的浏览器,必须加上-webkit前缀

    .box{display:-webkit-flex; display:flex;}

    注意:设为flex布局以后,子元素的float,clear和vertic-align属性将失效
  • 采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
    容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

    项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
  • 容器的属性
    • flex-direction属性决定主轴的方向(即项目的排列方向)。

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

      row(默认值):主轴为水平方向,起点在左端。
      row-reverse:主轴为水平方向,起点在右端。
      column:主轴为垂直方向,起点在上沿。
      column-reverse:主轴为垂直方向,起点在下沿。
    • flex-wrap属性
      默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

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

      它可能取三个值。
      nowrap(默认):不换行。
      wrap:换行,第一行在上方。
      wrap-reverse:换行,第一行在下方。
    • flex-flow
      flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

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

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

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

      它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。
      flex-start(默认值):左对齐
      flex-end:右对齐
      center: 居中
      space-between:两端对齐,项目之间的间隔都相等。
      space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
    • align-items属性
      align-items属性定义项目在交叉轴上如何对齐。

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

      它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。
      flex-start:交叉轴的起点对齐。
      flex-end:交叉轴的终点对齐。
      center:交叉轴的中点对齐。
      baseline: 项目的第一行文字的基线对齐。
      stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
    • align-content属性
      align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

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

      flex-start:与交叉轴的起点对齐。
      flex-end:与交叉轴的终点对齐。
      center:与交叉轴的中点对齐。
      space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
      space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
      stretch(默认值):轴线占满整个交叉轴。
  • 项目的属性
    • order属性
      order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

      .item {
      order:

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

      .item {
      flex-grow:

      如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
    • flex-shrink属性
      flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

      .item {
      flex-shrink:

      如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效。
    • flex-basis属性
      flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

      .item {
      flex-basis:

      它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
    • flex属性
      flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

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

      该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
    • align-self属性
      align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

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

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

来源:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
布局实例:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html


更多专业前端知识,请上 【猿2048】www.mk2048.com

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

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

相关文章

BZOJ3709 Bohater 贪心

传送门 思路很妙…… 有个前提条件&#xff1a;血量无限&#xff0c;这样话肯定先打会回血的怪&#xff0c;再打会掉血的怪 对于会回血的怪&#xff0c;按照受到伤害的顺序从小往大打 对于会掉血的怪似乎并不是很好搞&#xff0c;考虑&#xff1a;将每一时刻的血量函数画出来&a…

反射与二次加工标准类型

反射与二次加工标准类型一、反射 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。 有四个可以实现自省(反射)的函数&#xff0c;如下表所示&#xff1a; 函数名含义hasattr(object,name)判断object中有没有一个name字符串对应的方法或属性getattr(object,na…

Java 8 StampedLocks与ReadWriteLocks和同步

同步部分就像访问您的岳父母。 您希望尽可能少出现。 关于锁定&#xff0c;规则是相同的–您想花费最短的时间在关键区域内获取锁定&#xff0c;以防止形成瓶颈。 锁定的核心语言惯用法一直是用于方法和离散块的synced关键字。 这个关键字实际上已硬连接到HotSpot JVM中。 我们…

MSN on 2/16/2009

转载于:https://www.cnblogs.com/zxlin25/archive/2009/02/16/1391207.html

开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

在上篇随笔《基于微信小程序的系统开发准备工作》介绍了开发微信小程序的一些前期的架构设计、技术路线 、工具准备等方面内容&#xff0c;本篇随笔继续这个步骤&#xff0c;逐步介绍我们实际开发过程中对SSL协议的申请及后期处理过程&#xff0c;包括证书的IIS端口绑定&#x…

POJ 3253 Fence Repair

POJ 3253 Fence Repair 题目链接&#xff1a;http://poj.org/problem?id3253 题目大意 农夫约翰想修理牧场周围的一小段篱笆。他测量了栅栏&#xff0c;发现他需要N(1≤N≤20,000)块木板&#xff0c;每块长度为整数Li(1≤Li≤50,000)。然后&#xff0c;他买了一块长木板&#…

【面向对象】对比JavaScript、Go、Ada、Python、C++、Java、PHP的访问限制。

在不同编程语言中&#xff0c;控制成员&#xff08;变量、方法、类等&#xff09;可见性的机制不尽相同。以下是对比JavaScript、Go、Ada、Python、C、Java、PHP所使用的访问限制关键字和约定&#xff1a; 一、JavaScript ### JavaScript访问限制 早期的JavaScript并没有类似…

C#各类访问权限,封装,修饰符

C#各类访问权限&#xff0c;封装&#xff0c;修饰符。 (1) Pubilc &#xff1a;任何公有成员可以被外部的类访问。(2) Private &#xff1a;只有同一个类中的函数可以访问它的私有成员。(3) Protected &#xff1a;该类内部和继承类中可以访问。(4) internal : 同一个程序集的对…

在Java 8中使用Stream API列出ZIP文件的内容

在Java 8 java.util.zip.ZipFile配备了stream方法&#xff0c;该方法可以非常轻松地浏览ZIP文件条目。 在此博客文章中&#xff0c;我将展示许多示例&#xff0c;这些示例显示了我们可以如何快速浏览ZIP文件条目。 注意&#xff1a;就本博客而言&#xff0c;我将一个GitHub存储…

tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法...

tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法 【标 题】&#xff1a;tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法【关键字】&#xff1a;tomcat5,jsp,getOutpu…

Web API应用架构设计分析(1)

Web API 是一种应用接口框架&#xff0c;它能够构建HTTP服务以支撑更广泛的客户端&#xff08;包括浏览器&#xff0c;手机和平板电脑等移动设备&#xff09;的框架&#xff0c; ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。本文主要以AS…

记手机端 下拉加载新数据

$(#container).unbind("scroll").bind(scroll,function(e){var sum this.scrollHeight - 5;console.log(sum)console.log($(this).scrollTop() $(this).height())if(sum <$(this).scrollTop() $(this).height()){ getmore();       }     }) $(#co…

一个切图仔的 CSS 笔记

1&#xff0c;flexbox~注意&#xff0c;设为 Flex 布局以后&#xff0c;子元素的float、clear和vertical-align属性将失效。 在ios8上要加上前缀 display: -webkit-box; display: -webkit-flex; display: -webkit-box; /* Chrome 4, Safari 3.1, iOS Safari 3.2 */ display: …

如何使用JPA Type Converter加密数据

几天前&#xff0c;我读了Bear Giles关于2012年使用JPA监听器进行数据库加密的有趣文章。他讨论了对加密解决方案的要求&#xff0c;并提供了JPA监听器的代码示例。 他的主要要求是&#xff1a; 提供不影响应用程序的透明加密&#xff0c; 能够在部署时添加加密&#xff0c; …

go语言的排序和去重

go语言的排序&#xff1a; https://blog.csdn.net/u010983881/article/details/52460998 go语言去重&#xff1a; https://blog.csdn.net/qq_27068845/article/details/77407358 通过构造set去重&#xff08;go中没有set&#xff09;&#xff1a; https://studygolang.com/arti…

MapXtreme2008中操作矢量符号和定制符号

本文部分说明内容摘自网络文章&#xff0c;经过本人在MapXtreme2008中编写相关的演示例子&#xff0c;详细说明如何操作MapXtreme2008提供的矢量符号和定制符号。 MapXtreme 在其安装过程中自动安装 10 种 MapInfo 特定的 TrueType 字体。这些字体为用户提供了字形符号选择&am…

指甲之指甲长期没有甲半月弧(二)

中医的精是构成人体的基本物质。精来源于先天的禀赋及后天饮食营养。中医认为&#xff0c;气不耗归于肝为血&#xff0c;血不耗归于肾为精&#xff0c;精不耗归于骨为髓。 半月痕正是人体精髓的窗口。而半月痕的变化&#xff0c;犹如汽车上的油表一样&#xff0c;它会告颂人体&…

编写干净的测试–从配置开始

很难为干净的代码找到一个好的定义&#xff0c;因为我们每个人都有自己的单词clean的定义。 但是&#xff0c;有一个似乎是通用的定义&#xff1a; 干净的代码易于阅读。 这可能会让您感到有些惊讶&#xff0c;但是我认为该定义也适用于测试代码。 使测试尽可能具有可读性是我…

集合类(二)

关于迭代器&#xff08;Iterator&#xff09;的两种迭代机制&#xff1a;fail-fast 和 fail-safe fail-fast 机制&#xff1a;遍历集合时&#xff0c;当集合结构被修改&#xff0c;会抛出Concurrent Modification Exception 触发条件&#xff1a;单线程在遍历过程修改&#xff…

jQuery-弹幕

该方法可能有bug&#xff0c;毕竟简单粗暴 <!DOCTYPE html><html> <head> <meta charset"UTF-8"> <title></title> <script type"text/javascript" src"js/jquery-1.11.0.js"></script> <s…