CSS Flex布局 (弹性布局)(圣杯布局)
目录
Flex布局(弹性布局)的特点
Flex布局模型构成
组成部分
主轴对齐方式
修改主轴方向
弹性盒子换行
侧轴对齐方式
子盒子水平垂直居中:
使用flex属性修改弹性盒子伸缩比
通过flex实现圣杯布局
小结
Flex布局(弹性布局)的特点
1.浏览器提倡的布局模型,页面渲染性很高。
2.布局简单,方便。
3.可以避免浮动脱标的问题。
4.兼容性高(不兼容低版本的浏览器)
Flex布局模型构成
设置方式:
给父元素设置display:flex,子元素可以自动的挤压或拉伸;
组成部分
1.弹性容器(父级,添加了display:flex的盒子)
2.弹性盒子(子级)
3.主轴(默认水平)
4.侧轴 / 交叉轴(默认垂直)
主轴对齐方式
justify-content(添加到弹性容器-父级里):
flex-start | 默认值,左对齐 |
flex-end | 右对齐 |
center | 居中 |
space-betwwen | 间距出现在弹性盒子两侧之间 |
space-around | 间距出现在弹性盒子两侧(视觉效果: 子级之间的间距是父级左右两侧间距的2倍) |
space-evenly |
父子级间距相同 |
initial | 将此属性设置为属性的默认值 |
inherit | 从父元素继承属性的值 |
修改主轴方向
flex-direction:
主轴默认是水平方向(x轴)
侧轴默认是垂直方向 (y轴)
属性 | 作用 |
row | 行, 水平(默认值) |
colum | 列, 垂直 |
row-reverse | 行, 从右向左 |
colum-reverse | 列, 从下向上 |
弹性盒子换行
flex-wrap:
属性 | 作用 |
nowrap | 默认值。规定灵活的项目不换行或 |
wrap | 子元素宽度超出父元素的宽度换行 |
wrap-reverse | 子元素宽度超出父元素的宽度换行,但是以相反的顺序。 |
wrap-reverse的效果:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div class="main"><div>son1</div><div>son2</div><div>son3</div><div>son4</div><div>son5</div><div>son6</div></div>
</body></html>
<style>.main {width: 200px;height: 200px;border: 1px solid #c3c3c3;display: flex;flex-wrap: wrap-reverse;}.main div {width: 50px;height: 50px;background-color: red;}.main div:nth-child(odd) {background-color: pink;}</style>
侧轴对齐方式
修改侧轴对齐方式属性:
align-items(添加到弹性容器-父级 控制所有弹性盒子)
align-self: 控制某个弹性盒子在侧轴的对齐方式(添加到弹性盒子-子级 控制某个弹性盒子):
属性 | 作用 |
flex-start | 从开始依次排列 |
flex-end | 从终点开始排列 |
center | 沿侧轴居中排列 |
streth | 默认效果, 弹性盒子沿着侧轴线被拉伸至铺满容器 |
侧轴多行对齐方式:
align-content: 属性和justify-content差不多可以借鉴上面主轴对齐方式
子盒子水平垂直居中:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div class="box"><div class="son"></div></div>
</body></html>
<style>.box {display: flex;justify-content: center;align-items: center;width: 150px;height: 150px;margin: 100px auto;background-color: pink;}.son {width: 50px;height: 50px;background-color: purple;}</style>
使用flex属性修改弹性盒子伸缩比
注意事项:
1.只占用父盒子剩余的尺寸
2.是给子盒子添加这个属性
属性:flex:值;(取值要是整数,占用父级剩余尺寸的份数)
通过flex实现圣杯布局
圣杯布局就是左右两边大小固定不变,中间宽度自适应。
核心就是左右两边设置固定大小的盒子,中间盒子flex:1让中间的盒子自适应沾满剩余的空间。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div class="top"><div></div><div></div><div></div></div>
</body></html>
<style>.top {display: flex;}.top div {width: 50px;height: 50px;background-color: red;}/* 圣杯布局(中间自适应 两杯固定) */.top div:nth-child(2) {flex: 1;background-color: pink;}</style>
小结
1. 在flex中,标签不用再分类了
没有块级元素,行内元素和行内块元素。任何一个元素都可以直接给高度和宽度一行显示。
2.flex不存在脱标的问题
CSS Flex布局 (弹性布局)(圣杯布局)相关推荐
- css flex 图片不拉伸_flex布局下img元素被拉伸变形的有效解决办法
在flex布局下图片被拉伸: 正常的效果: 一.给img元素设置flex-shrink: 0 给 img 设置 flex-shrink: 0; 这种方式不会破坏现有的目录结构,只需要给被拉伸的img添 ...
- 圣杯布局、双飞翼布局、Flex布局和绝对定位布局的几种经典布局的具体实现示例
题目要求:针对如下DOM结构,编写CSS,实现三栏水平布局,其中left.right分别位于左右两侧,left宽度为200px,right宽度为300px,main处在中间,宽度自适应. 要求:允许增 ...
- 前端必经之路:CSS页面布局(深入理解浮动布局、定位布局、圣杯布局和双飞翼布局等重要布局方案)
建筑师在对一栋建筑物进行施工之前,首先会根据建筑图纸上的平面图.立体图.剖面图和构造详图等对建筑物进行整体布局后再从局部施工(当然不排除有先装修完厕所再砌卧室围墙的奇葩).在一个网页页面的搭建过程中, ...
- 【前端布局篇】浮动、定位、弹性布局,固比固、双飞翼、圣杯布局
一.布局方式介绍 布局模型是基于盒模型基础上进行的拓展,关于布局有流式布局(标准的布局),浮动布局.定位布局.flex布局等. HTML5+CSS3系列课程 携程网首页-移动端 响应式布局实战之微加建 ...
- flex布局、圣杯布局以及双飞翼布局
Flex布局 (弹性盒布局) 1.flex弹性盒布局 一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式.引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子 ...
- 使用flex实现圣杯布局
圣杯布局 首先需要了解圣杯布局的概念:圣杯布局是指左右宽度固定中间自适应的布局方式,是一个经典的布局 实现方式 在这里我使用的是flex方式来实现我们的圣杯布局. 布局思路:1,需要有三个盒子上中下排 ...
- 实现圣杯布局与双飞翼布局 原始实现-flex实现-grid实现
文章目录 实现圣杯布局和双飞翼布局 float + margin负值+relative/添加盒子 前期准备 圣杯布局 margin负值+relative 双飞翼布局 margin负值+添加盒子 fle ...
- css多栏布局(双栏布局、三栏布局、圣杯布局、双飞翼布局)
1.两栏布局 两栏布局的核心是左栏固定宽度,右栏宽度自适应 html结构为 <div class="outer"><div class="left&qu ...
- html圣杯布局,css圣杯布局和双飞翼布局
双飞翼布局和圣杯布局其实是一样的,只不过在写法上有些不同,其布局都是左右固定宽度,中间宽度自适应. 圣杯布局 html结构 center left right css 先写出大概的样式.article ...
- css经典布局系列三——三列布局(圣杯布局、双飞翼布局)
文章目录 三列布局背景介绍 定位实现三列布局 浮动实现三列布局 圣杯布局 双飞翼布局 三列布局背景介绍 三列元素,左右元素固定宽度: 中间元素自适应: <div id="left&qu ...
最新文章
- 《.NET与设计模式》学习(一)
- Perl函数pack/unpack(二进制读写)
- input输入框获取焦点时,光标置于最右
- [转]html超链接打开的窗口大小
- Android 系统(33)---sensor移植总结
- [转]:理解 Linux 配置文件
- Java 输入输出流 转载
- 拓端tecdat|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化
- 删除文档中的中文字符---只保留英文字符
- 关于fat32分区32g限制的问题
- 【Tensorflow教程笔记】使用 TPU 训练 TensorFlow 模型
- 域名被QQ和微信拦截?域名红了无法推广教你一段代码搞定!
- echarts柱状图改变标签的位置及柱状图颜色
- word中插入图片,转pdf后,打印的图片出现阴影模糊的问题及处理办法
- 局域网大附件上传,支持断点续传
- win11更新安装错误0x80073701解决方法
- 谈iphone电话短信增强工具kuaidail软件的实现
- iOS动画之转场动画CATransition
- 百度霸屏引流推广需要多少钱?那么才能霸屏?百度霸屏有什么好处?
- Revit数据导入SuperMap iDesktop方法详解