[TOC]
#### 简介:
• Flex是Flexible Box的缩写,意为"弹性布局"用来为盒状模型提供最大的灵活性。
• 任何一个容器都可以指定为Flex布局。
• 采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。
• 它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。
eg:
<style type="text/css">
*{
padding: 0;
margin: 0;
}
ul{
overflow: hidden;
border: 2px solid purple;
/*将外层容器转换成弹性盒模型模式*/
display: flex;
}
ul li{
list-style: none;
width: 130px;
width: 300px;
height: 200px;
border: 2px solid dodgerblue;
background: yellow;
line-height: 200px;
text-align: center;
font-size: 30px;
}
</style>
<body>
<!--弹性盒模型容器中的项目默认在主轴上排列-->
<!--子元素默认都排列在主轴上,不换行-->
<!--如果项目总宽度小于容器宽度,就正常排列,按照设置的宽度-->
<!--如果项目总宽度大于容器宽度,那么子元素就均分容器宽度,设置宽度无效-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
</body>
#### flex-direction 设置主轴的方向
该属性决定主轴的方向(即项目的排列方向)
• row(默认值):主轴为水平方向,起点在左端。
• row-reverse:主轴为水平方向,起点在右端。
• column:主轴为垂直方向,起点在上沿。
• column-reverse:主轴为垂直方向,起点在下沿。
eg:
<style type="text/css">
*{
padding: 0;
margin: 0;
}
ul{
overflow: hidden;
border: 2px solid purple;
/*将外层容器转换成弹性盒模型模式*/
width: 1100px;
height: 550px;
margin: 30px auto;
display: flex;
/*设置主轴方向*/
/*flex-direction: row-reverse;*/
flex-direction: column-reverse;
}
ul li{
list-style: none;
width: 130px;
width: 300px;
height: 200px;
border: 2px solid dodgerblue;
background: yellow;
/*line-height: 200px;*/
text-align: center;
font-size: 30px;
}
</style>
<body>
<!--主轴和交叉轴永远是垂直的-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
</body>
#### justify-content
• 定义了项目在主轴上的对齐方式
• flex-start(默认值):左对齐
• flex-end:右对齐
• center: 居中
• space-between:两端对齐,项目之间的间隔都相等。
• space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
ul{
overflow: hidden;
border: 2px solid purple;
width: 1100px;
height: 550px;
margin: 30px auto;
display: flex;
/*主轴上的排列方式*/
justify-content: space-between;
}
#### align-items
• 定义项目在交叉轴上如何对齐。
• flex-start:交叉轴的起点对齐。
• flex-end:交叉轴的终点对齐。
• center:交叉轴的中点对齐。
• baseline: 项目的第一行文字的基线对齐。
• stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
ul{
overflow: hidden;
border: 2px solid purple;
width: 1100px;
height: 550px;
margin: 30px auto;
display: flex;
/*主轴上的排列方式*/
justify-content: space-between;
/*元素在交叉轴上的对齐方式*/
align-items: stretch;
}
<!--主轴和交叉轴永远是垂直的-->
<ul>
<li style="height: 200px;">1</li>
<li style="height: 300px;">2</li>
<li style="height: auto;">3</li>
<li style="height: 260px;">4</li>
<li style="height: 320px;">5</li>
</ul>
#### flex-wrap:
• 默认情况下,项目都排在一条线(又称"轴线")上。flex- wrap属性定义,如果一条轴线排不下,如何换行。
• nowrap(默认):不换行。
• wrap:换行,第一行在上方。
• wrap-reverse:换行,第一行在下方。
eg:
ul{
overflow: hidden;
border: 2px solid purple;
width: 1100px;
height: 550px;
margin: 30px auto;
display: flex;
/*主轴上的排列方式*/
justify-content: space-between;
/*换行*/
/*如果子元素总宽度大于父级元素宽度,那么就一行能放多少就放多少,放不下的就被挤到下一行*/
/*flex-wrap: wrap-reverse;*/
flex-wrap: wrap;
}
<body>
<!--主轴和交叉轴永远是垂直的-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
#### align-content
• 定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
• flex-start:与交叉轴的起点对齐。
• flex-end:与交叉轴的终点对齐。
• center:与交叉轴的中点对齐。
• space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
• space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
• stretch(默认值):轴线占满整个交叉轴。
eg:
ul{
overflow: hidden;
border: 2px solid purple;
width: 1100px;
height: 550px;
margin: 30px auto;
display: flex;
/*主轴上的排列方式*/
justify-content: space-between;
/*换行*/
/*如果子元素总宽度大于父级元素宽度,那么就一行能放多少就放多少,放不下的就被挤到下一行*/
/*flex-wrap: wrap-reverse;*/
flex-wrap: wrap;
/*指定多行在交叉轴上的对齐方式*/
align-content: space-around;
}
<body>
<!--主轴和交叉轴永远是垂直的-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
#### order
• 定义项目的排列顺序。数值越小,排列越靠前,默认为0
eg:
<ul>
<li>1</li>
<li style="order: 5;">2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li style="order: -5;">6</li>
<li>7</li>
</ul>
#### flex
设置比例:
<ul>
<li>1</li>
<li style="flex: 3;">2</li>
<li>3</li>
<li>4</li>
<li style="flex: 2;">5</li>
<li>6</li>
<li>7</li>
</ul>
- html&jquery网页特效
- 标签分类及特点
- 关于文字标签
- 网页定时跳转
- css透明度和插件
- 0.前端常用工具
- 1.tab切换效果
- 2.tab切换效果多个代码复用
- 3.百度新闻导航条效果
- 4.解决鼠标移入过快的问题
- 5.滚动条位置
- 6.元素尺寸
- 7.全选反选操作
- 8.固定定位
- 9.开关效果
- 10.节点操作
- 11.仿小米商品展示效果
- 12.仿小米商品展示效果复用
- 13.固定导航栏效果
- 14.凡客轮播图效果
- 15.顶部下滑广告效果
- 16.京东左右滑动轮播图
- 17.京东左右滑动无缝轮播图
- 18.选择器
- 19.筛选
- 20.开关效果
- 21.滑动效果
- 22.小米商品效果css实现
- 23.元素水平垂直居中
- laravel5.6
- LARAVEL 介绍&安装
- javascript & css 脚手架
- php常用工具类
- 安装laravel-ide-helper增强代码提示
- 使用migration创建表和数据填充
- 解决mysql5.7以下laravel不能执行数据迁移的问题
- 路由
- 登陆操作自定义模型
- 使用中间件middleware进行登录权限验证
- 进行表单验证处理
- 使用laracasts-flash定制消息提示
- 资源路由
- 宝塔面板安装fileinfo扩展
- laravel上传处理与使用hdjs快速实现前端上传组件
- thinkphp
- phpstorm
- phpstorm安装插件
- 定义快捷键
- 关闭提示
- 将代码实时同步到远程服务器
- sublime
- composer
- git使用
- git安装和配置作者信息
- git新建项目和维护项目
- git日志操作
- git别名操作
- git分支操作
- git生成发布压缩包
- git系统别名
- gitrebase操作
- 使用SSH与GITHUB远程服务器进行无密码连接
- 本地版本库主动使用remote与远程GITHUB进行关联
- 本地分支与GITHUB远程分支同步
- 项目实战-新入职员工参与项目开发时分支使用
- 自动部署
- ios开发
- linux
- 1.centos6.5 mysql忘记登入密码
- html5
- 标签
- 表单
- 音频与视频
- webstorage储存
- canvas
- css3
- 01.CSS3布局
- 02.transition动画
- 03.animation动画
- 04.flex弹性盒模型
- Less
- gulpjs
- es6
- ES6模块化
- let和const命令
- ES6函数扩展&解构赋值
- JavaScript之数据遍历
- class类
- Set和Map数据结构
- Vue
- 1.创建第一个应用
- 2.属性动态绑定
- 3.表达式
- 4.解决phpstorm不识别ECMASCRIPT6语法的问题
- 5.watch监听属性
- 6.使用object与array控制class
- 7.条件渲染
- 8.循环
- 9.变异方法
- 10.事件
- 11.表单
- 12.组件
- 13.css过渡动
- 14.js库控制vue过渡动作
- 15.自定义指令directive
- 16.使用vue-cli初始化单页面应用
- 17.Vue-router路由
- 18.vuex
- 19.vue-cli
- webpack
- zanui
- nodejs