HTML5语义化标签实战指南:从基础概念到完整页面构建
1. 从“一锅炖”到“精装修”为什么我们需要语义化标签如果你是从HTML4甚至更早的XHTML时代过来的前端开发者或者你刚开始学习前端看到header、nav、aside这些标签可能会觉得有点多此一举。毕竟用div idheader、div idnav不也一样能实现页面布局吗浏览器照样能渲染样式也能正常应用。在很长一段时间里我们确实就是这么干的用一堆div配合CSS的class或id属性搭建起整个网页的骨架。我把这种模式称为“一锅炖”式开发——所有内容都丢进一个叫div的大锅里至于锅里具体是什么全靠开发者自己定义的class名来区分。但HTML5引入的这一系列语义化标签其意义远不止是给div换了个名字那么简单。它更像是对网页进行了一次“精装修”为每个功能区域贴上了明确的“标签”。这背后是Web技术从单纯的信息展示向结构化、可理解、可交互的数据载体演进的关键一步。最直接的受益者其实不是开发者而是那些“看不见的用户”搜索引擎的爬虫和屏幕阅读器等辅助技术。想象一下一个搜索引擎爬虫来到一个用纯div搭建的页面。它看到的是一个又一个的div盒子虽然通过classmain-content能猜出大概但class名是开发者自定义的缺乏统一标准。爬虫很难精确判断页面中哪部分是主导航哪部分是文章主体哪部分是版权信息。而语义化标签提供了这种标准。当爬虫看到一个nav标签它就能立刻明白“哦这里面的链接是网站的主要导航结构。” 看到一个main标签它就知道“这是页面的核心内容权重应该最高。” 这对于搜索引擎优化SEO至关重要能帮助你的内容获得更准确的索引和更好的排名。对于视障用户使用的屏幕阅读器语义化标签更是导航的“路标”。用户可以通过快捷键在header、nav、main等区域之间快速跳转高效地定位到自己关心的内容而不是在无数个没有语义的div中费力地摸索。这不仅是技术优化更是践行Web可访问性Accessibility的基本要求。所以使用HTML5语义化标签首先是一种对标准和最佳实践的遵循它让我们的代码对机器更友好从而间接地对所有用户更友好。其次它也让代码对人包括未来的你和其他协作者更友好。看到footer你就知道这里该放版权信息和联系方式而不是再去翻CSS文件查#footer里到底定义了啥。这是一种清晰、自解释的代码结构。2. 核心语义化标签详解角色、用法与实战边界理解了“为什么”我们再来深入看看“是什么”和“怎么用”。HTML5的语义化标签家族成员不少但最核心、使用频率最高的就是header、nav、aside、main、footer这几位。它们每一个都有明确的职责和典型的应用场景。2.1header不仅仅是页头header元素代表一组介绍性或导航性内容的容器。一个常见的误解是header只能用在页面顶部。实际上它可以出现在任何需要的地方。典型用法页面页头这是最常见的用法通常包含网站Logo、主标题和主导航。header h1我的技术博客/h1 nav.../nav /header文章/章节的头部article或section元素内部也可以有自己的header用于放置该部分的标题、作者、发布日期等元信息。article header h2深入理解CSS Flexbox/h2 p作者张三 | 发布日期2023-10-27/p /header p文章正文内容.../p /article关键注意事项header通常包含从h1到h6的标题元素但这不是强制要求。一个页面可以有多个header元素但通常不应嵌套使用也不应放在footer、address或另一个header内部。2.2nav导航链接的专属区域nav元素定义了一个包含导航链接的区块。注意不是所有链接组都需要用nav包裹它特指当前文档内或关联文档间的主要导航区块。典型用法网站主导航菜单包含指向网站主要板块如首页、产品、关于我们、博客的链接列表。nav ul lia href/首页/a/li lia href/products产品/a/li lia href/blog博客/a/li lia href/about关于/a/li /ul /nav文章目录长篇文章内部的锚点链接目录。侧边栏导航例如博客的分类目录、月度归档等。关键注意事项像页脚里的“服务条款”、“隐私政策”这类次要链接组通常不需要用nav用普通的div或footer内的列表即可。屏幕阅读器用户常使用快捷键快速定位到nav区域因此确保其内的链接结构清晰、有逻辑至关重要。2.3main内容的绝对核心main元素用于包裹网页的主要内容。这个内容应该是文档中独一无二、直接相关的核心部分。典型用法博客的文章正文。新闻网站的单篇报道。电商网站的商品详情信息。应用的中心功能界面。这是你必须遵守的黄金法则一个页面有且仅有一个main元素。main元素的内容应该是该页面独有的不应包含在全站范围内重复出现的内容如导航栏、侧边栏、页脚。它不应是article、aside、footer、header或nav元素的子元素。在实际布局中main通常是这样的结构body header.../header nav.../nav main h1页面主标题/h1 p这里是页面的核心、独特内容。/p article.../article /main aside.../aside footer.../footer /body2.4aside间接相关的补充内容aside元素表示与周围内容间接相关、可独立存在的一部分内容。你可以把它理解为正文的“旁注”或“侧栏”。典型用法侧边栏这是最经典的用法包含与文章相关的引用、链接列表如相关文章、广告、作者简介等。main article.../article /main aside section h3关于作者/h3 p张三资深前端工程师.../p /section section h3相关文章/h3 ul.../ul /section /aside文章内的补充说明在article内部aside可以用于标注、提示框或与内容主体略微脱节的解释。article pJavaScript是一种单线程语言...p aside pstrong注/strong Web Worker允许在后台线程运行脚本这并不改变JavaScript语言本身的单线程模型。/p /aside /article关键注意事项如果aside的内容与主内容关系非常紧密甚至是理解主内容所必需的那它可能就不适合放在aside里而应该整合进主内容。在视觉设计上aside常通过CSS设置为侧边栏样式但这并非其语义本质。2.5footer章节或页面的结尾footer元素代表最近一个章节内容或根元素的页脚。和header一样它也可以多次出现。典型用法页面页脚包含版权信息、联系方式、备案号、社交媒体链接等。footer pcopy; 2023 我的公司. 版权所有./p p联系我们: a hrefmailto:contactexample.comcontactexample.com/a/p nav a href/privacy隐私政策/a | a href/terms服务条款/a /nav /footer文章/章节的页脚在article或section内部可以放置文章的标签、上一篇/下一篇链接、评论数量等信息。article h2文章标题/h2 p正文.../p footer p标签: a href/tag/html5HTML5/a, a href/tag/semantic语义化/a/p pa href#comments查看评论 (42)/a/p /footer /article关键注意事项联系信息通常放在footer里但HTML5有更专门的address元素用于标记作者/所有者的联系信息address常被用在footer内部。页脚里的导航如“隐私政策”、“服务条款”通常范围较小不一定需要用nav包裹除非它构成了一个重要的导航区块。3. 构建一个完整的页面骨架从标签到布局了解了每个标签的个体特性后我们需要把它们组合起来形成一个有逻辑、有语义的完整页面结构。这是将理论转化为实践的关键一步。下面我们以一个典型的博客文章页面为例搭建其HTML5骨架。!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title深入解读HTML5语义化标签 - 我的技术博客/title link relstylesheet hrefstyles.css /head body !-- 整个网站的页头 -- header classsite-header div classlogo a href/img srclogo.png alt技术博客首页/a /div h1前端技术漫谈/h1 p classtagline分享Web开发中的点滴思考与实践/p !-- 网站主导航 -- nav classprimary-nav aria-label主要导航 ul lia href/ aria-currentpage首页/a/li lia href/archives归档/a/li lia href/categories分类/a/li lia href/about关于我/a/li lia href/rssRSS订阅/a/li /ul /nav /header !-- 为了布局我们用一个容器包裹主要内容区和侧边栏 -- div classcontainer !-- 页面的核心唯一内容 -- main classmain-content !-- 一篇文章 -- article classpost header classpost-header h2HTML5语义化标签的实战指南/h2 div classpost-meta time datetime2023-10-272023年10月27日/time • span作者a href/author/zhangsan张三/a/span • span阅读量 1,245/span /div /header div classpost-body p语义化HTML是构建现代、可访问网页的基石.../p !-- 更多文章内容 -- p...如上所述正确使用codelt;maingt;/code标签至关重要。/p !-- 文章内的一个旁注 -- aside classnote pstrong扩展阅读/strong W3C的HTML5规范文档提供了关于这些标签最权威的定义和使用场景。/p /aside p让我们继续看看codelt;footergt;/code的用法.../p /div !-- 文章的页脚 -- footer classpost-footer div classtags strong标签/strong a href/tag/html5 reltagHTML5/a, a href/tag/semantic-html reltag语义化HTML/a, a href/tag/accessibility reltag可访问性/a /div nav classpost-nav aria-label文章导航 a href/prev-post classprev上一篇CSS Grid布局入门/a a href/next-post classnext下一篇JavaScript闭包详解/a /nav section classcomments idcomments h3评论 (15)/h3 !-- 评论列表 -- /section /footer /article /main !-- 侧边栏与主内容相关但非必需 -- aside classsidebar section classwidget author-widget h3关于作者/h3 img srcavatar.jpg alt作者头像 classauthor-avatar p张三资深前端开发工程师专注于Web标准与用户体验。/p /section section classwidget related-posts h3相关文章/h3 ul lia href/post/css-grid掌握CSS Grid布局/a/li lia href/post/aria-introARIA属性入门指南/a/li /ul /section section classwidget newsletter h3订阅更新/h3 p订阅我们的新闻通讯获取最新技术文章。/p !-- 订阅表单 -- /section /aside /div !-- /.container -- !-- 整个网站的页脚 -- footer classsite-footer div classfooter-content pcopy; 2015-2023 前端技术漫谈. 保留所有权利./p nav classfooter-nav aria-label页脚导航 a href/privacy隐私政策/a | a href/terms服务条款/a | a href/sitemap网站地图/a /nav address 联系方式: a hrefmailto:contactexample.comcontactexample.com/a /address /div /footer script srcscript.js/script /body /html结构解析与实战要点清晰的层级关系body作为根容器内部直接包含header、div classcontainer、footer。这个div.container是一个纯粹的布局容器无语义用于包裹main和aside方便实现并排布局如通过Flexbox或Grid。main的唯一性整个页面中只有文章内容区域被包裹在main中这明确告诉了浏览器和辅助技术“这里是本页最重要的部分”。嵌套的语义注意article内部又包含了header和footer。这完全符合规范因为它们属于文章这个“章节”的页眉和页脚与网站级的header和footer处于不同层级。nav的aria-label当页面有多个导航区域时如主导航、文章导航、页脚导航使用aria-label属性为每个nav提供一个简短的描述能极大提升屏幕阅读器用户的体验。aside的位置侧边栏aside与main并列位于布局容器内。这表明它在结构上与主内容同级但在语义上是补充关系。这个结构不仅语义清晰也为CSS布局打下了完美的基础。你可以轻松地使用display: flex;或display: grid;在.container上实现响应式布局当屏幕变窄时将aside移动到main下方。4. 跨越理论与实践的鸿沟常见陷阱、兼容性与进阶实践在实际项目中仅仅知道标签的用法是不够的。从“知道”到“用好”中间还隔着许多细节和坑。这一部分我将结合自己多年的踩坑经验分享那些文档里不会写但实践中一定会遇到的问题。4.1 样式重置语义化标签的“默认皮肤”你可能兴致勃勃地写好了语义化结构一打开浏览器却发现header、footer等元素自带一些边距margin或内边距padding或者h1、h2的字体大小不符合你的设计稿。这是因为浏览器为这些元素提供了默认的“用户代理样式”。解决方案在CSS起始部分进行合理的样式重置Reset或标准化Normalize。我个人更倾向于使用“标准化”方案因为它更温和只统一不同浏览器间的差异而非粗暴清零。但无论如何你需要明确控制这些元素的盒模型。/* 一个简单的自定义重置示例 */ header, nav, main, aside, footer, article, section { display: block; /* 确保在旧IE中正确 */ } body, h1, h2, h3, p, ul, li { margin: 0; padding: 0; } /* 然后根据你的设计稿重新定义这些元素的样式 */ .site-header { background-color: #333; color: white; padding: 1rem 0; } .main-content { padding: 2rem; max-width: 800px; margin: 0 auto; }4.2 旧版浏览器IE的兼容性“魔术”HTML5语义化标签在IE9及以上版本中才能被识别并应用样式。对于需要支持IE8及以下版本的“古董”项目虽然现在越来越少这些标签默认是“未知元素”其display属性值会是inline导致布局失效。经典解决方案使用一段简单的JavaScript来“创建”这些元素让IE识别它们。这段代码通常被称为“HTML5 Shiv”或“HTML5 Enabling Script”。!--[if lt IE 9] script srchttps://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js/script ![endif]--更现代的做法是将其集成到构建工具如Webpack、Parcel的Polyfill策略中。但核心原理不变通过document.createElement(header)等代码提前告诉IE这些元素的存在。注意这个脚本只解决了“样式应用”的问题。IE8等浏览器对这些标签的语义化如大纲算法、无障碍特性依然不支持。在当今2023年及以后的Web开发中除非有极其特殊的遗留系统需求否则完全可以不考虑对IE的兼容将开发精力集中在现代标准上。4.3 语义的过度使用与滥用语义化是好事但过度使用或错误使用会适得其反。陷阱一把section当万能div用。section是一个分节元素代表文档或应用中的一个通用章节通常应该带有一个标题h1-h6。如果你只是需要一个样式容器用div更合适。!-- 不推荐没有标题的section -- section classhero-banner p欢迎来到我们的网站/p /section !-- 推荐使用div -- div classhero-banner p欢迎来到我们的网站/p /div !-- 推荐有明确主题的section -- section h2我们的服务/h2 p我们提供以下服务.../p /section陷阱二在main里放不该放的东西。记住main是独一无二的核心内容。全站通用的侧边栏即使它包含搜索框、页脚信息都不应放在main里面。它们应该与main并列。陷阱三嵌套顺序混乱。虽然规范没有严格禁止所有嵌套但有些嵌套在逻辑上是说不通的。例如header里通常不放footerfooter里也不应包含另一个footer或header。保持清晰的父子关系。4.4 结合ARIA提升可访问性语义化标签已经提供了基础的语义但对于复杂的交互组件如自定义的下拉菜单、标签页、模态框仅靠HTML5标签可能不足以向辅助技术完整描述其状态和行为。这时就需要WAI-ARIAWeb Accessibility Initiative - Accessible Rich Internet Applications来补充。ARIA通过role、aria-*等属性为元素添加额外的语义信息。但请牢记一个首要原则优先使用原生HTML语义元素。只有在原生元素无法满足语义需求时才使用ARIA。例如一个用div和button模拟的自定义复选框!-- 没有ARIA屏幕阅读器无法理解这是一个复选框 -- div classcustom-checkbox onclicktoggleCheckbox() div classcheckbox-icon/div span同意条款/span /div !-- 使用ARIA补充语义 -- div classcustom-checkbox rolecheckbox aria-checkedfalse tabindex0 onclicktoggleCheckbox(this) onkeypresshandleKeyPress(event, this) div classcheckbox-icon aria-hiddentrue/div span同意条款/span /div在上面的改进版本中rolecheckbox告诉辅助技术这是一个复选框aria-checked表示其选中状态tabindex0使其可通过键盘聚焦。同时我们用aria-hiddentrue隐藏了纯装饰性的图标避免干扰阅读。对于我们已经使用的语义化标签有时也需要ARIA来明确其用途尤其是在有多个同类区域时。前面例子中为nav添加aria-label就是很好的实践。4.5 工具与验证确保语义的正确性如何检查自己写的HTML语义是否正确呢除了肉眼审查还有几个好用的工具浏览器开发者工具现代浏览器的Elements面板可以显示可访问性树Accessibility Tree。在Chrome中你可以在Elements面板右侧选择“Accessibility”标签页查看浏览器是如何解析你的页面语义的。这能直观地看到屏幕阅读器会“听到”什么。LighthouseChrome DevTools内置的Lighthouse工具在“Accessibility”审计项中会检查语义化标签的使用如是否缺少lang属性、图片是否缺少alt文本、颜色对比度等并给出改进建议。W3C Nu HTML Checker这是一个在线的HTML验证器。将你的代码或网页URL贴进去它会严格按照规范检查语法和语义问题是检验代码质量的终极标准。屏幕阅读器实测最直接的方法就是打开操作系统自带的屏幕阅读器如Windows的NVDA或NarratormacOS的VoiceOver亲自体验一下你的网页。这是发现可访问性问题的金标准。从我个人的经验来看语义化HTML的实践是一个从“形似”到“神似”的过程。初期你可能会机械地套用标签。但随着对可访问性、SEO和代码可维护性理解的加深你会开始从信息结构和用户包括非视觉用户的角度来思考标签的选择。这时写出的HTML代码就不再仅仅是给浏览器看的指令而是一份结构清晰、自解释的数据文档。这种思维方式的转变是前端工程师走向成熟的一个重要标志。

