ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

用VSCode搭建网页?开发者工具助你拆解网页代码构成

用VSCode搭建网页?开发者工具助你拆解网页代码构成 1. 项目整体设计与思路拆解这期视频的主题其实可以浓缩成一句话用VSCode从零搭一个网页然后用浏览器开发者工具把网页的“底裤”看穿。很多人刚接触web前端开发时最大的困惑不是不会写HTML标签而是不知道“我写的代码到底变成了浏览器里的什么东西”。你在编辑器里敲了一行h1你好/h1回车浏览器里出现一行字。这个过程好像魔术但魔术背后的原理恰恰是前端开发最值钱的手感。我在这期内容里想解决三件事第一帮你把VSCode这个开发环境彻底配明白让它真正为网页开发服务第二带你写一个完整的小网页不是那种只点按钮弹个框的demo而是包含结构、样式、交互的完整页面第三也是最核心的教你怎么用浏览器内置的开发者工具去拆解任何一个网页的代码构成。以后你在网上看到任何一个惊艳的页面都不再只是“哇”一下而是能直接打开DevTools像拆玩具一样把它的骨架、皮肉、神经一根根挑出来看。这个思路为什么重要因为前端开发和后端最大的区别在于你的代码产物最终运行在别人的浏览器里你没法控制用户用什么设备、什么浏览器、什么网络环境。所以一个前端工程师的核心能力不是背多少API而是“调试能力”——能定位问题、能理解浏览器如何渲染你的代码、能快速判断问题是出在HTML结构、CSS样式还是JS逻辑上。而调试能力的入口就是开发者工具。适合谁看这期如果你刚写完HTML入门教程知道div和span的区别但还没有独立完成过一个完整页面或者你已经在用现成模板改网页但看不懂模板里的代码为什么这样写——这期内容就是给你准备的。如果你已经能熟练使用React或Vue可能觉得这期太基础但我也建议你留下来看看因为很多工作了三五年的前端反而忽略了浏览器原生调试工具里那些能大幅提升效率的细节。这里补充一下我的工具选型逻辑。编辑器我选VSCode原因不用多说开源免费、插件生态强、智能提示好用。但我见过太多新手在VSCode里装了十几个插件结果写代码时满屏报错提示反而不知道哪个是真正有用的。所以这期我特意讲清楚了哪些插件是必需的、哪些是锦上添花的、哪些建议直接卸载。浏览器以Chrome为例因为它的DevTools是行业事实标准而且大部分调试技巧在Edge、Firefox里也通用。如果你用的是Safari做开发建议还是装个Chrome不是Safari不好而是生态和插件差太多很多前端工具链对Safari的支持都不太积极。还有一个设计上的考量我故意没有在这期引入任何框架连jQuery都没用。因为在网页前端开发的起步阶段越贴近原生HTML/CSS/JavaScript你越能理解浏览器工作的本质。框架能帮你省时间但也会把底层逻辑包得严严实实。等你看得懂网页代码构成了框架选择就是水到渠成的事。2. 核心细节解析与实操要点2.1 VSCode做网页前端开发的必备配置工欲善其事必先利其器。VSCode装好之后第一件事不是装插件而是先把基本配置调对。首先确认你装了“简体中文语言包”这个不多说。然后有三个插件建议必装Live Server、Prettier - Code formatter、ESLint如果不写JavaScript可以暂缓但做网页基本离不开。Live Server的作用是在本地起一个开发服务器你保存代码的瞬间浏览器自动刷新不用手动按F5。它的原理是监听你工作目录里的文件变化然后通过WebSocket通知浏览器重新加载页面。这里有个细节很多人不知道Live Server默认的端口是5500如果被占用它会自动换端口但有时候端口换了浏览器没有自动弹出新页面你会觉得“怎么不生效”其实就是端口变了。遇到这种情况直接看VSCode右下角提示或者手动访问刚才的地址加新端口。Prettier是格式化工具它解决的是团队协作时的代码风格之争。你自己一个人写代码可能感觉不到但一旦和别人合作每个人缩进习惯不同代码合并时全是冲突。Prettier能统一风格保存即格式化。建议在VSCode设置里开启“Format On Save”这样每次保存代码自动帮你整理格式。还有一个容易忽略的配置Auto Save。建议设置成“onFocusChange”也就是焦点离开编辑器时自动保存。配合Live Server你写完一改样式切到浏览器看效果浏览器已经刷新完了。这个工作流非常流畅。另外建议关闭“缩略图”也就是编辑器右上角的代码预览条。代码多了之后缩略图看起来很酷但实际作用有限还占屏幕空间。把View菜单里的“Minimap”关掉编辑区能显示更多行代码。2.2 HTML、CSS、JavaScript三件套的边界划分很多新手一开始就搞混什么是HTML负责的什么是CSS负责的什么是JavaScript负责的。我打个比方你就记住了HTML是骨架CSS是皮肤和衣服JavaScript是神经系统。骨架决定了页面里有什么——标题、段落、图片、按钮这些都用HTML标签声明。皮肤和衣服决定了这些东西长什么样——颜色、大小、位置、间距这些都由CSS控制。神经系统让页面“活过来”——点击按钮弹出提示、滚动到某个位置加载更多数据、提交表单时校验输入这些动作是JavaScript在做。这个边界一定要清晰因为实际开发中80%的“诡异Bug”都源于边界混乱。比如你发现页面布局乱了第一反应应该是去查CSS而不是去看JavaScript你发现点击按钮没反应第一反应是看JavaScript事件绑定和控制台报错而不是去改CSS。我在教学和面试中反复观察到一个现象很多初学者喜欢用JavaScript去修改元素样式比如element.style.color red这本身没错但如果你发现页面上某个颜色死活不对很有可能是CSS里某条规则的优先级更高JS的修改被覆盖了。这时候去查CSS的优先级规则比在JS里反复赋值有效得多。2.3 网页代码构成的三个层级用浏览器开发者工具看网页代码构成很多人只知道看“Elements”面板也就是元素面板。但真正专业的调试至少要理解三个层级。第一个层级是DOM文档对象模型也就是浏览器把HTML解析之后生成的树形结构。你在DevTools的Elements面板里看到的不是HTML源代码而是DOM树。两者有什么区别HTML源文件是静态文本而DOM是动态的。JavaScript可以随时增删改DOM节点页面内容就跟着变了但HTML源文件里并没有同步修改。所以你在Elements面板里看到的是“当前这一刻”页面的真实状态。第二个层级是样式DevTools里选中一个元素右侧的Styles面板会列出所有作用于这个元素的CSS规则包括从哪些样式表来的、哪些规则被覆盖了划横线的就是、哪些属性是继承的。这是排查样式问题的主战场。第三个层级是网络请求。页面里的图片、CSS文件、JavaScript文件、接口数据每一个都是一个或多个HTTP请求。DevTools的Network面板记录所有这些请求的耗时、状态码、请求头、响应体。前端性能优化的第一步就是打开Network面板看哪些请求慢、哪些文件体积大。这三个层级之间不是孤立的。你改了一个DOM节点的class属性它的样式可能就完全变了你发现页面加载慢可能不是CSS问题而是某个图片请求花了3秒。所以网页调试的核心能力就是在DOM、样式、网络请求之间来回切换定位问题。这也是我后面实操环节要重点演示的内容。3. 实操过程与核心环节实现3.1 初始化项目结构与页面骨架下面我们用一个“个人作品集”页面作为实战项目。这个项目麻雀虽小五脏俱全有导航、有主体内容、有卡片布局、有按钮交互非常适合演示网页前端开发的完整流程。第一步在你的电脑上建一个项目文件夹名字可以叫my-portfolio然后用VSCode打开这个文件夹。my-portfolio/ ├── index.html ├── css/ │ └── style.css └── js/ └── main.js这是前端项目最常见的目录结构HTML放在根目录CSS放在css文件夹JavaScript放在js文件夹。还有一种更精细的结构会按功能模块分文件夹但初期这种分类就够用了。这背后是一个工程化原则按文件类型组织代码。注意我说的是“初期”等以后用React或Vue目录组织方式又会变成“按功能模块组织”那又是另一套思路了。在index.html里写下页面骨架!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title个人作品集 - 前端开发/title link relstylesheet hrefcss/style.css /head body header classnavbar div classlogoMyLogo/div nav ul classnav-links lia href#home首页/a/li lia href#projects项目/a/li lia href#contact联系/a/li /ul /nav /header main section idhome classhero h1你好我是前端开发者/h1 p我热爱构建美观、易用的网页应用/p button idmainBtn classbtn查看我的项目/button /section section idprojects classprojects h2我的项目/h2 div classcard>* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: PingFang SC, Microsoft YaHei, sans-serif; line-height: 1.6; color: #333; background: #f5f7fa; } .navbar { display: flex; justify-content: space-between; align-items: center; padding: 16px 40px; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); position: sticky; top: 0; z-index: 100; } .nav-links { list-style: none; display: flex; gap: 24px; } .nav-links a { text-decoration: none; color: #333; font-weight: 500; } .nav-links a:hover { color: #007bff; } .hero { text-align: center; padding: 80px 20px; background: linear-gradient(135deg, #e0e7ff, #f0f4ff); } .hero h1 { font-size: 48px; margin-bottom: 16px; } .btn { display: inline-block; padding: 12px 32px; background: #007bff; color: #fff; border: none; border-radius: 6px; font-size: 16px; cursor: pointer; transition: background 0.3s ease; } .btn:hover { background: #0056b3; } .projects { max-width: 900px; margin: 40px auto; padding: 0 20px; } .projects h2 { text-align: center; margin-bottom: 32px; } .project-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; } .card { background: #fff; border-radius: 12px; padding: 24px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); }这里我用到了几个关键技巧逐一说明。*通配选择器清零边距是CSS重置的基础手段。注意我加了一个box-sizing: border-box这行很多人忽略但影响很大。默认情况下CSS的宽度是只算内容的不算padding和border。你在一个容器里写了width: 300px; padding: 20px;实际占用的宽度是340px这在布局时很容易算错。border-box会把padding和border包含在width内布局计算更直观。现在主流项目基本都默认用它。.navbar里的position: sticky是一个被低估的属性。它的效果是页面向下滚动时导航栏到达顶部后“粘住”不动。以前做这种效果要用JavaScript监听滚动事件现在一行CSS解决问题。要注意sticky的生效条件父元素不能有overflow: hidden否则sticky失效这是很多人踩过的坑。.project-grid里用了display: grid加grid-template-columns: repeat(auto-fit, minmax(260px, 1fr))这句的意思是自动生成多列每列最少260px如果屏幕够宽就多放几列不够就换行。这就是响应式布局的秘诀之一。不需要写媒体查询就能让卡片在手机上一列、平板两列、桌面三列自动调整。我项目里的.card目前没有套.project-grid但你已经写好了样式下面我们在页面里给projects区块加上grid形成真正的卡片网格。3.3 JavaScript交互实现js/main.js里写一个最简单的交互逻辑document.getElementById(mainBtn).addEventListener(click, function () { const projectsSection document.getElementById(projects); if (projectsSection) { projectsSection.scrollIntoView({ behavior: smooth }); } });这几行代码做的事情是监听“查看我的项目”按钮的点击事件点击后平滑滚动到项目区域。scrollIntoView是原生方法支持平滑滚动比手工写requestAnimationFrame动画省事得多而且性能不错。接下来补充一个交互细节给卡片加上鼠标悬停的微视觉反馈。我们把main.js改成document.getElementById(mainBtn).addEventListener(click, function () { const projectsSection document.getElementById(projects); if (projectsSection) { projectsSection.scrollIntoView({ behavior: smooth }); } }); // 卡片悬停效果鼠标移入时添加一个阴影加深的 class const cards document.querySelectorAll(.card); cards.forEach((card) { card.addEventListener(mouseenter, () { card.style.boxShadow 0 8px 24px rgba(0, 0, 0, 0.12); }); card.addEventListener(mouseleave, () { card.style.boxShadow 0 4px 12px rgba(0, 0, 0, 0.06); }); });等等这里就涉及我前面讲的“边界划分”问题了。鼠标悬停改变阴影这属于“外观变化”理论上应该由CSS的:hover伪类来做而不是JavaScript。我故意这样写是为了演示一个反面教材然后马上告诉你正确做法。正确的做法是在CSS里加.card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); transform: translateY(-4px); }这样更简洁、性能也更好因为CSS的hover处理是浏览器底层优化的而JavaScript的mouseenter/mouseleave会频繁触发样式计算。所以main.js里这段悬停逻辑实际开发中不应该写。这就是为什么我说“边界划分要清晰”能用CSS解决的外观问题绝不要用JavaScript这是前端开发的一条铁律。3.4 查看网页代码构成的完整流程现在到了本期最重要的环节用浏览器查看网页代码构成。在VSCode中右键点击index.html选择“Open with Live Server”浏览器会自动打开http://127.0.0.1:5500/index.html。然后按F12打开DevTools。第一步看Elements面板。你会发现DOM树的结构和你在HTML里写的基本一致但注意几个细节浏览器会自动在table里插入tbody如果你的页面有表格的话会修复某些不规范的标签嵌套。这就是DOM树和HTML源文件的第一个区别。第二步选中页面上的“你好我是前端开发者”这个标题。在Elements面板左上角有一个箭头图标叫“元素选择器按钮”点一下鼠标移动到页面上DevTools会自动高亮你鼠标所指的元素再点击右侧的Styles面板就显示了这个元素的所有样式。你会看到.hero h1这条规则对应的就是CSS里的font-size: 48px。如果某个样式被划掉了说明有更高优先级的规则覆盖了它。这里解释一下CSS优先级规则。内联样式style属性优先级最高其次是ID选择器再是类选择器、伪类和属性选择器最后是标签选择器和伪元素。通配符*优先级最低继承来的样式优先级更低。优先级相同时后写的覆盖先写的。你在Styles面板里看到的排序其实就是按优先级从高到低排列的。第三步体验一下实时修改样式。在DevTools中直接点击某个CSS属性值比如把.hero h1的font-size从48px改成64px按回车页面立刻变化。这个修改只在内存中生效刷新页面就会恢复。很多人不知道这个技巧其实这是调试样式最快的办法。第四步看Network面板。刷新页面你会看到多个请求index.html、style.css、main.js。点击每个请求可以看到详情大小、耗时、响应头。如果你在页面里加了图片还能看到图片的请求。这里有一个实用技巧如果某次请求是红色的说明失败了状态码可能是404文件找不到或500服务器错误。文件引用的路径对不对看这里一目了然。第五步用Console面板做验证。在Console里输入document.title回车会输出页面的标题。输入document.querySelectorAll(.card).length返回值应该和页面卡片数一致。这个“命令行操控页面”的方式是前端调试的基本功。你可以直接在Console里执行任何JavaScript代码相当于在页面上下文里开了个终端。这套“选择元素→查看样式→修改验证→查看网络请求”的流程就是查看任何网页代码构成的标准方法。以后你在B站、知乎、京东看到任何一个网页都可以用同样的方式拆解它看它的导航栏布局、看它的字体颜色、看它加载了哪些资源。这不叫偷师这是前端从业者的基本功网上开源的精神本来就鼓励大家从别人的代码里学习。4. 常见问题与排查技巧实录4.1 浏览器打开网页一片空白这个问题太常见了。首先在Console面板看有没有报错。如果是红色的报错信息点击它就能定位到具体文件、行号、报错原因。常见的几种情况“Failed to load resource: net::ERR_FILE_NOT_FOUND”文件路径不对CSS或JS文件找不到。检查href和src的路径相对于当前页面是否正确。“Cannot read properties of null”某个元素没找到。最典型的原因是你把script标签放在head里或HTML结构之前JavaScript执行时元素还没渲染出来。解决办法是把script标签放到/body之前或者监听DOMContentLoaded事件。语法错误比如少了一个括号。Console会提示具体的语法错误位置。还有一种情况是Console没有报错但页面确实是白的。这时候在Elements面板看body里有没有内容。如果body里是空的说明HTML文件可能是空的或者Live Server打开的页面和你的项目文件不是同一个。我遇到过好多次VSCode打开的是文件夹A但Live Server起的是另一个页面最后发现是工作区根目录不对。4.2 样式改了但浏览器里没变化排查看得更仔细一点。首先确认浏览器缓存。Live Server已经帮你处理了自动刷新但如果你用的是直接双击HTML文件方式打开浏览器可能缓存了旧的CSS。按CtrlF5强制刷新。然后确认CSS文件有没有被成功加载。在Network面板找style.css如果状态是200说明加载成功如果是304说明走了缓存内容可能不是最新的如果是404检查路径。最常见的问题是CSS文件里的语法错误。比如少写了一个闭合括号}后面的所有样式都会失效且浏览器不会报错只是默默忽略。如果你发现页面样式一半有效一半无效先检查CSS有没有语法错误一个万无一失的办法是用VSCode打开CSS文件看有没有红色波浪线提示。还有一个我得专门提醒的细节CSS选择器的大小写。HTML的标签名和属性名不区分大小写但CSS里的类和ID是区分大小写的。你写的是.NavBarCSS里用的.navbar那根本匹配不上。这几乎是每个新手都踩过的坑。4.3 JavaScript不生效控制台也不报错这种情况最让人抓狂。代码没错文件也加载了但交互就是没有反应。我遇到过几次总结下来原因通常出在“事件绑定时机”。如果你把script标签放在head里浏览器遇到JavaScript会立即下载并执行但此时body里的内容还没有解析document.getElementById(mainBtn)找到的元素是null再对它addEventListener就报错了。解决方式我已经说过把script放到/body之后或者用DOMContentLoaded事件包一层document.addEventListener(DOMContentLoaded, function () { // 你的代码 });还有一种情况是JavaScript文件里有错误但Console里没显示。检查一下Live Server有没有把JS文件正确送到浏览器。在Network面板中看main.js是否被加载状态码是不是200。我曾经因为文件名大小写不同导致在Windows上开发正常、部署到Linux服务器后JS加载失败。Windows文件系统不区分大小写但Linux区分。所以规范的文件命名全小写加连字符不是洁癖而是跨平台部署的稳定性要求。4.4 排查问题的方法论二分法在多次教学和实战中我总结了一个排查前端问题的核心方法论叫“二分法”。不管遇到什么诡异问题都套用这个流程先确认问题属于哪个层级结构HTML、样式CSS还是逻辑JS。怎么区分看问题现象。结构问题通常是页面缺东西样式问题通常是东西在但不好看逻辑问题是页面结构和样式都对但动不起来。然后从中间切一刀比如样式问题先看是全局样式的问题还是局部样式的问题。在DevTools里临时删掉某条CSS规则看看问题是否消失。如果消失就一步步缩小范围最终定位到那一条规则。逻辑问题也一样在可疑的JS代码前面加console.log输日志看执行到哪一步断了。每加一个日志就排除一半的可能最多加五次日志基本就能锁定问题根因。这个方法看起来很笨但绝对靠谱。很多看起来很难的问题用二分法拆解之后就变得很简单。这也是我把DevTools当宝贝的原因——它就是做二分法的最好工具。4.5 一个提升效率的调试习惯最后分享一个我个人的习惯。我每次写前端页面都会保持DevTools处于打开状态而且固定在屏幕右侧。不是用到才打开而是开编辑器在左、浏览器在右、DevTools贴在浏览器旁边。这样写完代码切过来一眼就能看到Console有没有报错Network有没有红色请求。很多问题在出现的瞬间就能被捕获不用等用户来发Bug报告。还有一个技巧在Console面板的右上角有一个“齿轮”图标点进去可以设置“Preserve log”。这个选项的意思是页面刷新时不清空Console日志。如果你需要定位“某个操作之后页面刷新了导致问题一闪而过”的情况这个开关非常有用。5. 页面优化与易用性细节5.1 初版网页常见的不专业之处写完基础版只是第一步距离“能发布”还有一段路要走。我见过太多初学者页面功能都实现了但一眼看上去就很“土”。这种“土气”的根源往往不是配色不行而是细节缺失。最常见的细节问题是没有设置页面标题的Favicon网站图标。浏览器标签页上那个小小的图标虽然不起眼但直接影响专业感。给index.html加一行link relicon hreffavicon.ico typeimage/x-icon没有的话浏览器会发出一个404请求因为找不到favicon虽然不影响功能但打开Network面板会看到一条红色错误不专业。另一个常见问题是没有做“空状态”设计。比如我们的项目卡片只有两三个如果未来文章多了用户滚动页面时会看到一片空白没有任何提示。更规范的设计是加一个“加载更多”按钮或者当数据为空时显示“暂无项目”。还有访问性Accessibility问题。很多初学者给按钮只写文字不写aria-label给图片只写src不写alt属性。这对普通用户没影响但对视障用户、对SEO都不友好。搜索引擎爬虫没法“看”图片它读的是alt文字。所以alt不仅是无障碍要求也是SEO的一部分。5.2 响应式细节不同尺寸适配我们的项目里已经用了grid-template-columns: repeat(auto-fit, minmax(260px, 1fr))这保证了卡片能自动换行。但还有几个元素需要专门适配导航栏在小屏幕上gap: 24px可能会让链接挤成一团。建议加上一个媒体查询在小屏幕上把导航栏改成纵向排列或加上汉堡菜单简化版。按钮在手机上按钮的padding: 12px 32px可能偏小手指点击有难度。建议在媒体查询里加大。标题字号font-size: 48px在手机上偏大建议改成36px左右。可以用一个简单的媒体查询示例media (max-width: 600px) { .hero h1 { font-size: 32px; } .navbar { flex-direction: column; gap: 8px; padding: 12px 16px; } .nav-links { gap: 16px; } }这种“移动端优先改起来更自然”还是“桌面端优先改起来更自然”取决于项目定位。但不管哪种方式媒体查询都必不可少。现在的网页前端开发响应式不是加分项是及格线。5.3 页面性能优化的初步实践性能优化是个大话题这里只讲初版页面最值得做的几件事。第一压缩图片。如果你在页面里放了一张2MB的图片不管代码写得多优雅页面加载都会慢。工具推荐用TinyPNG或者直接在VSCode里装“Image Optimizer”插件保存时自动压缩。图片格式上照片用JPG或WebP图形和图标用SVG简单背景用PNG或WebP这些选型直接影响体积。第二利用浏览器缓存。在HTML里引用CSS和JS时可以给文件加上“哈希参数”像style.css?v1.2这样。当文件内容变化时手动改这个版本号浏览器就会下载新版本而不是用旧缓存。这虽然是个土办法但对小型项目非常有效能避免用户看到“改了没更新”的尴尬情况。第三减少DOM节点数量。不要过度嵌套div。每一层嵌套都会增加浏览器构建DOM时的工作量节点数量一旦达到几千个页面交互就会明显变卡。用DevTools的Performance面板可以录制一段交互查看FPS帧率是否低于60如果低于大概率是DOM节点太多或样式频繁重排。我的个人标准是个人博客这类页面DOM节点控制在300个以内是比较理想的。如果超过1000个就要认真思考是不是可以做组件化拆分了。6. 实战中积累的经验与建议6.1 关于工具链的地理空间直觉用Live Server开发时你打开的地址通常是127.0.0.1:5500。127.0.0.1叫回环地址本质上就是“你自己这台电脑”的地址。前端开发调试时这个地址是你的朋友。但如果哪天你发现其他设备比如手机打不开你本地起的服务原因是它访问不到你的电脑IP这时要用ipconfigWindows或ifconfigMac/Linux查到你的局域网IP让手机访问http://你的局域网IP:5500。手机和电脑连同一个WiFi才能访问。我还想建议你做一件事把Live Server的默认端口改成固定值比如8080。这样你记住一个固定入口省得每次启动都留意端口有没有变。在VSCode设置里搜索liveServer.settings.port改成8080一步到位。这个小改动一天能帮你省下十几秒十年下来省下的时间都够读好几本书了。6.2 如何让VSCode成为真正的编辑器默认VSCode写HTML每次换行都要手动敲Tab缩进很繁琐。我强烈推荐你花几分钟配置“Emmet”语法。VSCode内置了Emmet不需要装插件。它的规则很简单输入ul.nav-linksli*3a按Tab键自动展开成ul classnav-links lia href/a/li lia href/a/li lia href/a/li /ul这个语法基于CSS选择器你只要懂CSS就能快速写出HTML结构。前面说的表示“子元素”*3表示“重复三次”.类名表示“class属性”。熟练之后写一个完整的页面结构只需要十几秒。另外建议在VSCode里安装“Auto Rename Tag”插件。在HTML里修改标签名时它能自动把配对的闭合标签同步改掉。比如把div改成section闭合的/div也自动变/section节省的时间虽然不多但能避免忘记改闭合标签导致的嵌套错误尤其新手很容易漏掉这一步。6.3 下一步学习的规划建议完成这期内容后你已经有能力“看懂”网页代码构成了下一步有三条路线可以走。第一条路线是深化CSS布局能力学习Flexbox和Grid的各种实战技巧。市面上90%的布局难题都可以用这两个工具解决学透它们之后做出来的页面基本不会丑。第二条路线是接触一个前端构建工具比如Vite。它能让你用模块化的方式组织JavaScript还能自动处理CSS兼容性、压缩代码、热更新等事情。Vite的出现让前端开发体验有了极大的提升启动速度比旧一代工具快一个数量级。第三条路线是学习版本控制工具Git。前端开发几乎没有不依赖Git协作的你可以把Git理解成“代码的时间机器”它能记录每次修改回退到任意历史版本也能让多个开发者同时工作而不互相干扰。不会Git的前端和不会保存文档的办公人员一样危险。我的建议是不要急着全部学先把这期内容里的代码反复敲几遍尤其要把“View Source”和“DevTools”这套操作形成肌肉记忆。等闭着眼睛都能打开DevTools并找到对应元素的时候再开始学布局和工具链你会发现自己上手的速度快得多。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进