什么是flex布局

  • flex是flexible Box的缩写,意味“弹性盒子”,用来为盒子状模型提供最大的灵活性
  • 任何一个盒子都可以指定为flex布局 .box{ display:flex }
  • 行内元素也可以使用flex布局 .box{ dispaly:inline-flex }
  • Webkit内核的浏览器,必须加上-webkit前缀
  •    display: -webkit-flex; /* Safari */
    display: flex;
  • 当我们为父盒子设置了flex布局之后,子元素的float,clear和vertical-align就失效了

传统布局和flex布局的差别

  • pc端的兼容较差,IE11或者更低的版本,不支持或者仅部分支持
  • 所以:
    • pc端页面布局,建议任然使用传统布局
    • 移动端或者不考录兼容性问题的PC端桌面布局,仍然使用flex弹性布局

flex布局初体验

  • 首先,行内元素是不能设置宽高的,如span
  • 但是,我们一旦给了父级元素设置了display:flex那行内元素也能设置宽高
  •       div{
    display: flex;
    width: 80%;
    height: 300px;
    background-color: pink;
    }
    div span{
    margin-right: 10px;
    width:150px;
    height: 100px;
    background-color: blue;
    }
    <div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    </div>

flex布局原理

  • 采用flex布局的元素,称为flex容器,他的所有子元素自动成为容器成员,成为flex项目 (flex item)
  • 子容器可以横向排列,也可以纵向排列
  • 总结就是:通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

flex布局父项常见属性

  1. flex-direction属性 (设置主轴和主轴方向)

    • row:x轴(从左到右)(默认属性)
    • row-reverse:翻转(从右到左)
    • column:y轴
    • column-reverse:翻转
  2. justify-content属性 (设置主轴上的子元素排列方式)

    • flex-start:从主轴头部开始排列(默认属性)
    • flex-end:从尾部开始
    • center:在主轴居中对齐
    • space-around:平分剩余空间
    • space-betwwen:先两边贴边,在平分剩余空间(重要)
  3. flex-wrap属性 (当子元素超出父元素时,是否换行)

    • nowrap:不换行,会改变原有子元素的大小,挤占进去(默认属性)
    • wrap:不换行,另起一行显示
  4. align-items属性 (设置侧轴上的的子元素排列方式(单行)) (默认是y轴)

    • flex-start:从上到下
    • flex-end:从下到上
    • center:垂直居中
    • stretch:拉伸(子元素没有设置高度时,这个为默认值)
  5. align-content属性 (设置侧轴上的子元素的排列方式(多行))

    • flex-start:在侧轴的头部开始排列(默认属性)
    • flex-end:在侧轴的尾部开始排列
    • center:在侧轴中间显示
    • space-around:子项在侧轴平分剩余空间
    • space-between:子项在侧轴先分布在两头,在平分剩余空间
    • stretch:设置子元素高度平分元素高度
  6. flex-flow属性 (flex-direction和flex-wrap属性的复合属性)

    • 如:flex-flow:column wrap;
    • 表示设置了flex-direction:column 和flex-wrap:wrap两个属性

flex布局子项常见属性

  1. flex属性 (定义子项目分配剩余空间,用flex来表示占多少份)

    • 为子元素样式设置:flex:number(默认为0)
    • 一般子元素不设置宽度,每个设置flex:1,因为没有宽度所以剩余空间为所有空间,所以每个子元素都占一份,就做到的子元素均分
  2. align-self属性 (控制某一个子项自己在侧轴上的排列方式)

    •   span:nth-child(2){
      /*设置自己在侧轴上的排列方式*/
      align-self:flex-end;
      }
  3. order属性 (定义项目的排列顺序)

    • 数值越小,排列越靠前,默认为0
    • 注意:和z-index不一样

flex布局使用的更多相关文章

  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. Linux(CentOS)安装SQL Server

    1.下载Microsoft SQL Server Red Hat 存储库配置文件 curl -o /etc/yum.repos.d/mssql-server.repo https://packages ...

  2. JS中的防抖和节流

    JS-防抖和节流 在进行窗口的resize.scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕.此时我们可以采用debounce(防抖)和 ...

  3. 使用脚本安装 Docker

    使用脚本安装 Docker 1.使用 sudo 或 root 权限登录 Centos. 2.确保 yum 包更新到最新. $ sudo yum update 3.执行 Docker 安装脚本. $ c ...

  4. 要想深入理解mysql索引?这16个点你必须要了解!

    前言 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQ ...

  5. CentOS7下设置网卡名称以eth开头

    一.前言 在CentOS7下,网卡的名称不再是以eth命名了,下以内容将教你如何在CentOS7下修改网卡以"eth"开头. 二.环境 ♦CentOS7.5_x86-64 三.配置 ...

  6. centos7 redis 6379端口telnet不通

    1.查看redis服务是否启动,如图所示,redis已经启动 2.查看是否监听正确的ip和端口 发现问题:端口号6379没错,但是ip是127.0.0.1,表示只能本地访问,问题就出在这. 3.修改r ...

  7. 【Java必修课】图说Stream中的skip()和limit()方法及组合使用

    1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...

  8. 永恒之蓝及WannaCry分析

    以下部分是我的一次大作业,写了大概有一周,拿出来凑篇博客,如果有错误的地方,还请指正.粘贴过程中可能图片有错误. 1.环境搭建及简介 1.1 实验环境 Windows 7 (靶机) Parrot(攻击 ...

  9. 微信小程序 存储数据到本地以及本地获取数据

    1.wx存储数据到本地以及本地获取数据 存到本地就是存到你的手机 wx.setStorageSync与wx.setStorage 1.1 wx.setStorageSync(string key, a ...

  10. php 弱类型总结

    0x01 前言 最近CTF比赛,不止一次的出了php弱类型的题目,借此想总结一下关于php弱类型以及绕过方式 0x02 知识介绍 php中有两种比较的符号 == 与 === <?php $a = ...