改版自阮一峰的网络日志-Flex 布局教程:语法篇

在flex容器上设置的(即父元素上设置);

  1. flex-direction属性决定主轴的方向(即项目的排列方向)。
flex-direction: row | row-reverse | column | column-reverse;
//row(默认值):主轴为水平方向,起点在左端。
//row-reverse:主轴为水平方向,起点在右端。
//column:主轴为垂直方向,起点在上沿。
//column-reverse:主轴为垂直方向,起点在下沿。
  1. flex-wrap属性定义,如果一条轴线排不下,如何换行。默认情况下,项目都排在一条线(又称"轴线")上。
flex-wrap: nowrap | wrap | wrap-reverse;
//nowrap(默认):不换行。
//wrap:换行,第一行在上方。
//wrap-reverse:换行,第一行在下方。
  1. flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
flex-flow: <flex-direction> || <flex-wrap>;
//flex-wrap: row nowrap;
  1. justify-content属性定义了项目在主轴上的对齐方式。
justify-content: flex-start | flex-end | center | space-between | space-around;
//flex-start(默认值):左对齐;所有项目左对齐,项目之间无间隔,项目与容器右侧有间隔;
//center: 居中;所有项目居中对齐,项目之间无间隔,项目左右两侧与容器有间隔,且左右间隔相等;
//flex-end:右对齐;所有项目右对齐,项目之间无间隔,项目左侧与容器有间隔;
//space-between:两端对齐,项目之间的间隔都相等;所有项目居中,项目左右两侧与容器无间隔,项目之间有间隔,项目之间的间隔相等;
//space-around:每个项目两侧的间隔相等;所以,项目之间的间隔比项目与边框的间隔大一倍;所有项目居中,项目左右两侧与容器有间隔,项目之间有间隔,项目之间的间隔相等(若最小间隔记为1,那么项目左侧与容器间隔为1,项目之间间隔为2,项目右侧与容器间隔为1);
  1. align-items属性定义所有项目在交叉轴上如何对齐。
align-items: flex-start | flex-end | center | baseline | stretch;
//flex-start:所有项目与交叉轴的起点上对齐。
//flex-end:所有项目与交叉轴的终点下对齐。
//center:所有项目与交叉轴的中点居中对齐。
//baseline: 所有项目与自身项目的第一行文字基线对齐。
//stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。若设置了高度,则类似于flex-start;
  1. align-content属性定义了多根主轴的垂直对齐方式。如果项目只有一根主轴,该属性不起作用。
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
//flex-start:所有主轴与交叉轴的起点上对齐。所有主轴上对齐,主轴之间无间隔,主轴与容器上侧无间隔,主轴与容器下侧有间隔;
//flex-end:所有主轴与交叉轴的终点下对齐。所有主轴下对齐,主轴之间无间隔,主轴与容器上侧有间隔,主轴与容器下侧无间隔;
//center:所有主轴与交叉轴的中点居中对齐。所有主轴居中对齐,主轴之间无间隔,主轴上下两侧与容器有间隔,且上下间隔相等;
//space-between:与交叉轴两端对齐,主轴之间的间隔平均分布。所有主轴居中对齐,主轴上下两侧与容器有间隔,主轴之间有间隔,主轴之间间隔及主轴上下两侧与容器间隔相等;
//space-around:每根主轴两侧的间隔都相等。所以,主轴之间的间隔比主轴与边框的间隔大一倍。所有主轴居中对齐,主轴上下两侧与容器无间隔,主轴之间有间隔,主轴之间间隔相等(若最小间隔记为1,那么主轴上侧与容器间隔为1,主轴之间间隔为2,主轴下侧与容器间隔为1);
//stretch(默认值):主轴占满整个交叉轴。所有主轴上对齐,主轴之间有间隔,主轴与容器上侧无间隔,主轴与容器无侧有间隔,主轴之间间隔相等(因为所有主轴上对齐,且主轴之间间隔相等,所以最后一条主轴与容器下侧还是会有间隔,但那间隔是由于每个主轴之间间隔产生的);

在flex项目上设置的;

  1. order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
order: <integer>;//整数;
//order: 1;
  1. flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。 //如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
flex-grow: <number>;//数字,可为浮点小数?;
//flex-grow: 1;
  1. flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。//如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效。
flex-shrink: <number>;//数字,可为浮点小数?;
//flex-shrink: 1;
  1. flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间,默认为auto。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。//它可以设为跟width或height属性一样的值(如:350px),则项目将占据固定空间。
flex-basis: <length> | auto;
//flex-basis: auto;
  1. flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。//该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。//建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
flex: none | [ <flex-grow> <flex-shrink> <flex-basis> ];
//flex: 0 1 auto;
  1. align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。//该属性可能取6个值,除了auto,其他都与align-items属性完全一致。
align-self: auto | flex-start | flex-end | center | baseline | stretch;
//align-self: auto;

