从零开始制作个人网页:HTML与CSS基础实战指南

发布时间:2026/9/19 2:19:49
从零开始制作个人网页:HTML与CSS基础实战指南 很多人把“制作一个简单的HTML个人网页”想得特别复杂总觉得要先学会一堆框架、配置什么环境其实真不是这样。用记事本直接写一个.html文件双击打开浏览器就能看到页面这才是HTML最迷人的地方——也是很多新手的第一课。这篇文章我打算用一篇完整可复现的案例带你从零做一个干净、好看、又不费劲的个人网页过程中涉及的知识点不多但都是你后面写任何网页都会反复用到的核心内容适合还没接触过前端、或者刚入门HTML和CSS的朋友。我之前带过不少刚学HTML的人发现大家最大的障碍不是“不会写标签”而是“不知道先干什么”。所以这篇文章我不会上来就堆代码而是先说思路再讲基础最后给你一份可以直接抄的完整代码包括怎么在本地预览、怎么在线测试、以及我写页面时踩过的那些坑。1. 动手之前先想明白你的个人网页要放什么1.1 用一张纸画出页面结构比打开编辑器更省时间很多人写网页是一上来就打开编辑器想到哪写到哪最后页面乱得自己都不想看。我建议你反过来先拿张纸画一个框把“个人网页”当成一张信息卡片来设计。你先问自己一个问题如果别人打开你这个网页你最希望他看到什么绝大多数个人网页其实只需要三块内容我是谁名字、一句话介绍可以放一张个人照片或者头像。我在做什么你的职业、目前在做的事情、擅长的方向。怎么联系我邮箱、社交平台链接这是个人网页最重要的转化目标。别急着加一堆“技能进度条”“粒子特效”“音乐播放器”那些都是后面有经验了再玩的东西。第一次做把你的个人信息说清楚就合格了。我当时给自己设计的就是一个三段式单页顶部一张背景图加名字中间一个“关于我”的卡片底部两个联系方式按钮。这个结构用到的标签很少但排版出来很干净而且很耐看。画草图的时候你不需要会什么专业工具就是拿笔在纸上画几个矩形标注清楚哪个位置放什么。有了这张“地图”你写代码的时候心里特别有底不会写着写着突然不知道下一个板块该写什么。1.2 选对工具从记事本到在线编辑器各有各的姿势工具这块我不想让你一开始就陷入“什么编辑器最强”的争论。给你一个标准能够让你把注意力集中在代码本身上的工具就是好工具。Windows 记事本或者 macOS 的文本编辑零成本适合第一次体验“原来写代码不需要安装什么”。不过纯记事本没有语法高亮写长了眼睛比较累。VS Code这是我现在的主力编辑器免费、插件丰富而且对新手很友好。HTML文件只要装上基础插件写标签就有提示能少打很多字也能早一点发现写错的地方。在线运行工具如果你暂时不想安装任何软件直接在浏览器里搜“html在线运行”用那些在线的代码编辑器也能快速看到效果。这个方式特别适合你只是临时想验证一小段代码的情况。Ubuntu 等 Linux 系统下的编辑器我知道有些读者用的是 Linux 环境。Ubuntu 自带 GNOME 文本编辑器也能装 VS Code 或 Sublime Text 来写 HTML不需要额外纠结。只要保存成.html结尾的文件任何编辑器写出来的东西浏览器都认。这里教大家一个冷门但特别好用的小技巧如果你只是想测试一小段HTML效果又不想新建文件可以在浏览器地址栏输入data:text/html,h1你好/h1浏览器会直接把这一小段代码渲染成一个页面。我第一次发现这个玩法的时候特别惊艳尤其适合验证某个标签或者某行样式到底会不会生效。它的原理很简单就是浏览器把data:协议后面的内容当成一个文档来解析相当于省掉了创建文件这一步。2. HTML与CSS基础语法够用就好不用背标签2.1 一个标准HTML文件为什么必须有这三段式结构你搜索HTML相关的内容时一定见过这样的开头!DOCTYPE html html langzh-cn head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title个人主页/title /head body !-- 可见内容写在这里 -- /body /html很多新手对这些代码一头雾水觉得是“格式噪音”。我给你逐个解释一下!DOCTYPE html告诉浏览器“这是一份现代HTML文档”没有这一行浏览器可能会用老旧的怪异模式去解析你的页面导致样式莫名其妙不对。html langzh-cn声明页面内容的语言是简体中文对搜索引擎和辅助阅读工具更友好。head里放的是页面的“元信息”比如字符编码、页面标题、样式表的引用。这些内容不会直接显示在页面上。meta charsetutf-8这一行我建议你一定要写。它的意思是“本页面使用UTF-8编码”。如果不写浏览器可能用系统默认编码去解析中文内容就会出现乱码。你这个页面本来就是中文的这行相当于提前给浏览器交了个底。meta nameviewport ...让页面在手机上按手机屏幕宽度来渲染否则手机打开网页字会小到看不清。body里的内容才是用户真正能看到的。所以我给你的建议是不要死背这些标签而是把它当成一个固定模板每次新建页面直接复制开头那几行。写得多了之后你自然就理解每一行的作用了。2.2 最常用的几个标签先把页面撑起来HTML的标签很多但你做个人网页真正高频用到的其实就这几个h1到h6标题h1是最大的一号标题一般一个页面只用一个h1留给最重要的名字或标语。p段落用来放一段一段的文字。a链接比如“给我发邮件”“查看我的作品”。注意它的href属性里写的是目标地址。img图片src属性里写图片路径alt属性里写图片加载失败时显示的文字。ul和li无序列表和列表项用来罗列技能、作品、经历非常实用。div一个没有任何语义的“容器”用来给页面分块、布局。span行内的小容器用于在一行文字中单独标记一小部分。你就把这些标签当成“积木块”一个页面就是把这些块搭起来。我见过很多新手一开始就想着把所有标签都学会其实完全没必要你只需要在写页面的时候遇到“想要一个什么元素”再去查一下对应标签怎么写这样记得最牢。有一个小建议尽量用有语义的标签比如标题用h1段落用p列表用ul别全用div。这样不只是为了规范更重要的是后期维护时你能一眼看出哪个区块是干什么的。等你写一个几百行的页面回来改就会感谢当初用了语义化标签的自己。2.3 让页面好看的CSS三种玩法HTML负责结构CSS负责样式。CSS有三种方式塞进网页里行内样式直接在标签上加stylecolor: red;优点是见效快缺点是只能作用于单个标签代码一多就很乱。内嵌样式在head里写一对style标签把CSS放进去。适合单页面测试。外部样式单独创建一个.css文件在HTML里用link relstylesheet hrefstyle.css引入。这是实际项目中最推荐的方式因为一个样式文件可以被多个页面共用改一个地方所有页面都跟着变。我做个人网页的时候用的是外部样式。因为哪怕你只有一两个页面养成“内容与样式分离”的习惯后面扩展起来会非常顺畅。你想一下如果所有样式都写在HTML里头文件还很短还好等你加了十个页面每个页面都复制几十行样式改个主题色就要全文件搜一遍那画面太美我不敢看。CSS里你最先要理解的就是“盒子模型”。简单说每一个HTML元素在页面上都是一个矩形盒子从外到内分别是margin外边距盒子与其他元素之间的距离。border边框。padding内边距内容与边框之间的距离。content实际内容区域。我打一个比方你买了一幅画画芯是content画框是border画框到画芯之间垫了一层纸是padding而这幅画挂到墙上之后它与旁边另一幅画的距离就是margin。理解了这个概念看很多样式代码就不会一头雾水了。3. 手把手制作一个完整个人主页3.1 页面目标与布局图我们要做的页面很简单但看起来不能太简陋。我的设计目标如下头部区域一张渐变背景中央显示“你好我是林一”和一行小字“前端开发者 / 内容创作者”。关于我区域一张圆形头像一小段自我介绍。作品/技能区域用列表展示三个方向的能力或作品。联系区域两个按钮分别是“给我发邮件”和“访问我的博客”。配色上我选了一个蓝色系的渐变头图正文用深灰色整体走干净舒适的路线。整个页面就一个HTML文件和一个CSS文件不需要任何外部库非常适合新手复现。3.2 完整HTMLCSS代码示例先创建项目文件夹名字可以叫my-page在文件夹里新建两个文件index.html和style.css。index.html内容如下!DOCTYPE html html langzh-cn head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title林一 | 个人主页/title link relstylesheet hrefstyle.css /head body header classhero h1你好我是林一/h1 p前端开发者 / 内容创作者/p /header section classabout img srcavatar.jpg alt林一的头像 classavatar h2关于我/h2 p我是一名热爱将想法变成产品的开发者喜欢研究HTML、CSS和JavaScript也喜欢把学到的东西写成文章分享给更多人。这个页面是我用最基础的技术搭起来的没有框架没有构建工具只有干干净净的代码。/p /section section classskills h2我在做什么/h2 ul liWeb 页面开发用 HTML/CSS/JavaScript 还原设计稿。/li li技术写作把我踩过的坑整理成教程帮助新手少走弯路。/li li创意实验不定期做一些有趣的小项目保持对代码的好奇心。/li /ul /section footer classcontact h2联系我/h2 a hrefmailto:exampleemail.com classbtn给我发邮件/a a hrefhttps://example.com classbtn btn-outline target_blank relnoopener访问我的博客/a /footer /body /htmlstyle.css内容如下/* 全局基础样式 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: PingFang SC, Microsoft YaHei, sans-serif; color: #333; line-height: 1.6; background-color: #f7f9fc; } /* 头部区域 */ .hero { background: linear-gradient(135deg, #4facfe, #00f2fe); color: #fff; text-align: center; padding: 80px 20px; } .hero h1 { font-size: 42px; margin-bottom: 10px; } .hero p { font-size: 18px; opacity: 0.9; } /* 关于我区域 */ .about { max-width: 720px; margin: 40px auto; padding: 0 20px; text-align: center; } .avatar { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 4px solid #4facfe; margin-bottom: 16px; } .about h2 { margin-bottom: 12px; font-size: 28px; } /* 技能列表区域 */ .skills { max-width: 720px; margin: 40px auto; padding: 24px 32px; background: #fff; border-radius: 12px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); } .skills h2 { margin-bottom: 12px; font-size: 24px; } .skills ul { padding-left: 20px; } .skills li { margin-bottom: 8px; } /* 底部联系区域 */ .contact { text-align: center; padding: 50px 20px; } .contact h2 { margin-bottom: 16px; font-size: 24px; } .btn { display: inline-block; margin: 6px; padding: 12px 28px; background-color: #4facfe; color: #fff; text-decoration: none; border-radius: 30px; border: 2px solid #4facfe; transition: background 0.3s; } .btn:hover { background-color: #2d8fe8; border-color: #2d8fe8; } .btn-outline { background: transparent; color: #4facfe; } .btn-outline:hover { background: #eaf4ff; border-color: #4facfe; }这段代码你可以直接复制到自己的文件里。注意两个文件必须放在同一个文件夹下并且index.html里通过link relstylesheet hrefstyle.css引用了style.css如果你把CSS文件改了名路径也要对得上。如果你暂时没有自己的头像图片可以先随意放一张正方形的图片到文件夹里命名为avatar.jpg或者直接把img标签里的src改成任意一张网络图片的URL。就我自己测试的经验object-fit: cover这个属性很关键它可以让你的图片无论长宽比例如何都自动裁剪成适合120x120头像框的形状不会把图片拉伸变形。这个属性在CSS里属于“用了就回不去”的那种强烈推荐记住。3.3 本地预览、在线运行与调试技巧代码写完以后你只需要双击index.html浏览器就会打开这个页面。本地双击预览和部署到服务器上效果几乎是完全一样的除了个别需要通过HTTP协议才能请求到的资源。在线测试这一块也很方便。你可以在浏览器地址栏用我之前说的data:text/html来快速测试一小段代码也可以把完整的HTML代码粘贴到一些在线编辑器里比如很多教程网站自带的“在线运行”功能它们能让你在网页里同时看到代码和效果还能让你随时修改测试非常适合新手阶段用。浏览器自带的开发者工具按F12打开是你调试页面最强大的伙伴。我现在写页面的时候几乎每天都离不开它。你可以在Elements/元素面板里直接修改CSS样式的值页面会实时刷新不用改了文件再刷新页面去验证。我在写这个个人主页的时候就是用这个方式反复调试头部渐变色和按钮圆角的比在编辑器里改一下切一次页面快太多了。还有一个很关键但很多人不知道的点代码写完以后按CtrlS保存再回浏览器按F5刷新就能看到最新的修改结果。如果你发现修改没生效先别怀疑代码检查一下是不是忘记保存文件了——这种“低级问题”我犯过不下十次。4. 新手最容易踩的坑以及三个让我省时间的习惯4.1 新手常见问题速查表我在帮新人看代码的时候发现很多问题都是重复出现的。这里整理一个表格你在开发中遇到问题可以直接对照排查问题现象常见原因解决方法页面中文全部乱码缺少meta charsetutf-8在head里加上这一行HTML文件里有内容但浏览器打开是空白可能把内容写在了head里而不是body里把可见内容移入body标签内部改了CSS文件但页面没变化没有保存或者CSS文件路径错了确认保存检查href路径与文件名一致图片不显示src里的路径不对或文件不存在检查图片是否在项目文件夹里路径是否区分大小写点击邮件按钮没有反应mailto:后面的邮箱地址错误把mailto:exampleemail.com改成真实邮箱页面在手机上显示很小缺少viewport标签在head中加入meta nameviewport ...按钮没有圆角效果被其他样式覆盖或没写border-radius检查该选择器的具体样式确认优先级这个表格里的问题我几乎都在不同人身上见过。尤其是中文乱码和CSS改了不生效这两个能让新手折腾半小时其实都是很小很小的地方。4.2 三个效率习惯一键返回顶部、多页面通勤、备份维护写个人网页这件事一旦你有了一点基础就可以开始琢磨怎么提高效率。我分享三个让我省时间的小习惯。第一个是“一键返回顶部”。单页内容不长的时候用不上但等你页面内容多了用户往下翻半天想回顶部如果没有按钮就很不方便。实现方式其实很简单在页面加一个按钮再用JavaScript写一小段滚动逻辑。热词搜索里老有人搜“html一键返回顶部算法”其实核心就是监听按钮点击然后让页面滚回顶部button idbackToTop返回顶部/button script var backBtn document.getElementById(backToTop); backBtn.addEventListener(click, function () { window.scrollTo({ top: 0, behavior: smooth }); }); /scriptbehavior: smooth会让滚动变得平滑体验比瞬间跳转好很多。按钮的样式你可以自己用CSS去美化核心逻辑就这么几行。第二个习惯是“多页面共用同一个样式文件”。个人网页不一定只有一个页面你可能还会有作品集页、博客页。这时候你要学会把公共样式放在style.css里然后在每个新页面的head里都引用同一个CSS文件。以后想统一修改字体颜色、按钮风格只需要改这个公共文件所有页面都会生效。如果你要打包多个HTML文件发给别人记得保持它们的相对路径关系别把CSS文件丢在半路上。第三个习惯是“内容备份与格式转换”。有时候你想在个人网页里放一篇文章但手里只有Word或者Markdown格式的文本直接复制到HTML文件里会带一堆奇怪的格式。我之前试过从Word复制过来的内容粘贴到网页里格式化乱到怀疑人生。建议你在本地先用纯文本或者Markdown格式整理好内容再手动转换成HTML结构。网上有很多“html转md”或者“md转html”的小工具用它们可以快速完成格式转换然后你再把生成的HTML片段贴到自己的页面里。对于不想频繁折腾网页的人来说这是个非常省力的内容维护方式。我在实际使用中发现做个人网页和写文章很像最重要的不是你用了多炫酷的技术而是“先把内容铺好再一点点美化”。很多新手一上来就折腾复杂框架结果首页还没写完就失去了兴趣。反而是那些老老实实先用HTML加CSS把个人介绍写出来的人越写越有感觉后面才有动力去学习JavaScript、学习各种布局技巧。这个项目的后续你可以往这些方向扩展给“关于我”加上个人照片轮播用CSS动画给按钮加悬浮效果把你写的博客文章整理成列表页或者把整个页面部署到网络访问。但无论怎么扩展核心逻辑永远是那一套写结构、写样式、发现问题、解决问题。希望你能把这个最简单的页面当成一块干净的画布在上面慢慢画出属于自己的风格。毕竟所有复杂的网站都是从一行!DOCTYPE html开始的。