当前位置: 首页 > news >正文

flex弹性布局心得

概述

最近做项目用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代替

转载于:https://www.cnblogs.com/yangzhou33/p/10408247.html

相关文章:

  • 机器学习KNN实例之数字识别
  • Jeesite 代码生成
  • IP地址子网划分
  • OpenStack 虚机网卡的创建过程
  • 使用 FFT 分析周期性数据
  • SpringBoot 通用Error设计
  • 浅谈斜率优化dp
  • emacs
  • R 语言设定随机数种子
  • 第一次作业-准备篇
  • Centos7安装搜狗输入法.
  • 【大数据】了解大数据的特点、来源与数据呈现方式
  • 数学基础
  • tomcat配置和原理(转)
  • 递归目录方法
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【面试系列】之二:关于js原型
  • bearychat的java client
  • canvas 高仿 Apple Watch 表盘
  • Java到底能干嘛?
  • Mysql5.6主从复制
  • nodejs调试方法
  • react-native 安卓真机环境搭建
  • Spring Boot快速入门(一):Hello Spring Boot
  • springMvc学习笔记(2)
  • SQLServer插入数据
  • Webpack 4 学习01(基础配置)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 解决iview多表头动态更改列元素发生的错误
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 强力优化Rancher k8s中国区的使用体验
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 算法之不定期更新(一)(2018-04-12)
  • 正则学习笔记
  • 终端用户监控:真实用户监控还是模拟监控?
  • 1.Ext JS 建立web开发工程
  • NLPIR智能语义技术让大数据挖掘更简单
  • 阿里云ACE认证学习知识点梳理
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ()、[]、{}、(())、[[]]命令替换
  • (6)添加vue-cookie
  • (C++17) optional的使用
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)springcloud实战之config配置中心
  • (分类)KNN算法- 参数调优
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .net 4.0发布后不能正常显示图片问题