
在网页布局中,实现元素固定定位的关键在于css的position属性。
position: fixed: 当一个元素被设置为position: fixed时,它会从正常的文档流中移除,并相对于浏览器视口(viewport)进行定位。这意味着无论用户如何滚动页面,该元素都会保持在屏幕上的固定位置。通过配合top、bottom、left、right属性,可以精确控制其在视口中的位置。
position: sticky: 作为fixed的替代方案,position: sticky提供了一种“粘性”定位。元素在达到某个滚动阈值之前表现为相对定位,一旦滚动到设定的位置,它就会像fixed元素一样固定在那里。这在某些导航栏或侧边栏需要先随页面滚动,然后才固定时非常有用。对于本教程的需求(页面加载即固定),fixed是更直接的选择。
为了实现左侧固定容器和右侧主内容区的布局,我们需要两个主要的div元素:一个用于固定侧边栏,另一个用于承载主内容。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简历页面布局</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- 固定左侧容器:用于技能列表 -->
<div class="fixed-sidebar">
<h3>我的技能</h3>
<ul>
<li>HTML5</li>
<li>CSS3</li>
<li>J*aScript (ES6+)</li>
<li>React.js</li>
<li>Node.js</li>
<li>Git / GitHub</li>
<li>Responsive Design</li>
</ul>
<!-- 更多技能... -->
</div>
<!-- 主内容区域:用于职业经历、教育背景等 -->
<div class="main-content">
<h1>我的个人简历</h1>
<h2>职业经历</h2>
<p><strong>公司A - 前端开发工程师</strong></p>
<p>2025年3月 - 至今</p>
<ul>
<li>负责公司产品前端页面的开发与维护。</li>
<li>参与新功能的需求分析、技术选型和架构设计。</li>
<li>优化页面性能,提升用户体验。</li>
<li>与后端团队紧密协作,完成项目交付。</li>
</ul>
<h2>教育背景</h2>
<p><strong>大学B - 计算机科学与技术</strong></p>
<p>2016年9月 - 2025年7月</p>
<ul>
<li>获得学士学位。</li>
<li>主修数据结构、算法、操作系统等课程。</li>
</ul>
<h2>项目经验</h2>
<p><strong>项目X - 在线商城系统</strong></p>
<p>负责前端模块开发,使用React构建用户界面,实现商品展示、购物车、订单管理等功能。</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/1275">
<img src="https://img.php.cn/upload/ai_manual/001/431/639/68b6da8ca7356656.jpg" alt="Facetune">
</a>
<div class="aritcle_card_info">
<a href="/ai/1275">Facetune</a>
<p>一款在线照片和视频编辑工具,允许用户创建AI头像</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="Facetune">
<span>109</span>
</div>
</div>
<a href="/ai/1275" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="Facetune">
</a>
</div>
<!-- 添加更多内容以演示页面滚动效果 -->
<p>为了更好地展示页面滚动时固定侧边栏的效果,这里添加了更多占位文本。请注意观察左侧的技能列表,它将始终保持在屏幕的可见区域内,而右侧的主内容区域则可以自由滚动。</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Curabitur pretium tincidunt lacus. Nulla gr*ida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gr*ida. Duis ac tellus et risus auctor iaculis. Aenean placerat. In in enim a arcu ornare hendrerit. Sed sed lectus. Aliquam eleifend et, dapibus adipiscing, elit. Sed ut dolor. Ut ac est. Integer ac sapien. In in enim a arcu ornare hendrerit. Sed sed lectus. Aliquam eleifend et, dapibus adipiscing, elit. Sed ut dolor. Ut ac est. Integer ac sapien.</p>
<p>Proin ut quam non est volutpat mollis. Sed ut dolor. Ut ac est. Integer ac sapien. In in enim a arcu ornare hendrerit. Sed sed lectus. Aliquam eleifend et, dapibus adipiscing, elit. Sed ut dolor. Ut ac est. Integer ac sapien. In in enim a arcu ornare hendrerit. Sed sed lectus. Aliquam eleifend et, dapibus adipiscing, elit. Sed ut dolor. Ut ac est. Integer ac sapien.</p>
</div>
</body>
</html>接下来,我们将创建styles.css文件,并为上述HTML结构添加样式,实现固定左侧容器和主内容区的布局。
/* styles.css */
/* 重置默认浏览器样式 */
body {
margin: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: #333;
line-height: 1.6;
}
/* 固定左侧容器样式 */
.fixed-sidebar {
position: fixed; /* 关键:使元素固定在视口中 */
top: 0; /* 距离视口顶部0距离 */
left: 0; /* 距离视口左侧0距离 */
width: 220px; /* 设置侧边栏宽度 */
height: 100vh; /* 设置侧边栏高度为视口高度 */
background-color: #f8f8f8; /* 侧边栏背景色 */
padding: 20px; /* 内边距 */
box-shadow: 2px 0 8px rgba(0,0,0,0.1); /* 阴影效果 */
overflow-y: auto; /* 如果内容溢出,允许垂直滚动 */
box-sizing: border-box; /* 确保padding包含在width内 */
z-index: 100; /* 确保侧边栏在其他内容之上 */
}
.fixed-sidebar h3 {
margin-top: 0;
color: #0056b3;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
margin-bottom: 20px;
}
.fixed-sidebar ul {
list-style: none; /* 移除列表默认样式 */
padding: 0;
margin: 0;
}
.fixed-sidebar li {
margin-bottom: 10px;
padding: 5px 0;
color: #555;
font-size: 0.95em;
}
/* 主内容区域样式 */
.main-content {
/* 关键:为主要内容区域设置左外边距,以避免被固定侧边栏覆盖 */
margin-left: 220px; /* 必须与.fixed-sidebar的宽度相同 */
padding: 30px; /* 内边距 */
max-width: 800px; /* 限制主内容最大宽度,提高可读性 */
margin-right: auto; /* 配合max-width实现居中 */
margin-left: 250px; /* 调整以适配侧边栏宽度+padding */
}
.main-content h1, .main-content h2 {
color: #222;
margin-top: 40px;
margin-bottom: 20px;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
.main-content h1 {
font-size: 2.5em;
}
.main-content h2 {
font-size: 1.8em;
color: #0056b3;
}
.main-content p {
margin-bottom: 1em;
}
.main-content ul {
margin-left: 20px;
list-style: disc;
}
.main-content li {
margin-bottom: 0.5em;
}
/* 媒体查询:适应小屏幕设备 */
@media (max-width: 768px) {
.fixed-sidebar {
position: relative; /* 在小屏幕上改为相对定位 */
width: 100%; /* 占据全部宽度 */
height: auto; /* 高度自适应内容 */
box-shadow: 0 2px 8px rgba(0,0,0,0.1); /* 调整阴影 */
padding: 15px;
}
.main-content {
margin-left: 0; /* 移除左外边距 */
padding: 20px;
max-width: none; /* 移除最大宽度限制 */
}
.fixed-sidebar h3 {
text-align: center;
margin-bottom: 10px;
}
.fixed-sidebar ul {
display: flex; /* 技能列表横向排列 */
flex-wrap: wrap;
justify-content: center;
}
.fixed-sidebar li {
margin: 5px 10px;
border: 1px solid #ddd;
padding: 5px 10px;
border-radius: 5px;
background-color: #fff;
}
}margin-left 的重要性: 当使用position: fixed将侧边栏固定后,它会脱离文档流。这意味着主内容区域会向上移动,可能会被侧边栏覆盖。为了避免这种情况,必须给主内容区域设置一个左外边距(margin-left),其值应等于或略大于固定侧边栏的宽度。
初学者建议:先掌握原生CSS: 对于刚接触Web开发的初学者,建议优先学习和掌握原生HTML、CSS和J*aScript。过早依赖Bootstrap、Tailwind CSS等CSS框架可能会让你在不理解底层原理的情况下,难以调试和自定义样式。理解position、display、flexbox、grid等核心概念是构建复杂布局的基础。
响应式设计: 固定侧边栏在桌面端表现良好,但在移动设备上可能会占据过多屏幕空间或导致布局混乱。因此,强烈建议使用CSS媒体查询(@media规则)来调整布局。例如,在小屏幕上可以将固定侧边栏改为堆叠在主内容上方,或通过点击按钮显示/隐藏。示例代码中已包含一个简单的响应式处理。
z-index 的使用: 如果页面中有其他元素可能与固定侧边栏重叠,可以使用z-index属性来控制它们的堆叠顺序。给侧边栏设置一个较高的z-index值(例如z-index: 100),可以确保它始终显示在其他内容之上。
滚动行为: position: fixed的元素不会随页面滚动,但其自身如果内容溢出(如技能列表过长),可以通过overflow-y: auto使其内部滚动。
通过本教程,您应该已经掌握了如何使用CSS的position: fixed属性来创建一个固定在页面左侧的容器,并合理布局右侧的主内容区域。这种布局模式在简历页面、管理后台侧边导航、博客文章目录等场景中非常常见。记住,理解CSS的核心布局原理,并结合响应式设计思想,才能构建出既美观又实用的网页界面。
以上就是使用CSS创建固定左侧容器实现垂直布局:技能列表与主内容区实践的详细内容,更多请关注其它相关文章!
# 创建一个
# seo怎么连接原文
# 资源网站宣传推广
# 洛阳seo优化运营
# 梧州高端网站建设服务
# 抖音seo专业优化
# 月饼营销推广视频大全
# 网站优化目标标语
# 济南网站建设找谁
# https 网站建设
# 杭州首页seo
# 在那里
# 这意味着
# 文档
# 口中
# 屏幕上
# css
# 它会
# 背景色
# 两种
# 移除
# bootst
# node.js
# 前端
# js
# html
# css3
# java
# es6
# javascript
# react
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
iphone16系列配置参数介绍
wps文字怎么设置文字环绕图片的方式_wps文字如何设置文字环绕图片方式
店铺如何关联视频号推广?视频号推广有什么用?
LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用
如何测试您的网站全球打开速度-网站海外测速工
使用VS Code调试Python代码:从入门到精通
路由器DNS怎么设置最快 优化DNS提升上网速度教程
AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案
解决CSS background 属性中 cover 关键字的常见误用
斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来
yandex网页版直接登录 yandex官方入口平台访问方法
如何在CSS中设置背景图像:一个全面指南
邮编号码查询app有哪些_邮编号码查询推荐app及使用体验
快手网页版官方访问 快手网页版页面在线打开
b站怎么查看视频的码率_b站视频码率查看方法
《撕歌》会员开通方法
构建可配置的J*aScript加权点击计数器与共享总计功能
高德地图导航路线偏差报警频繁怎么办 高德地图路线偏差修复与优化方法
小米手机截图后如何查看历史_小米手机截图历史记录查看方法
CSS绝对定位与溢出控制:实现背景元素局部显示不触发滚动条
CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程
胃动力不足?试试这5个调理方法
火柴人战争网页版在线玩
Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】
Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略
Mac怎么关闭按键声音_Mac键盘打字音效设置
多闪电脑版下载_多闪PC端模拟器使用
汽水音乐官网网页版入口 汽水音乐官网网页版在线入口
《随手记》启用语音备注方法
《海底捞》点外卖方法
Bootstrap 5导航栏折叠功能失效:数据属性迁移指南
mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法
mysql触发器如何编写_mysql触发器编写规范与代码示例讲解
中大网校app做题记录清除方法
Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】
如何在CSS中清除浮动解决背景颜色不包裹内容问题_clear after技巧
QQ网页版入口导航 QQ网页版在线访问通道
荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化
在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明
12306售票时间最新规定 | 网上订票和车站窗口时间一样吗
电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】
Word 2003字体大小设置方法
Git命令与VS Code UI操作的对应关系解析
SQLAlchemy 2.0 与 Pydantic 模型类型安全集成指南
荣耀magicv5怎么上手测评
sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧
Python中处理嵌套字典与列表的数据提取与过滤教程
腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台
猫眼电影app如何设置电影上映提醒_猫眼电影上映提醒设置教程
圆通快递官网入口查询单号 手机版官方查询入口
2025-10-10
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。