固定左侧技能列表,内容区垂直布局设计
想实现网页的垂直布局,让左侧容器固定显示技能列表或导航?本文将详细指导你如何利用CSS的`position: fixed`属性,轻松创建一个固定在左侧的容器,并确保右侧主内容区域的正常显示。文章提供清晰的HTML结构和CSS样式示例,深入探讨关键布局技巧,例如如何避免内容被遮挡以及响应式设计。无论你是新手还是经验丰富的开发者,都能通过本教程掌握这种常见且实用的网页布局方式,构建出专业、用户体验良好的界面。快来学习如何固定左侧容器,提升你的网页设计技能吧!

1. 理解核心概念:CSS position 属性
在网页布局中,实现元素固定定位的关键在于CSS的position属性。
position: fixed: 当一个元素被设置为position: fixed时,它会从正常的文档流中移除,并相对于浏览器视口(viewport)进行定位。这意味着无论用户如何滚动页面,该元素都会保持在屏幕上的固定位置。通过配合top、bottom、left、right属性,可以精确控制其在视口中的位置。
position: sticky: 作为fixed的替代方案,position: sticky提供了一种“粘性”定位。元素在达到某个滚动阈值之前表现为相对定位,一旦滚动到设定的位置,它就会像fixed元素一样固定在那里。这在某些导航栏或侧边栏需要先随页面滚动,然后才固定时非常有用。对于本教程的需求(页面加载即固定),fixed是更直接的选择。
2. 构建基础HTML结构
为了实现左侧固定容器和右侧主内容区的布局,我们需要两个主要的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>JavaScript (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>2020年3月 - 至今</p>
<ul>
<li>负责公司产品前端页面的开发与维护。</li>
<li>参与新功能的需求分析、技术选型和架构设计。</li>
<li>优化页面性能,提升用户体验。</li>
<li>与后端团队紧密协作,完成项目交付。</li>
</ul>
<h2>教育背景</h2>
<p><strong>大学B - 计算机科学与技术</strong></p>
<p>2016年9月 - 2020年7月</p>
<ul>
<li>获得学士学位。</li>
<li>主修数据结构、算法、操作系统等课程。</li>
</ul>
<h2>项目经验</h2>
<p><strong>项目X - 在线商城系统</strong></p>
<p>负责前端模块开发,使用React构建用户界面,实现商品展示、购物车、订单管理等功能。</p>
<!-- 添加更多内容以演示页面滚动效果 -->
<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 gravida 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 gravida. 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>3. 应用CSS样式实现布局
接下来,我们将创建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;
}
}4. 注意事项与最佳实践
margin-left 的重要性: 当使用position: fixed将侧边栏固定后,它会脱离文档流。这意味着主内容区域会向上移动,可能会被侧边栏覆盖。为了避免这种情况,必须给主内容区域设置一个左外边距(margin-left),其值应等于或略大于固定侧边栏的宽度。
初学者建议:先掌握原生CSS: 对于刚接触Web开发的初学者,建议优先学习和掌握原生HTML、CSS和JavaScript。过早依赖Bootstrap、Tailwind CSS等CSS框架可能会让你在不理解底层原理的情况下,难以调试和自定义样式。理解position、display、flexbox、grid等核心概念是构建复杂布局的基础。
响应式设计: 固定侧边栏在桌面端表现良好,但在移动设备上可能会占据过多屏幕空间或导致布局混乱。因此,强烈建议使用CSS媒体查询(@media规则)来调整布局。例如,在小屏幕上可以将固定侧边栏改为堆叠在主内容上方,或通过点击按钮显示/隐藏。示例代码中已包含一个简单的响应式处理。
z-index 的使用: 如果页面中有其他元素可能与固定侧边栏重叠,可以使用z-index属性来控制它们的堆叠顺序。给侧边栏设置一个较高的z-index值(例如z-index: 100),可以确保它始终显示在其他内容之上。
滚动行为: position: fixed的元素不会随页面滚动,但其自身如果内容溢出(如技能列表过长),可以通过overflow-y: auto使其内部滚动。
5. 总结
通过本教程,您应该已经掌握了如何使用CSS的position: fixed属性来创建一个固定在页面左侧的容器,并合理布局右侧的主内容区域。这种布局模式在简历页面、管理后台侧边导航、博客文章目录等场景中非常常见。记住,理解CSS的核心布局原理,并结合响应式设计思想,才能构建出既美观又实用的网页界面。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《固定左侧技能列表,内容区垂直布局设计》文章吧,也可关注golang学习网公众号了解相关技术文章。
Excel公式追踪技巧:快速定位引用单元格
- 上一篇
- Excel公式追踪技巧:快速定位引用单元格
- 下一篇
- Windows10图片查看器无法修改解决方法
-
- 文章 · 前端 | 1分钟前 |
- Flex布局打造高级导航栏设计
- 490浏览 收藏
-
- 文章 · 前端 | 2分钟前 |
- CSSGrid响应式布局实现技巧
- 292浏览 收藏
-
- 文章 · 前端 | 3分钟前 | CSS动画 平滑过渡 文字阴影 text-shadow @keyframes
- CSS文字阴影动画技巧与实现方法
- 204浏览 收藏
-
- 文章 · 前端 | 5分钟前 | 文件关联 Windows资源管理器 图标缓存 HTML文件图标 图标不显示
- HTML文件图标不显示解决方法
- 431浏览 收藏
-
- 文章 · 前端 | 5分钟前 |
- Flexbox导航栏滚动效果怎么实现
- 396浏览 收藏
-
- 文章 · 前端 | 8分钟前 |
- 点击按钮页面刷新?React解决方案详解
- 180浏览 收藏
-
- 文章 · 前端 | 9分钟前 |
- WeakMap与WeakSet:JS弱引用管理技巧
- 252浏览 收藏
-
- 文章 · 前端 | 16分钟前 | HTTP controller RESTfulAPI 前端JS SpringJDBC模板
- JS与SpringJDBC如何高效交互
- 219浏览 收藏
-
- 文章 · 前端 | 17分钟前 |
- JavaScript拖放实现与应用详解
- 282浏览 收藏
-
- 文章 · 前端 | 8小时前 |
- Flex布局order和align-self实战技巧
- 274浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3182次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3393次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3425次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4529次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 3802次使用
-
- JavaScript函数定义及示例详解
- 2025-05-11 502浏览
-
- 优化用户界面体验的秘密武器:CSS开发项目经验大揭秘
- 2023-11-03 501浏览
-
- 使用微信小程序实现图片轮播特效
- 2023-11-21 501浏览
-
- 解析sessionStorage的存储能力与限制
- 2024-01-11 501浏览
-
- 探索冒泡活动对于团队合作的推动力
- 2024-01-13 501浏览

