视频加载失败

CSS3流式布局

1316 字
7 分钟
CSS3流式布局

前言#

在学习CSS的布局之前,需要知道的一点是,不是一种布局,一个测量单位从头用尾,而是视情况使用,结合使用才是最终方案,每个布局和测量单位都有不同应用场景,而非谁淘汰谁,当然这其中会存在一些新方案和旧方案,比如rem和vw布局,在以前的项目中,可能会用到rem,但是现在新项目推荐使用vw,因为rem需要使用js动态计算,而vw是相对于视口计算,少了js,页面性能就更好,所以rem布局可以了解认识使用,但是新项目采用vw方案,理清思路之后,学习第一个布局流式布局,流体布局并不是一个完全独立新知识,所以这里会用一个demo演示,再后续的布局中,也会基于这个修改

仿慕课网首页#

页面结构布局#

基础骨架和reset.css

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>仿慕课网首页-流体布局</title>
<link rel="stylesheet" href="../../../styles/reset.css">
</head>
<body>
<!-- 头部 -->
<header class="header-layout">头部</header>
<!-- 主体 -->
<div class="main-layout">
<!-- 幻灯片 -->
<div class="slider-layout"></div>
<!-- 免费课程 -->
<div class="course-layout">免费课程</div>
<!-- 实战课程 -->
<div class="course-layout">实战课程</div>
</div>
<!-- 标签栏 -->
<div class="tabbar-layout">标签栏</div>
</body>
</html>

布局layout样式

layout.css
.header-layout {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 48px;
background-color: red;
border-bottom: 1px solid #e8e8e8;
}
.main-layout {
padding: 48px 0 48px 0;
}
.slider-layout {
height: 134px;
background-color: green;
margin-bottom: 20px;
}
.course-layout {
height: 382px;
background-color: gray;
margin-bottom: 10px;
}
.tabbar-layout {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 48px;
background-color: yellow;
box-shadow: 0 -4px 4px rgba(0, 0, 0, 0.15);
}

头部#

<!-- 头部 -->
<header class="header-layout">
<div class="header">
<!-- logo -->
<a href="" class="header-logo">
<img src="../../../public/images/logo.png" alt="logo" class="header-logo-img">
</a>
<!-- 下拉框按钮 -->
<button id="header-toggle" class="header-toggle">
<span class="header-toggle-bar"></span>
<span class="header-toggle-bar"></span>
<span class="header-toggle-bar"></span>
</button>
</div>
</header>

主体部分#

幻灯片部分

<!-- 幻灯片 -->
<div class="slider-layout">
<img src="../../../public/images/slider/1.jpg" alt="">
</div>

实战免费课程部分

<!-- 免费课程 -->
<div class="course-layout">
<div class="course">
<h2 class="course-title">免费课程</h2>
<ul class="course-list">
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_free/1.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">免费</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_free/2.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">免费</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_free/3.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">免费</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_free/4.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">免费</p>
</a>
</li>
</ul>
</div>
</div>
<!-- 实战课程 -->
<div class="course-layout">
<div class="course">
<h2 class="course-title">实战课程</h2>
<ul class="course-list">
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/1.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/2.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/3.jpg" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/4.png" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/5.png" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
<li class="course-item">
<a href="javascript:;">
<p class="course-pic">
<img src="../../../public/images/course_coding/6.png" alt="" class="course-img">
</p>
<p class="course-name">初始HTML5+CSS3 - 2026升级版</p>
<p class="course-price">实战</p>
</a>
</li>
</ul>
</div>
</div>

标签栏#

标签栏部分

<!-- 标签栏 -->
<div class="tabbar-layout">
<div class="tabbar">
<a href="javascript:;" class="tabbar-item tabbar-item-active">
<i class="iconfont icon-home">
</i>
<span>首页</span>
</a>
<a href="javascript:;" class="tabbar-item ">
<i class="iconfont icon-search">
</i>
<span>搜索</span>
</a>
<a href="javascript:;" class="tabbar-item ">
<i class="iconfont icon-personal">
</i>
<span>我的</span>
</a>
</div>
</div>

layout样式#

layout.css
.header-layout {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 48px;
background-color: red;
border-bottom: 1px solid #e8e8e8;
}
.main-layout {
padding: 48px 0 48px 0;
}
.slider-layout {
/* height: 134px;
background-color: green; */
margin-bottom: 20px;
}
.course-layout {
/* height: 382px;
background-color: gray; */
margin-bottom: 10px;
}
.tabbar-layout {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 48px;
background-color: yellow;
box-shadow: 0 -4px 4px rgba(0, 0, 0, 0.15);
}

总结#

流体布局主要使用%单位布局,不是只能使用%单位布局,也可以使用其他单位,比如px;图片一般只设置宽度或者高度,不要同时设置,这样可以等比例缩放,不失真

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CSS3流式布局
https://f.youzi177.cn/posts/2026101301css3-liu-shi-bu-ju/
作者
小封鸭
发布于
2026-10-13
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小封鸭
小楼一夜听春雨,深巷明朝卖杏花
公告
欢迎来到我的博客。这里主要记录前端全栈和日常内容
分类
标签
最新动态
站点统计
文章
60
分类
3
标签
12
总字数
107,734
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录