概述

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

参考资料:

Solved by Flexbox

Flex 布局教程:语法篇

flex基础

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

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

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

强大的flex: 1

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

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

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

深入flex: 1

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

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

flex-grow属性定义了项目的 放大比例,默认为0,就是不放大。

flex-shrink属性则定义了项目的缩小比例,默认为1,就是如果空间不足的话,项目将缩小。

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. python2使用eval 让除法可以保留小数

    使用的Python版本2.7, 我在使用eval('1/3')发现一个问题,结果都是去掉小数,保留了整数.但是我需要保留小数,各种查资料,最后在一大神指点下,成功解决这个问题,解决办法是: 加载模块: ...

  2. python-os创建文件夹-create_dir_if_not_exist.py

    #!/bin/usr/env python3 __author__ = 'nxz' import os import argparse MESSAGE = '%s 文件夹已经存在' def creat ...

  3. php配置文件参数设置

    pm.max_children 设置多大合适? 一.pm.max_children 多大合适? 这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少. 设置”max_ch ...

  4. 类中被final修饰的成员变量需要初始化

    类中被final修饰的成员变量需要初始化,否则编译不通过,因为final修饰后不能再赋值,因此必须初始化.

  5. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  6. python之lambda函数

    今天复习python,看见一个关于lambda函数的例子,在python中使用lambda在某些时候十分方便,因为不必为了实现某些简单功能而新建一个函数.但是有这么一个lambda实例令我有些疑惑,现 ...

  7. [git]checkout&branch

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  8. Chapter 5 : Control Structures 2 : Repetition

    import java.util.*; import java.io.*; public class Loop { static Scanner console = new Scanner(Syste ...

  9. [BZOJ1925][SDOI2010]地精部落(DP)

    题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...

  10. Catalan 数列的性质及其应用(转载)

    转自:http://lanqi.org/skills/10939/ 卡特兰数 — 计数的映射方法的伟大胜利 发表于2015年11月8日由意琦行 卡特兰(Catalan)数来源于卡特兰解决凸$n+2$边 ...