概述

最近做项目用flex重构了一下网页中的布局,顺便学习了一下flex弹性布局,感觉超级强大,有一些心得,记录下来供以后开发时参考,相信对其他人也有用。

参考资料:

Solved by Flexbox

Flex 布局教程:语法篇

flex基础

flex基础语法可以参考上面阮一峰的flex布局教程。简要如下:

  1. display: flex;
  2. justify-content: space-between; //子元素横向排列方式
  3. align-items:center; //子元素纵向排列方式

注意:父元素声明为flex之后,子元素不需要声明为flex。

强大的flex: 1

在布局的时候,我们经常会遇到需要让子元素的宽度随着父元素的宽度改变的情况,即子元素需要自己撑满父元素。比如粘性页脚,让高度未知的页脚粘在高度未知的父元素的底部。这个时候只需要加上下面的css即可:

  1. // 父元素声明为flex,排列方式为上下排列
  2. .Site {
  3. display: flex;
  4. min-height: 100vh;
  5. flex-direction: column;
  6. }
  7. // 要自己撑满父元素的子元素加上这个class(不是页脚哦~)
  8. .Site-content {
  9. flex: 1;
  10. }

注意:利用flex:1和父div包裹可以实现各种强大的布局。如果不行的话,就给它包一层flexbox的父元素轻松解决啦~

深入flex: 1

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

  1. flex-grow属性定义了项目的 放大比例,默认为0,就是不放大。
  2. flex-shrink属性则定义了项目的缩小比例,默认为1,就是如果空间不足的话,项目将缩小。
  3. flex-basis定义了项目的本来大小,基本相当于width或者height

注意:这里有一个坑,就是低版本浏览器在解析flex和width属性的时候会发生冲突,表现出来就像是flex-wrap不生效的样子,当初解决这个问题花了我3.5个小时。所以一般对于flexbox不直接写width: 50%,而是用flex: 0 0 50%来代替;如果width是具体的值width: 200px,则用flex: 0 0 200px代替

flex弹性布局心得的更多相关文章

  1. 记一下flex弹性布局

    flex弹性布局也越来越广泛的在我们代码中出现了,更加方便我们的布局.自己用了查,查了用,有些还是记不住,俗话说好脑子不如烂笔头,原来都是写在本子上的,很不幸的一次次的想翻的时候总是找不到,还是写博客 ...

  2. CSS3动画属性和flex弹性布局各个属性

    [CSS3动画的使用] 1.声明一个关键帧(动画): @keynames name{ from{} to{} } 每个阶段的写法: ①可以直接使用from-to的写法 ②可以设置0%-100%的写法, ...

  3. flex弹性布局属性详解!

    详细看下flex弹性布局具体属性: flex容器属性详解:flex-direction:row/column:(横排/竖排) 决定元素的排列方向:flex-wrap:nowrap/wrap/wrap- ...

  4. java基础之Flex弹性布局、JSP错误处理以及Log4J

    一.Flex弹性布局 1.产生的比较晚,目前在移动网页开发中可以使用,而且逐渐成为主流. 在桌面网页开发中使用的比较少(主要是桌面浏览器的兼容性问题更加严重) 2.开启方法: 在容器标签上加上 dis ...

  5. flex弹性布局,好用

    一直不太喜欢自己布局前端页面,都是扒别人的页面 ,最近在练习小程序,页面无处可扒,只有自己布局 发现flex弹性布局真好用,布局起来很简单,实现的效果也很好,赞 以后可以自己写一点前端了,哈哈

  6. flex弹性布局的基本介绍

    最近开始做元素排列比较复杂的项目,同时需要各种型号手机的适配,我发现以前所掌握的盒子模型.display.position.float等已经不能满足我的需求了, 于是开始着重学习flex弹性布局并运用 ...

  7. css进阶之二:flex弹性布局

    布局模式是指一个盒子与其兄弟.祖先盒的关系决定其尺寸与位置的算法.css2.1中定义了四种布局模式,分别是块布局.行内布局.表格布局.以及定位布局.css3引入了新的布局模式Flexbox布局,灵活度 ...

  8. flex弹性布局学习笔记

    前言 资料来源于网络,本人只是对此作了一下操作,记录于此以便以后查阅.目的在于梳理自己前端凌乱的知识点. 本文根据 Brian Franco 的一个flexbox.scss库来记录 入职新公司前对移动 ...

  9. flex弹性布局

    Flex 布局教程:语法篇  原文地址:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 作者:  ...

随机推荐

  1. java ReentrantLock结合条件队列 实现生产者-消费者模式 以及ReentratLock和Synchronized对比

    package reentrantlock; import java.util.ArrayList; public class ProviderAndConsumerTest { static Pro ...

  2. es6 let 和 const

    function test(){ let a = 1 for (let i =0;i<3;i++){ console.log(i)         //1,2 } console.log(i)  ...

  3. 小程序+node+mysql做的小项目

    git源码地址: https://github.com/songkangle/weixin_node 小程序页面 数据库 user表 dream表 node的express框架index.js var ...

  4. react安装 项目构建

    1.nodejs安装 下载安装包,解压.如果是已编译文件,在/etc/profile中设置PATH(/etc/profile文件中的变量设置,所有用户可用,但需求重启服务器),并source /etc ...

  5. [转]centos7 安装jdk11 并设置默认java版本

    https://www.server-world.info/en/note?os=CentOS_7&p=jdk11&f=2 OpenJDK 11 : Install 2018/10/1 ...

  6. Echarts line折线图使用(vue)

    实现 首先引入echarts工具 // vue文件中引入echarts工具 let echarts = require('echarts/lib/echarts') require('echarts/ ...

  7. 【转】JY 博客

    http://www.lovewebgames.com/demo.html http://www.lovewebgames.com/

  8. Big big world

    Big big world I'm a big big girl 我是个大女孩 in a big big world 在这个大大的世界上 It's not a big big thing if you ...

  9. APM(pixhawk)飞控疑难杂症解决方法汇总(持续更新)

    本文转自下面博主 https://blog.csdn.net/junzixing/article/details/79310159 APM/Pixhawk常用链接汇总(持续更新) https://bl ...

  10. 用户注册之后,通过网易邮箱服务器(smtp.163.com)发送电子邮箱到注册者邮箱的的确认通知短信.(可根据需求自行调整)

    Member 是数据实体,穿过来的也就是当前注册用户的信息. 存储的数据一定要有邮箱信息 private void SendAuthCodeToMember(Member member)        ...