这篇博客是我学习Flex的一个笔记,学习的资源主要来自阮一峰老师博客。博客讲的很清楚,我自己总结之后,更方便理解。

一、Flex是什么

Flex是Flexible Box的缩写,意为“弹性盒子”

/*块内元素*/
display:flex;
/*行内元素*/
display:inline-flex;

二、基本概念

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

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

三、容器的属性

以下6个属性设置在容器上。

  1. flex-direction    决定主轴方向,
  2. flex-wrap    定义如果一条轴线排不下,如何换行
  3. flex-flow    前两个的简写
  4. justify-content    定义项目在主轴上的对齐方式
  5. align-items    定义项目在交叉轴上如何对齐
  6. align-content    定义多根轴线的对齐方式,如果只有一根轴线,不起作用

四、项目属性

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

  1. Order    项目的排列顺序
  2. flex-grow    项目的放大比例
  3. flex-shrink    项目的缩小比例
  4. flex-basis    定义在分配多余空间之前,项目占据的主轴空间
  5. Flex    前三个的缩写
  6. align-self    允许单个项目有与其他项目不一样的对齐方式,覆盖align-items属性

五、实际问题

1. 不定宽高如何水平垂直居中?

2. 用flex布局制作航

3. 悬挂式布局

Flex:none;使用场景

推荐链接:flex:0 flex:1 flex:none flex:auto应该在什么场景下使用?

4. 多列布局

5. 基本网格布局

HTML代码

<body><div class="body"><br><p>第一个布局</p><div class="box"><div class="box-cell">1/2</div><div class="box-cell">1/2</div></div><!-- <hr> --><br><p>第二个布局</p><div class="box"><div class="box-cell">1/3</div><div class="box-cell">1/3</div><div class="box-cell">1/3</div></div><br><p>第三个布局</p><div class="box"><div class="box-cell">1/4</div><div class="box-cell">1/4</div><div class="box-cell">1/4</div><div class="box-cell">1/4</div></div><br><p>第四个布局</p><div class="box"><div class="box-cell box-cell1">When in the Course of human events, ......</div><div class="box-cell box-cell1">We hold these truths to be self-evident......</div></div></div></body>

CSS代码

<head><meta charset="utf-8"><title></title><style type="text/css">.body {padding: 30px;height: 900px;border: 1px solid #333;}.box {/* border: 1px solid #333; */display: flex;/* height: 300px; */}.box-cell {margin: 10px;background-color: #D6D6D6;height: 30px;text-align: center;line-height: 30px;flex: 1;}.box-cell1 {height: auto;}</style></head>

示例

6. 圣杯布局

HTML代码

<body><div class="body"><div class="header">header</div><div class="container"><div class="left">left</div><div class="content">content</div><div class="right">right</div></div><div class="footer">footer</div></div>
</body>

CSS代码

 <style type="text/css">.body {display: flex;flex-direction: column;}.header,.footer {background-color: steelblue;flex: 1;height: 100px;text-align: center;line-height: 100px;font-size: 28px;}.container {display: flex;}.container>div {border: 1px solid #000000;margin: 10px;flex: 1;text-align: center;}.container .left,.container .right {flex: 0 0 12em;}.container .left {order: -1;}@media (max-width: 768px) {.container {flex-direction: column;flex: 1;}.container .left,.container .right,.container .content {flex: auto;}}</style>

示例

CSS position 定位之 Flex相关推荐

  1. 教你玩转CSS Position(定位)

    目录 CSS Position(定位) static 定位 fixed 定位 relative 定位 absolute 定位 sticky 定位 重叠的元素 所有的CSS定位属性

  2. 【css】CSS position(定位)属性

    一.CSS position(定位)属性 absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位.元素的位置通过 "left", "t ...

  3. css左边定位,CSS Position(定位) | 菜鸟教程

    CSS Position(定位) position 属性指定了元素的定位类型. position 属性的五个值: 元素可以使用的顶部,底部,左侧和右侧属性定位.然而,这些属性无法工作,除非是先设定po ...

  4. CSS Position 定位

    文章目录 CSS Position 定位 #1 说明 #1.1 什么是Position塌陷 #1.2 什么是文档流(normal flow) #2 开始 #2.1 position: static # ...

  5. CSS position定位之static

    CSS position定位之static 1.static是position属性的默认值. 2.top.bottom.left.right.z-index 属性不起作用 3.元素和元素之间不会重叠, ...

  6. 详解 CSS position定位的五种方式

    position 属性规定应用于元素的定位方法的类型(static.relative.fixed.absolute 或 sticky). 常见的固定定位,例如手机端的导航,快捷按钮.例如本站的&quo ...

  7. Canvas+html+css+position定位

    定位Position样式 浮动毛病: 会让出文档流,会影响后面的元素的布局. 如果父元素是width:100%,没办法做到均分宽度和间隙,如果父元素是固定宽度情况,可以通过切蛋糕的方式进行计算. 概述 ...

  8. css - Position定位属性与层级关系

    今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 ...

  9. CSS position(定位)属性

    关于CSS position,来自MDN的描述: CSS position属性用于指定一个元素在文档中的定位方式.top.right.bottom.left 属性则决定了该元素的最终位置. 然后来看看 ...

最新文章

  1. The server time zone value is unrecognized or repr
  2. linux下su和su - 的区别
  3. Python 命令行之旅:深入 click 之参数篇
  4. maven下载包慢解决
  5. java版spring cloud+spring boot 社交电子商务平台:服务消费(基础)
  6. Twisted twisted.python.log日志
  7. OpenCV3学习(6.2)——霍夫(Hough)变换:霍夫线变换HoughLine,霍夫圆变换HoughCircles
  8. 【论文写作】本科、硕士研究生毕业论文格式问题
  9. 论文笔记_S2D.37_2015-TPAMI_使用深度卷积神经场从单目图像学习深度
  10. python源码深度剖析_Python 源码深度剖析
  11. 遥控小车遥控赛车html5小游戏源码 【HTML游戏】
  12. Excel 批量合并相同内容单元格方法
  13. C# 解析种子文件(bt文件)
  14. 切尔西为切赫提供新岗位 蓝军盼其“回家”
  15. AutoLeaders控制组——51单片机学习笔记(AD/DA、红外遥控)
  16. java 怎么写异步方法_java如何学习异步编程?
  17. Ubuntu18.04忘记密码解决(八十七)
  18. 100集华为HCIE安全培训视频教材整理 | Agile Controller终端安全管理特性(一)
  19. 四个适合空闲时间自我提升的软件
  20. C语言中各个运算符的优先级及功能

热门文章

  1. PYTHON FORMAT 简单讲解
  2. 安卓适配 全面屏的适配(小米MIX2 的适配)
  3. 只有程序员才能看懂的!
  4. java图片高斯模糊
  5. kali制作钓鱼wifi
  6. C# listView 增 改 删 查
  7. IBM朱近之:服务助云计算在中国落地
  8. unity获取手机设备信息(待修改,结合版)
  9. 在Nuxt.js中使用站点地图
  10. Web3中文|美国CFTC起诉赵长鹏事件始末及其影响