Flex 布局教程:实例篇

Flex 布局_白芸哆的博客-CSDN博客介绍了Flex布局的语法,今天介绍常见布局的Flex写法。

你会看到,不管是什么布局,Flex往往都可以几行命令搞定。

我只列出代码,详细的语法解释请查阅 《Flex布局教程:语法篇》。我的主要参考资料是 Landon Schropp的文章和 Solved by Flexbox。

一、骰子的布局

骰子的一面,最多可以放置9个点。

下面,就来看看Flex如何实现,从1个点到9个点的布局。你可以到 codepen查看Demo。

 

如果不加说明,本节的HTML模板一律如下。


<div class="box">
  <span class="item"></span>
</div>

上面代码中,div元素(代表骰子的一个面)是Flex容器,span元素(代表一个点)是Flex项目。如果有多个项目,就要添加多个span元素,以此类推。

1.1 单项目

首先,只有左上角1个点的情况。Flex布局默认就是首行左对齐,所以一行代码就够了。


.box {
  display: flex;
}

设置项目的对齐方式,就能实现居中对齐和右对齐。

 


.box {
  display: flex;
  justify-content: center;
}

 

 


.box {
  display: flex;
  justify-content: flex-end;
}

设置交叉轴对齐方式,可以垂直移动主轴。


.box {
  display: flex;
  align-items: center;
}

 

 


.box {
  display: flex;
  justify-content: center;
  align-items: center;
}

 

 


.box {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}


.box {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

1.2 双项目

 


.box {
  display: flex;
  justify-content: space-between;
}

 

 


.box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}


.box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}

 

 

 


.box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
}

 

 

 


.box {
  display: flex;
}

.item:nth-child(2) {
  align-self: center;
}


.box {
  display: flex;
  justify-content: space-between;
}

.item:nth-child(2) {
  align-self: flex-end;
}

1.3 三项目

 


.box {
  display: flex;
}

.item:nth-child(2) {
  align-self: center;
}

.item:nth-child(3) {
  align-self: flex-end;
}

1.4 四项目

 


.box {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-content: space-between;
}

HTML代码如下。


<div class="box">
  <div class="column">
    <span class="item"></span>
    <span class="item"></span>
  </div>
  <div class="column">
    <span class="item"></span>
    <span class="item"></span>
  </div>
</div>

CSS代码如下。


.box {
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
}

.column {
  flex-basis: 100%;
  display: flex;
  justify-content: space-between;
}

1.5 六项目

 


.box {
  display: flex;
  flex-wrap: wrap;
  align-content: space-between;
}

 

 


.box {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: space-between;
}

HTML代码如下。


<div class="box">
  <div class="row">
    <span class="item"></span>
    <span class="item"></span>
    <span class="item"></span>
  </div>
  <div class="row">
    <span class="item"></span>
  </div>
  <div class="row">
     <span class="item"></span>
     <span class="item"></span>
  </div>
</div>

CSS代码如下。


.box {
  display: flex;
  flex-wrap: wrap;
}

.row{
  flex-basis: 100%;
  display:flex;
}

.row:nth-child(2){
  justify-content: center;
}

.row:nth-child(3){
  justify-content: space-between;
}

1.6 九项目

 


.box {
  display: flex;
  flex-wrap: wrap;
}

二、网格布局

2.1 基本网格布局

最简单的网格布局,就是平均分布。在容器里面平均分配空间,跟上面的骰子布局很像,但是需要设置项目的自动缩放。

 

HTML代码如下。


<div class="Grid">
  <div class="Grid-cell">...</div>
  <div class="Grid-cell">...</div>
  <div class="Grid-cell">...</div>
</div>

CSS代码如下。


.Grid {
  display: flex;
}

.Grid-cell {
  flex: 1;
}

2.2 百分比布局

某个网格的宽度为固定的百分比,其余网格平均分配剩余的空间。

HTML代码如下。