简单的代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>flex布局</title>
<style>
.flex-container {
width: 700px;
height: 800px;
border: 1px solid rgb(255, 255, 0); display: flex;
flex-direction: row;
flex-wrap: wrap;
/* flex-flow: row nowrap; */
justify-content: flex-start;
align-items: stretch;
align-content: flex-start;
}
.flex-item {
width: 100px;
height: 100px;
border: 1px solid rgb(255, 0, 0);
}
.flex-item:nth-child(1) {
width: 100px;
height: 100px;
border: 1px solid rgb(0, 255, 0);
}
.flex-item:nth-child(3) {
width: 200px;
height: 100px;
border: 1px solid rgb(0, 0, 255);
font-size: 37px;
}
.flex-item:nth-child(5) {
order: 0;
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
flex: 0 1 auto;
align-self: auto;
}
.flex-item:nth-child(7) {
width: 100px;
height: 200px;
border: 1px solid rgb(0, 0, 255);
font-size: 42px;
}
.flex-item:nth-child(15) {
width: 100px;
height: 200px;
border: 1px solid rgb(0, 255, 255);
font-size: 35px;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5方</div>
<div class="flex-item">6</div>
<div class="flex-item">7</div>
<div class="flex-item">8</div>
<div class="flex-item">9</div>
<div class="flex-item">10</div>
<div class="flex-item">11</div>
<div class="flex-item">12</div>
<div class="flex-item">13</div>
<div class="flex-item">14</div>
<div class="flex-item">15</div>
<div class="flex-item">16</div>
<div class="flex-item">17</div>
<div class="flex-item">18</div>
<div class="flex-item">19</div>
<div class="flex-item">20</div>
<div class="flex-item">21</div>
<div class="flex-item">22</div>
<div class="flex-item">23</div>
<div class="flex-item">24</div>
<div class="flex-item">25</div>
<div class="flex-item">26</div>
<div class="flex-item">27</div>
<div class="flex-item">28</div>
<div class="flex-item">29</div>
</div>
</body>
</html>

flex布局-20201028的更多相关文章

  1. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

  2. Flex 布局教程:实例篇

    该教程整理自 阮一峰Flexible教程 今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我的主要参考资料是Landon Schropp的文章和Solved ...

  3. 在移动端中的flex布局

    flex布局介绍: flex布局很灵活, 这种布局我们也可以称之为弹性布局,  弹性布局的主要优势就是元素的宽或者高会自动补全; flex布局实例: 比如有两个div,一个div的宽度为100px, ...

  4. css flex布局

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

  5. FLEX布局的一些问题和解决方法

    前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的 ...

  6. CSS之flex布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. flex布局示例

    来自:授权地址 作者:水牛01248 几个横排元素在竖直方向上居中 display: flex; flex-direction: row;//横向排列 align-items: center;//垂直 ...

  8. 【转】Flex 布局语法教程

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  9. [flex布局]-flex教程

    简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...

  10. flex布局

    一,啥是flex? 1.Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.任何一个容器都可以指定为Flex布局. .box{ displa ...

随机推荐

  1. [转帖]如何部署windows版本的oswatcher

    2017-02-22 没有评论 windows上也有os watcher:OSWFW. 目前支持的windows版本是: Windows XP (x86 & x64)Windows 7 (x8 ...

  2. [转帖]jmap执行失败了,怎么获取heapdump?

    https://www.jianshu.com/p/f4bfd169b4ca   在之前的OOM问题复盘中,我们添加了jmap脚本来自动dump内存现场,方便排查OOM问题. 但当我反复模拟OOM场景 ...

  3. [转帖]python库Paramiko

    https://zhuanlan.zhihu.com/p/456447145 测试过程中经常会遇到需要将本地的文件上传到远程服务器上,或者需要将服务器上的文件拉到本地进行操作,以前安静经常会用到xft ...

  4. [转帖]CoreDump设置方式

    https://www.jianshu.com/p/f5c3134072d2 本文讲述利用coredump调试时,对coredump信息相关的设置方式. 设置core文件大小 列出所有资源的限制 #u ...

  5. [转帖]Docker限制容器的资源

      docker在默认运行容器的情况下,是不会对运行的容器进行资源限制的,在自己的实验环境的话是随便你怎么弄的,不过在生产中是一定会对docker运行的容器进行资源限制的,如果不限制的话在生产中会带来 ...

  6. [1036]kvm虚拟机访问时提示no route to host分析

    环境 宿主机: IP: 10.110.136.43 版本:Kylin Linux Advanced Server release V10 (Sword) KVM vm: IP: 10.110.136. ...

  7. redis 6源码解析之 dict

    edis源码的dict.c主要实现了基于hash表的操作,如增删改查,对哈希表大小的扩容和缩容,以及对哈希表的rehash和增量rehash等.在源码的dictScan函数中,非常巧妙精美地实现了对哈 ...

  8. 一招轻松解决node内存溢出问题

    node启动项目造成内存溢出的解决办法 我们在使用node启动项目的时在项目较大的时候,可能会造成内存溢出.为什么会造成内存溢出呢? 要回答上面这个问题,我们要了解node中是如何分配内存的. Nod ...

  9. 【验证码逆向专栏】最新某验三代滑块逆向分析,干掉所有的 w 参数!

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...

  10. 解决VS选择运行“在证书存储区中找不到清单签名证书”

     转:https://www.cnblogs.com/190196539/archive/2011/12/03/2272861.html 解决"在证书存储区中找不到清单签名证书" ...