相关新闻

基于Android的在线问诊APP的设计与实现

基于Android的在线问诊APP的设计与实现

1. 项目背景与意义随着移动互联网技术的飞速发展和人们对健康管理需求的日益增长,传统线下医疗模式在便捷性、时效性和资源分配上面临挑战。基于Android的在线问诊APP应运而生,它打破了时间和空间的限制,让用户能够随时随地通过手机与医生进行…

2026/10/14 14:47:02 阅读更多 →
Redis安装部署全攻略:从环境变量到系统服务配置详解

Redis安装部署全攻略:从环境变量到系统服务配置详解

1. 从零到一:为什么你的Redis安装总是不对劲? 最近在帮几个新同事搭开发环境,发现一个挺有意思的现象:几乎每个人在安装Redis时都会遇到点小麻烦。不是启动报错,就是客户端连不上,再不然就是重启电脑后Redi…

2026/10/14 10:59:08 阅读更多 →
我用QQ空间导出工具,把十二年的在线记录一键搬回了本地硬盘

我用QQ空间导出工具,把十二年的在线记录一键搬回了本地硬盘

我用QQ空间导出工具,把十二年的在线记录一键搬回了本地硬盘 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目地址: ht…

2026/10/8 21:35:46 阅读更多 →

最新新闻

