flex布局在css中的使用,一看就会!
zhezhongyun 2025-06-13 18:07 18 浏览
1.认识 flex 布局
我们在写前端页面的时候可能会遇到这样的问题:同样的一个页面在 1920x1080 的大屏幕中显示正常,但是在 1366x768 的小屏幕中却显示的非常凌乱。
这是因为我们开发的页面不能做到自适应屏幕大小。为了解决这个问题,弹性布局应运而生。
flex 布局又叫做弹性布局,它是一种页面元素的布局方式。说白了就是按照这种布局方式,页面的元素可以自适应屏幕尺寸的大小。不管屏幕尺寸是大还是小,页面的元素依然排列的很整齐,看起来不会那么凌乱。
我们开发的前端页面中有 div、p、ul 等各种元素标签,那如何才能让这些元素处于弹性布局中呢?
所以 flex 布局的核心是要先有一个"弹性容器",容器中的所有元素都处在弹性布局中。
任何一个元素标签都可以作为弹性布局容器,比如 div、span、p 标签等。
只要设置下面的 css 属性,这些标签就变成了一个弹性容器:
/* 表示该元素是弹性容器 */
display: flex;
有了弹性容器之后,我们需要为该容器和它的子元素设置相关的属性,这样才能达到我们想要的弹性布局效果。
2. 容器属性
2.1 flex-direction
flex-direction :字面意思是弹性布局的方向,说白了就是这个弹性容器中的元素以什么方向排列。默认是横向排列。
我们把元素的排列方向叫做主轴,与之对应的叫做侧轴。如果属性值是 row ,那主轴就是 X 轴,侧轴就是 Y 轴。如果属性值是 column ,那主轴就是 Y 轴,侧轴就是 X 轴。
属性值:
- row:横向排列,从左到右
- row-reverse:横向排列,从右到左
- column:竖向排列,从上到下
- column-reverse:竖向排列,从下到上
2.2 justify-content
justify-content :子元素的排列方式,默认是 flex-start。
属性值:
- flex-start
- flex-end
- center
- space-around
- space-between
因为 flex-direction 默认值是 row,所以子元素默认横向排列。
如果容器设置 flex-direction: column; 则子元素的排列方式为竖向:
2.3 flex-wrap
属性说明:用来设置子元素是否换行,默认不换行。
属性值:
- nowrap:不换行
- wrap:换行
例: 这里设置弹性容器总宽度600px,3个子元素的宽度都是300px。虽然子元素的总宽度超过了弹性容器的宽度,但是因为弹性容器默认不换行,所以这三个元素仍然会排列在一行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex弹性布局</title>
<style>
.father {
width: 600px;
height: 200px;
margin: 0 auto;
background-color: gainsboro;
display: flex;
}
.son {
width: 300px;
height: 100px;
}
.son:nth-child(1) {
background-color: red;
}
.son:nth-child(2) {
background-color: green;
}
.son:nth-child(3) {
background-color: blue;
}
</style>
</head>
<body>
<div class="father">
<div class="son">1. 知否技术(公zhong号)</div>
<div class="son">2. flex布局</div>
<div class="son">3. 弹性盒子</div>
</div>
</body>
</html>
设置换行之后,第三个元素就会跑到下一行:
.father {
width: 600px;
height: 200px;
margin: 0 auto;
background-color: gainsboro;
display: flex;
flex-wrap: wrap; /* 设置换行 */
}
2.4 align-items
align-items:在弹性容器设置子元素不换行的情况下,设置侧轴上的子元素排列方式。
属性值:
- flex-start
- flex-end
- center
- stretch:拉伸填充,默认值。
这里主轴默认是 X 轴,侧轴是 Y 轴。
2.5 align-content
align-content:在弹性容器设置子元素换行的情况下, 设置侧轴上的子元素排列方式
属性值:
- flex-start
- flex-end
- center
- stretch:默认
- space-between
- space-around
这里主轴默认是 X 轴,侧轴是 Y 轴。
2.6 flex-flow
flex-flow: flex-direction 和 flex-wrap 的结合体
flex-flow: column nowrap;
3.子元素属性
3.1 flex
flex:子元素占的剩余空间的份数,默认值是 0
例一:三个子元素 flex 都设置为1
<style>
.father {
width: 800px;
height: 400px;
background-color: rgb(252, 204, 72);
margin: 0 auto;
display: flex;
color: white;
text-align: center;
}
.son {
height: 100px;
flex: 1;
}
.son:nth-child(1) {
background-color: red;
}
.son:nth-child(2) {
background-color: blue;
}
.son:nth-child(3) {
background-color: green;
}
</style>
<div class="father">
<div class="son">1</div>
<div class="son">2</div>
<div class="son">3</div>
</div>
例二:只给第二个子元素设置 flex 值,第二个元素的宽度就是弹性的。
<style>
.father {
width: 100%;
height: 400px;
background-color: rgb(252, 204, 72);
margin: 0 auto;
display: flex;
color: white;
text-align: center;
}
.son:nth-child(1) {
width: 100px;
background-color: red;
}
.son:nth-child(2) {
flex: 1;
background-color: blue;
}
.son:nth-child(3) {
width: 100px;
background-color: green;
}
</style>
<div class="father">
<div class="son">1</div>
<div class="son">2</div>
<div class="son">3</div>
</div>
3.2 align-self
align-self: 子元素在侧轴上的对齐方式
属性值:
- flex-start
- flex-end
- center
- stretch
这里主轴默认是 X 轴,侧轴是 Y 轴。
3.3 order
order: 子元素的排列顺序,数值越小,越靠前。默认值是 0
例:第二个元素 order 设置负值,优先在前面显示。
<style>
.father {
width: 800px;
height: 400px;
background-color: gray;
margin: 0 auto;
display: flex;
color: white;
text-align: center;
}
.son {
flex: 1;
}
.son:nth-child(1) {
background-color: red;
}
.son:nth-child(2) {
background-color: blue;
order: -2;
}
.son:nth-child(3) {
background-color: green;
}
</style>
<div class="father">
<div class="son">1</div>
<div class="son">2</div>
<div class="son">3</div>
</div>
相关推荐
- DNF无色流派还在继续,重力之泉龙战八荒测评
-
作者:礁石22222前言本篇为115级套装天天鉴栏目,来帮助各位读者对于新版本的装备有一个更清晰的认知。115级套装分为了稀有到太初5个品级,所有套装的稀有品级属性是一致的,从神器开始出现分歧。通过积...
- 《暗黑破坏神2重制版》常用符文之语P3
-
大家好我是游戏小白,继续补充一下《暗黑破坏神2重制版》常用的符文之语,主要给大家总结一下前期过渡常用符文之语。没看过之前关于符文之语总结的小伙伴可以翻翻前面的文章。1、钢铁符文之语钢铁造价极低但性价比...
- 魔兽怀旧服:P1一款法系BIS披风,获取方式隐蔽,需完成875个任务
-
在魔兽怀旧服WLK版本,依旧存在许多实用的制造业装备,特别是在P1阶段,制造业装备的耐用性和性价比是最高的,不仅可以帮助玩家快速过渡到团本,甚至还有个别制造业装备超越了团本掉落的强度,除了玩家近期讨论...
- 分手类型——过渡阶段
-
过度阶段一.内涵:类似于反复期,在这个阶段儿可能会出现两种可能性。1.感性想分手,但理性上舍不得。感性上我完全不想跟他相处,但理性上我又觉得他身上有很多对我有利的,对我未来有机会有利的东西。二.理性...
- 《最后的信仰》新手开局保姆级指南职业选择、属性加点与开荒策略
-
《最后的信仰》作为类魂动作游戏,开局选择直接影响开荒体验。本文针对新手玩家,从职业特性、属性分配到武器过渡,提炼高效开荒公式,助你避开陷阱,快速掌握战斗节奏。一、职业选择:斗士/盗贼优先,法系/...
- DNF回血秘方揭示,夏日前买必看篇
-
作者:辽宁吴彦祖前言(省流速览)夏日礼包购买理由:夏日礼包是DNF四大礼包之一(新春&耕耘&夏日&金秋),错过销售日期后续想获得部分道具难度极大。主打暖暖时装、特色补齐、海量打...
- DNF手游:55级粉装有大作用!强化继承大法,可节省大量幸运符
-
55级粉装的自身属性,实际上比较一般,但它可以用来作为“过渡胚子”,能够帮大家节省很多幸运符和宇宙精华!1、强化继承大法因为不断有玩家翻出了55级团本武器,这把武器肯定是当前版本毋庸置疑的版本答案,但...
- 魔兽世界50级职业任务装备如何选择,手把手教学
-
魔兽世界50级职业任务,我们装备应该如何选择,今天分身一个文章告诉你,我们知道BWL开放,也会开放50级的职业任务,那么50级的职业任务,对某些职业来说还是非常重要的,因为给的装备。有的甚至可以用到7...
- 暗牧的T5与散件如何取舍?认准自己的团队地位才最重要
-
牧师作为《魔兽世界》中的老牌职业历经许久已经收获了不少的信仰者,而在笔者看来牧师的最大特色便是风格完全不同的三系专精,在TBC时期,Raid本中的牧师大多为神牧,而戒律牧基本只活跃在竞技场和战场上,而...
- DNF:魂异界传说宝珠曝光!属性设计一般般,男枪第五转职专属
-
魂异界地下城“炒冷饭”,定位新春活动副本,奖励道具覆盖面广,涉及白金徽章、转职书、矛盾材料等等。解锁魂异界次元等级,还能兑换传说宝珠,属性也逐渐浮出水面,却比较鸡肋,“抠门”发挥的淋漓尽致!太“抠门”...
- SwiftUI入门五:让视图和过渡动起来
-
在使用SwiftUI的时候,无论效果在哪里,我们都可以单独的让视图的变化动起来,或者让视图的状态的变化动态化。SwiftUI会为我们处理那些组合的、层叠的以及可中断的动画的复杂性。在这个教程中,我们会...
- DNF:又是变强的一年?2024耕耘礼包提升率揭晓
-
作者:assddde前言国服耕耘礼包的内容已经爆料了。对去年拉满耕耘的奶系职业的而言,今年的提升点为纹章加入了1%的增益量增幅。对C而言,今年换装称号中还加入了buff换装词条。而对于错过了新春套的C...
- 魔兽世界:TBC第一阶段还有必要刷T4套吗,D3套能否过渡到T5套?
-
T4套真的不如D3套?TBC怀旧服P1阶段目前已经走过大半,作为这个阶段装备等级最高的套装T4套装,游戏中有很大争议。比如猎人玩家会选择D3套,直接跳过T4到T5阶段,而法师甚至会选择继续使用T3套装...
- 《异世界勇者》390版本开荒&毕业攻略——狂暴战
-
虽然说这个版本是防战的本命版本,但是从大家催更的频率来看,狂暴战依旧是碾压的优势,今天给大家分享一下390版本狂暴战的毕业游玩思路,希望对你有帮助。今天给大家带来的是手动速刷版的攻略,想要挂机过本需要...
- 飞飞重逢:装备属性卡全攻略,五色神卡助你战力飙升快速获取
-
在游戏中,装备属性卡是提升战斗力的关键道具,它能赋予装备特殊的元素属性,不仅大幅提升攻击力,还能针对不同怪物打出克制伤害。属性卡分为火、水、风、土、电五种元素,每种都能为装备附加独特的攻击特效。那么如...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- opacity 属性 (32)
- transition 属性 (33)