<div class="Grid">
  <div class="Grid-cell u-1of4">...</div>
  <div class="Grid-cell">...</div>
  <div class="Grid-cell u-1of3">...</div>
</div>

.Grid {
  display: flex;
}

.Grid-cell {
  flex: 1;
}

.Grid-cell.u-full {
  flex: 0 0 100%;
}

.Grid-cell.u-1of2 {
  flex: 0 0 50%;
}

.Grid-cell.u-1of3 {
  flex: 0 0 33.3333%;
}

.Grid-cell.u-1of4 {
  flex: 0 0 25%;
}

三、圣杯布局

圣杯布局(Holy Grail Layout)指的是一种最常见的网站布局。页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer)。其中躯干又水平分成三栏,从左到右为:导航、主栏、副栏。

 

HTML代码如下。


<body class="HolyGrail">
  <header>...</header>
  <div class="HolyGrail-body">
    <main class="HolyGrail-content">...</main>
    <nav class="HolyGrail-nav">...</nav>
    <aside class="HolyGrail-ads">...</aside>
  </div>
  <footer>...</footer>
</body>

CSS代码如下。


.HolyGrail {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

header,
footer {
  flex: 1;
}

.HolyGrail-body {
  display: flex;
  flex: 1;
}

.HolyGrail-content {
  flex: 1;
}

.HolyGrail-nav, .HolyGrail-ads {
  /* 两个边栏的宽度设为12em */
  flex: 0 0 12em;
}

.HolyGrail-nav {
  /* 导航放到最左边 */
  order: -1;
}

如果是小屏幕,躯干的三栏自动变为垂直叠加。


@media (max-width: 768px) {
  .HolyGrail-body {
    flex-direction: column;
    flex: 1;
  }
  .HolyGrail-nav,
  .HolyGrail-ads,
  .HolyGrail-content {
    flex: auto;
  }
}

四、输入框的布局

我们常常需要在输入框的前方添加提示,后方添加按钮。

 

HTML代码如下。


<div class="InputAddOn">
  <span class="InputAddOn-item">...</span>
  <input class="InputAddOn-field">
  <button class="InputAddOn-item">...</button>
</div>

CSS代码如下。


.InputAddOn {
  display: flex;
}

.InputAddOn-field {
  flex: 1;
}

五、悬挂式布局

有时,主栏的左侧或右侧,需要添加一个图片栏。

HTML代码如下。


<div class="Media">
  <img class="Media-figure" src="" alt="">
  <p class="Media-body">...</p>
</div>

CSS代码如下。


.Media {
  display: flex;
  align-items: flex-start;
}

.Media-figure {
  margin-right: 1em;
}

.Media-body {
  flex: 1;
}

六、固定的底栏

有时,页面内容太少,无法占满一屏的高度,底栏就会抬高到页面的中间。这时可以采用Flex布局,让底栏总是出现在页面的底部。

 

HTML代码如下。


<body class="Site">
  <header>...</header>
  <main class="Site-content">...</main>
  <footer>...</footer>
</body>

CSS代码如下。


.Site {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

.Site-content {
  flex: 1;
}

七,流式布局

每行的项目数固定,会自动分行。

 

CSS的写法。


.parent {
  width: 200px;
  height: 150px;
  background-color: black;
  display: flex;
  flex-flow: row wrap;
  align-content: flex-start;
}

.child {
  box-sizing: border-box;
  background-color: white;
  flex: 0 0 25%;
  height: 50px;
  border: 1px solid red;
}
白芸哆
关注 关注
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flex布局教程实例
qq_34309704的博客
01-11 369
Flex布局教程实例 本文中介绍的布局格式包括以下七种: 一、骰子的布局 二、网格布局 三、圣杯布局 四、输入框的布局 五、悬挂式布局 六、固定的底栏 七、流式布局 一、骰子的布局 二、网格布局 2.1基本网格布局(其实可以用boorstrap?吧) 最简单的网格布局就是平均布局。在容器里边平均分配空间   Html代码如下:  //flex容器 ... //
使用flex布局实现,7种经典布局案例
baidu_21349635的专栏
09-01 4629
flex-basis定义该项目在分配主轴空间之前提前获得200px的空间 *!/* flex-basis定义该项目在分配主轴空间之前提前获得200px的空间 *//* flex-basis定义该项目在分配主轴空间之前提前获得200px的空间 *//* flex-grow定义该项目不分配剩余空间 *//* flex-grow定义main占满剩余空间 *//* flex-grow定义该项目不分配剩余空间 *//* flex-grow定义main占满剩余空间 */
Flex弹性盒子布局和Grid网格布局详解
最新发布
qq_41765777的博客
08-16 1090
Flex布局Flexible Box Layout,也称为弹性盒布局)是CSS3中的一种布局模式,旨在让容器能够自动调整其子元素的大小、顺序和对齐方式,以更好地适应不同设备和屏幕尺寸。它的核心理念是“弹性”,即容器中的元素可以根据可用空间进行伸缩。
flex 布局案例
一抹茶-CSDN的博客
05-26 581
1.无flex布局的 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" type="text/css" href="css/style.css"/> </head> <body> <div class="container"
flex布局示例
zyzhan
11-22 446
eg:1 <div class="container"> <div class="item"> </div> </div> .container{ width: 300px; height: 300px; background-color: skyblue; display: flex; justify-content: center; // 横向居中 align-items: center; // 垂直居中 } .item{
flex布局实例
黑胡子大叔的博客
07-14 642
flex布局实例
CSS3flex布局实践 | 7种常见网页布局方案
weixin_57031986的博客
01-31 3517
CSS3flex布局实践 | 7种常见网页布局方案
flex布局的语法和案例
nostrud ipsum6
01-17 209
Flex 布局 欢迎访问我的博客,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~ 本文参考阮一峰老师的《Flex布局:语法》,在实践过程中,添加了一些案例,方便理解 详细参考Flex 布局教程:语法 一、Flex 布局是什么?FlexFlexible Box 的缩写,意为”弹性布局”,用来为盒状模型提供最大...
flex布局实例
liudadacool的博客
06-13 477
flex布局实例
flex布局---典型案例
wind的博客
08-20 467
1.左右固定,中间自适应 <div class="box"> <div class="left"></div> <div class="content"></div> <div class="right"></div> </div> .box { display: flex; height: 200px; } .left { width: 200px; back
Flex布局实例
06-04 1295
本文参考《阮一峰 Flex 布局 实例》 注:代码稍有改动,原文的宽度刚好够放三个点,有时候,第二个点并未居中,但看起来似乎是居中的,容易引起歧义. 本文 demo 源码 一、骰子布局 骰子的一面,最多可以放置9个点下面,就来看看Flex如何实现,从一个点到九个点的布局。 如果不加说明,demo 中的HTML一律如下 <div class="box"> <span ...
Flex 布局:从零到一的实战指南
妍思码匠的博客
06-17 904
通过这些小例子,我们可以看到 CSS Flex 布局在实际应用中的强大功能。无论是布局控制、方向控制还是对齐与分布,Flex 都能提供简洁而有效的解决方案。同时,结合媒体查询,我们可以轻松地创建出适应不同屏幕尺寸的响应式网站。随着你对 Flex 布局的深入了解,你将能够更加灵活地运用它,创造出既美观又实用的网页设计。
移动端flex布局案例
08-19
当然,我可以为您提供一个移动端的Flex布局案例。假设您想要创建一个简单的导航栏,其中包括三个链接按钮,它们应该在移动设备上水平居中显示。以下是一个使用Flex布局实现此效果的示例代码: HTML代码: ```html <div class="container"> <div class="nav"> <a href="#">链接1</a> <a href="#">链接2</a> <a href="#">链接3</a> </div> </div> ``` CSS代码: ```css .container { display: flex; justify-content: center; } .nav { display: flex; justify-content: center; } .nav a { margin: 0 10px; } ``` 在上述代码中,我们首先将外部容器设置为`display: flex;`,这样它的子元素就会按照Flex布局排列。然后我们使用`justify-content: center;`将子元素在水平方向上居中对齐。 内部的导航栏元素也被设置为`display: flex;`,以便其子元素在水平方向上排列。我们使用`justify-content: center;`将导航栏链接按钮在水平方向上居中对齐。 最后,通过设置`margin: 0 10px;`来为导航栏链接按钮之间添加一些间距,使其看起来更美观。 这就是一个简单的移动端Flex布局案例,希望对您有所帮助!如果您有其他问题,请随时提问。
写文章

热门文章

  • 微信小程序入门教程之二:页面样式 2927
  • 微信小程序入门教程之四:API 使用 2663
  • JavaScript基础知识笔记 2524
  • 如何全局配置axios 1433
  • JavaScript函数 1395

分类专栏

  • node 1篇
  • JAVA
  • jQuery 2篇
  • h5c3 6篇
  • vue 6篇
  • axios 1篇
  • github 1篇
  • 微信小程序 4篇
  • JavaScript 10篇
  • ES6 3篇
  • 数组 3篇
  • 函数 1篇
  • 前端面试题

最新评论

  • Flex 布局教程:实例篇

    程序员小琳: 写得这么好没人看?

  • 微信小程序入门教程之二:页面样式

    weixin_46521860: 我是个小程序初学者 感觉特有用

  • JavaScript基础知识笔记

    白芸哆: 因为这是最开始学js时候记的,那时候还没学ES6啦

  • JavaScript基础知识笔记

    爱吃火锅的小赵: 先收藏一波,复习用表情包

  • JavaScript基础知识笔记

    爱吃火锅的小赵: 不理解的是 为什么要用var声明变量

大家在看

  • # 信息技术的未来与发展趋势 信息技术(IT)行业是当今世界发展最为迅速的领域之一。随着数字化转型的加速推进,IT技术在各行各业中发挥着至关重要的作用。从个人生活到企业运营,信息技术的渗透已经无处不
  • 《深度学习》—— 卷积神经网络模型(CNN)对手写数字的识别
  • YoloV8 trick讲解 841
  • Matlab 2024a下载安装教程最新版中文汉化版怎样使用 262
  • 我最常用的6款爬虫工具,无需任何代码! 2065

最新文章

  • 如何画一个三角形
  • 数组方法记不住怎么办?来区分一下就容易记住啦
  • 期约 promise——异步编程新方案
2023年36篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家临朐玻璃钢雕塑价格党建文化玻璃钢人物雕塑供应商常州商场装饰美陈辽阳秦始皇玻璃钢雕塑商场室外美陈价格扬州百货商场美陈张掖玻璃钢卡通雕塑价格广东玻璃钢雕塑漆吉祥物玻璃钢雕塑菏泽铸铜玻璃钢景观雕塑哪里有玻璃钢雕塑蚌埠玻璃钢雕塑制作厂天筑玻璃钢雕塑价格表玻璃钢雕塑公司价格河北定做玻璃钢牛雕塑六盘水玻璃钢雕塑家用玻璃钢花盆哪里有龙湖玻璃钢花盆花器杭州玻璃钢雕塑摆件设计厂家保定玻璃钢校园雕塑北京户外商场美陈研发公司乐陵玻璃钢花盆厂玻璃钢可口可乐雕塑文山玻璃钢花盆西乡商场美陈枣庄玻璃钢雕塑订制价格玻璃钢雕塑手法南通玻璃钢仿真水果雕塑广州铅色花纹玻璃钢花盆发光景观玻璃钢雕塑设计公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化