MiniMind:两小时3元成本从零训练64M参数中文大模型

MiniMind:两小时3元成本从零训练64M参数中文大模型

我第一次看到 MiniMind 这个项目时,第一反应是:3块钱、2小时、64M参数、从零训练大语言模型?这四个词摆在一起,怎么看都像标题党。但真正把项目思路拆开跑完一遍之后,我得说,这个项目的价值不在于那 64M 参…

2026/10/14 23:30:13 阅读更多 →
边反转题别再套分层图!拆边法+Dijkstra一举拿下

边反转题别再套分层图!拆边法+Dijkstra一举拿下

在刷图论题的时候,“边反转”三个字一出现,我第一反应是上分层图、加状态、搞一个二维 dist。结果做完这道编号 3650 的中等题才发现,它真正考的东西其实是建模直觉:把“反转”这件事预计算进边权里,一次普通 Dijkstra…

2026/10/14 23:30:13 阅读更多 →
WeKnora知识库部署实战:从源码包到可用系统的完整指南

WeKnora知识库部署实战:从源码包到可用系统的完整指南

简介:这套源码包专为希望本地部署知识库系统的开发者和 RAG 技术学习者打造,定位为 WeKnora 部署的轻量参考工程。内容覆盖腾讯开源 WeKnora 的部署配置源码,集中呈现环境变量、大语言模型、Embedding、Rerank 等模型接入方式,同时…

