flex布局使用
什么是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布局父项常见属性
flex-direction属性 (设置主轴和主轴方向)
- row:x轴(从左到右)(默认属性)
- row-reverse:翻转(从右到左)
- column:y轴
- column-reverse:翻转
justify-content属性 (设置主轴上的子元素排列方式)
- flex-start:从主轴头部开始排列(默认属性)
- flex-end:从尾部开始
- center:在主轴居中对齐
- space-around:平分剩余空间
- space-betwwen:先两边贴边,在平分剩余空间(重要)
flex-wrap属性 (当子元素超出父元素时,是否换行)
- nowrap:不换行,会改变原有子元素的大小,挤占进去(默认属性)
- wrap:不换行,另起一行显示
align-items属性 (设置侧轴上的的子元素排列方式(单行)) (默认是y轴)
- flex-start:从上到下
- flex-end:从下到上
- center:垂直居中
- stretch:拉伸(子元素没有设置高度时,这个为默认值)
align-content属性 (设置侧轴上的子元素的排列方式(多行))
- flex-start:在侧轴的头部开始排列(默认属性)
- flex-end:在侧轴的尾部开始排列
- center:在侧轴中间显示
- space-around:子项在侧轴平分剩余空间
- space-between:子项在侧轴先分布在两头,在平分剩余空间
- stretch:设置子元素高度平分元素高度
flex-flow属性 (flex-direction和flex-wrap属性的复合属性)
- 如:flex-flow:column wrap;
- 表示设置了flex-direction:column 和flex-wrap:wrap两个属性
flex布局子项常见属性
flex属性 (定义子项目分配剩余空间,用flex来表示占多少份)
- 为子元素样式设置:flex:number(默认为0)
- 一般子元素不设置宽度,每个设置flex:1,因为没有宽度所以剩余空间为所有空间,所以每个子元素都占一份,就做到的子元素均分
align-self属性 (控制某一个子项自己在侧轴上的排列方式)
span:nth-child(2){
/*设置自己在侧轴上的排列方式*/
align-self:flex-end;
}
order属性 (定义项目的排列顺序)
- 数值越小,排列越靠前,默认为0
- 注意:和z-index不一样
flex布局使用的更多相关文章
- Flex 布局教程:语法篇
作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...
- Flex 布局教程:实例篇
该教程整理自 阮一峰Flexible教程 今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我的主要参考资料是Landon Schropp的文章和Solved ...
- 在移动端中的flex布局
flex布局介绍: flex布局很灵活, 这种布局我们也可以称之为弹性布局, 弹性布局的主要优势就是元素的宽或者高会自动补全; flex布局实例: 比如有两个div,一个div的宽度为100px, ...
- css flex布局
关于flex布局的一些简单用法 效果(下图) 实现代码: <!--html--> <div class="wrap"> <div class=&quo ...
- FLEX布局的一些问题和解决方法
前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的 ...
- CSS之flex布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- flex布局示例
来自:授权地址 作者:水牛01248 几个横排元素在竖直方向上居中 display: flex; flex-direction: row;//横向排列 align-items: center;//垂直 ...
- 【转】Flex 布局语法教程
网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...
- [flex布局]-flex教程
简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...
- flex布局
一,啥是flex? 1.Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.任何一个容器都可以指定为Flex布局. .box{ displa ...
随机推荐
- Docker--Docker初体验
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 先来接 ...
- throw和throws有什么区别
1.Throw用于方法内部,Throws用于方法声明上 2.Throw后跟异常对象,Throws后跟异常类型 3.Throw后只能跟一个异常对象,Throws后可以一次声明多种异常类型 throw关键 ...
- vue响应式数据变化
vue响应式数据变化 话不多说,先上代码: //拷贝一份数组原型,防止修改所有数组类型变量的原型方法 let arrayProto = Array.prototype;// 数组原型上的方法 let ...
- Java面向对象之初始化块
目录 Java面向对象之初始化块 普通初始化块 静态初始化块 初始化块与构造器 Java面向对象之初始化块 在程序设计中,让数据域正确地执行初始化一直是一个亘古不变的真理. 那么,有哪些手段可以初始化 ...
- Java基础语法09-面向对象下-内部类
九.内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. (1)成员内部类:声明在外部类中方法外 静态成员内部类 非静态成员内部类 (2)局部内部类:声明在外部类的方法 ...
- C# 派生和继承(派生类与基类)
using System; using System.Collections.Generic; using System.Text; namespace 继承 { class Program { st ...
- 原生js复制粘贴上传图片前后台代码,兼容firebox,chrome, ie11,亲测有效
需求:粘贴上传图片,截图工具,右键粘贴,或者ctrl+v粘贴 方法1:可直接套用富文本框的图片上传功能,完成复制粘贴 缺点:麻烦,样式难控制 方法2:用原生js完成,以下案例基于此,样式请自己动手调整 ...
- Android 数据库 SQLiteOpenHelper
public class DbOpenHelper extends SQLiteOpenHelper { private static String name = "test.db" ...
- css3 @page
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Shell—定时任务(crontab)
如何让shell脚本每天定时执行? 1.新建需要定时执行的shell脚本,这里为date.sh脚本. #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/u ...