2026/10/14 23:30:13 阅读更多 →
回溯算法入门:从全排列到N皇后的完整思维框架

回溯算法入门:从全排列到N皇后的完整思维框架

第一次见到回溯题的时候,我整整一个下午没缓过来。题目是全排列,第一反应是三层循环套上去,结果输入一变长的就崩了;后来知道标准做法只用递归,满打满算十几行代码。奇怪的是,代码我可以默写出来&#xff0…

2026/10/14 23:30:13 阅读更多 →
12B小模型Agent Skill框架:技能选择准确率逼近90%,算力成本降低50%

12B小模型Agent Skill框架:技能选择准确率逼近90%,算力成本降低50%

1. 小模型的大野心:为什么要在12B参数上死磕Agent Skill框架大模型动辄千亿参数,推理一次的电费够买一杯咖啡,这已经成了很多团队落地智能体时最头疼的事。但真实业务场景里,不是每个任务都需要一个“全能学霸”来回答。大量场景—…

2026/10/14 23:30:13 阅读更多 →
聊天机器人如何实现新闻传播全链条再造:从选题到分发的对话式智能体实践

聊天机器人如何实现新闻传播全链条再造:从选题到分发的对话式智能体实践

1. 从标题拆解这个项目的核心命题1.1 这个标题到底在说什么“聊天机器人与新闻传播的全链条再造”,这个标题我第一次看到的时候,脑子里蹦出来的第一个念头是:终于有人把这件事从“工具层”往“流程层”去想了。市面上大多数讨论还停留在“用A…

2026/10/14 23:29:06 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →