CSS伪类选择器全解析:从基础概念到实战应用
1. 伪类选择器CSS的“智能触发器”如果你写过CSS那你肯定用过选择器。.class、#id、div、p这些都是最基础的它们像是一个个地址标签告诉浏览器“嘿把这个样式应用到那个元素上”。但有时候我们需要的不是给一个静态的元素上色而是想根据元素的状态、位置甚至是用户的行为来动态地改变样式。比如鼠标悬停时按钮变色访问过的链接显示不同颜色或者表格的奇数行有个背景色。这时候基础选择器就有点力不从心了。伪类选择器就是CSS为了解决这类“动态”或“条件”样式问题而生的“智能触发器”。它不是基于HTML文档中静态存在的class或id而是基于元素在特定时刻所处的状态、在文档树中的结构位置或者与用户交互的情况来应用样式。你可以把它理解为一个附加在基础选择器后面的“状态描述符”用单个冒号:来连接。举个例子a:hover这个选择器它选中的不是所有a标签而是正处于鼠标悬停状态的那个a标签。这个“悬停”状态是动态的、临时的伪类选择器让我们有能力捕捉并响应这个瞬间。为什么说这篇就够了因为伪类选择器虽然数量不少但核心逻辑清晰一旦理解了分类和每个分类下的典型代表剩下的就是查手册和应用的问题。本文将不按字母顺序罗列而是根据其核心用途将它们分为四大类用户交互伪类、结构伪类、表单状态伪类和其他功能性伪类。我们会深入每一类的典型场景解释其工作原理并穿插大量实际代码示例和只有踩过坑才知道的注意事项。2. 用户交互伪类响应用户的每一个动作这是最常用、最直观的一类伪类。它们直接与用户的鼠标、键盘等交互行为挂钩是提升网页体验的关键。2.1:hover- 悬停的魔法:hover可能是所有开发者第一个接触的伪类。当用户的指针通常是鼠标悬停在一个元素上时该元素就会匹配这个伪类。.button { background-color: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; transition: background-color 0.3s ease; /* 平滑过渡 */ } .button:hover { background-color: #0056b3; cursor: pointer; /* 改变光标为手型强烈建议加上 */ }核心要点与避坑并非所有设备都有“悬停”在触摸屏设备手机、平板上没有真正的“悬停”状态。:hover效果通常会在用户首次触摸点击元素时被触发并可能一直保持到用户触摸其他地方。这可能导致一些意外的样式残留。因此不能将关键功能如显示重要信息完全依赖于:hover通常需要配合点击事件或其他方式。性能考虑过于复杂的:hover动画如大面积阴影变化、模糊滤镜在低性能设备上可能导致卡顿。使用transform和opacity属性进行动画通常性能更好。与:focus的区分对于可交互元素如按钮、链接除了:hover务必也要设置:focus样式以保证键盘用户的体验。2.2:active- 激活的瞬间:active匹配的是元素被激活的瞬间。对于鼠标用户来说就是鼠标按键被按下但还未松开的那一刻。.button:active { transform: translateY(2px); /* 模拟被按下的效果 */ box-shadow: 0 1px 2px rgba(0,0,0,0.2); }这个状态非常短暂但用来制造点击的物理反馈感非常有效能让交互感觉更真实。2.3:focus、:focus-within与:focus-visible- 焦点的艺术焦点管理是Web可访问性的基石对于键盘导航用户至关重要。:focus匹配当前获得焦点的元素。通常是用户用Tab键切换到的元素或者通过点击对于某些元素激活的元素。input:focus { outline: 2px solid #4d90fe; /* 自定义焦点轮廓比默认的outline更好看 */ border-color: #4d90fe; }注意很多人会用outline: none;来去掉浏览器默认的焦点环这是极其错误的做法会严重损害可访问性。正确做法是像上面一样用更美观的自定义样式替换它。:focus-within这个伪类非常强大。它匹配自身获得焦点或者其任意后代元素获得焦点的元素。这在表单组或复杂组件中特别有用。.form-group:focus-within { border-left: 4px solid #4d90fe; padding-left: 10px; }当.form-group内的任何一个input获得焦点时整个.form-group的样式都会改变视觉上清晰地提示用户当前的操作区域。:focus-visible这是一个较新的伪类用于解决一个常见问题当用鼠标点击一个按钮时我们通常不希望出现焦点环:focus样式但用键盘Tab到它时我们又需要。:focus-visible只会在浏览器认为需要显示焦点指示器时例如键盘操作才匹配。/* 只在键盘焦点时显示样式 */ .button:focus-visible { outline: 3px dashed #ff6b6b; } /* 传统的:focus样式可能被鼠标点击触发 */ .button:focus { outline: none; /* 可以在这里禁用由:focus-visible接管 */ }这让我们能更精细地控制焦点样式的展示逻辑提升整体体验。3. 结构伪类基于DOM位置的精准选择这类伪类根据元素在其父元素所有子元素列表中的位置索引来进行选择。它们就像CSS版的querySelectorAll加上数组索引。3.1:first-child、:last-child、:only-child这几个最好理解:first-child匹配作为其父元素的第一个子元素的元素。:last-child匹配作为其父元素的最后一个子元素的元素。:only-child匹配作为其父元素唯一一个子元素的元素。/* 给列表的第一项和最后一项特殊样式 */ .list-item:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; } .list-item:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; border-bottom: none; /* 去掉最后一个项目的底边线 */ } /* 只有一个子元素的容器让子元素居中 */ .container:only-child { display: flex; justify-content: center; align-items: center; }3.2:nth-child()与:nth-last-child()- 序列选择大师这是结构伪类中最强大、最常用的两个。:nth-child(anb)从前往后数匹配符合公式anb的所有子元素。:nth-child(odd)/:nth-child(even)奇/偶数行。:nth-child(3n)每第3个元素3, 6, 9...。:nth-child(3n1)从第1个开始每第3个1, 4, 7...。:nth-last-child(anb)同理但是从后往前数。/* 斑马纹表格 */ tr:nth-child(even) { background-color: #f8f9fa; } /* 每行显示3个项目的网格去除每行最后一个的右边距 */ .grid-item:nth-child(3n) { margin-right: 0; } /* 匹配倒数第2个子元素 */ .item:nth-last-child(2) { color: red; }重大踩坑点:nth-child的计数是基于所有子元素的。看这个例子div classcontainer p我是一个段落/p span我是一个span/span p我是另一个段落/p /div.container p:nth-child(2) { color: red; }你觉得第二个p会变红吗答案是不会。因为:nth-child(2)选择的是父元素下第二个子元素不管它的类型。在这个例子中第二个子元素是span而我们的选择器要求它同时是p所以不匹配。如果你想选择“同级p元素中的第二个”应该使用:nth-of-type()。3.3:nth-of-type()与:nth-last-of-type()这两个伪类解决了上述的坑。它们只计数特定类型的子元素。:nth-of-type(anb)匹配作为其父元素下第anb个该类型子元素的元素。:nth-last-of-type(anb)从后往前数。用回刚才的例子.container p:nth-of-type(2) { color: red; /* 这下成功了选中了第二个p元素 */ }所以简单记如果你想根据在所有子元素中的位置来选用:nth-child如果你想根据在同类型元素中的位置来选用:nth-of-type。3.4:not()- 反选利器虽然严格来说:not()是一个伪类函数但它常与结构伪类配合用于排除某些元素。/* 选中除了第一个和最后一个以外的所有 .item */ .item:not(:first-child):not(:last-child) { padding: 10px 0; border-bottom: 1px solid #eee; } /* 选中所有不是 disabled 状态的按钮 */ button:not(:disabled) { cursor: pointer; }:not()的选择器参数可以很复杂但要注意浏览器支持度和性能过于复杂的选择器可能会影响渲染速度。4. 表单状态伪类让表单“活”起来专门用于匹配表单元素在不同输入和状态下的样式对于构建友好的表单界面必不可少。4.1:checked- 选中状态匹配被选中的单选按钮input type”radio”、复选框input type”checkbox”或option元素。这是实现自定义开关、复选框样式的核心。input type”checkbox” id”toggle” hidden label for”toggle” class”custom-checkbox”点击我/label.custom-checkbox { display: inline-block; width: 40px; height: 20px; background-color: #ccc; border-radius: 10px; position: relative; cursor: pointer; transition: background-color 0.3s; } /* 利用相邻兄弟选择器 和 :checked 实现样式切换 */ #toggle:checked .custom-checkbox { background-color: #4CAF50; } #toggle:checked .custom-checkbox::after { left: calc(100% - 18px); /* 滑动小球的位置 */ }这个技巧是纯CSS实现UI组件的基石。4.2:disabled与:enabled:disabled匹配任何被禁用的元素拥有disabled属性。:enabled匹配任何启用的元素默认状态。input:disabled { background-color: #e9ecef; cursor: not-allowed; opacity: 0.6; }给禁用状态一个视觉上的弱化反馈是良好的设计实践。4.3:required与:optional:required匹配拥有required属性的表单元素。:optional匹配没有required属性的表单元素。input:required { border-left: 4px solid #ffc107; /* 用黄色提示必填 */ }可以在用户提交前就给予视觉提示。4.4:valid与:invalid根据表单元素的内容是否符合其类型type或模式pattern定义的验证规则来匹配。:valid匹配内容验证通过的元素。:invalid匹配内容验证失败的元素。input:invalid { border-color: #dc3545; background-image: url(‘invalid-icon.png’); background-repeat: no-repeat; background-position: right center; } input:valid { border-color: #28a745; }重要提示为了避免页面一加载就给所有空但必填的输入框显示错误红色因为空值对required字段是无效的一个常见的技巧是将:invalid样式与:focus或用户交互结合。例如可以只在输入框被触摸过touched后才应用:invalid样式但这通常需要一点JavaScript配合。纯CSS下可以这样缓和input:not(:focus):not(:placeholder-shown):invalid { border-color: #dc3545; }这个选择器表示匹配那些未获得焦点、值不是空:not(:placeholder-shown)是一个巧妙的判断非空方法且验证无效的输入框。这样空输入框在初始状态下就不会显示错误了。4.5:in-range与:out-of-range专用于input type”number”或input type”range”等有min和max属性的元素根据值是否在设定范围内来匹配。4.6:read-only与:read-write:read-only匹配readonly属性设置的元素用户不能编辑但可以选中和复制文本。:read-write匹配用户可编辑的元素默认状态。5. 其他功能性伪类与组合应用除了上述三大类还有一些实用的伪类。5.1 链接相关:link、:visited:link匹配所有未被访问过的链接拥有href属性的a。:visited匹配所有已被访问过的链接。a:link { color: #1a0dab; /* 经典的未访问蓝色 */ } a:visited { color: #681da8; /* 访问过的紫色 */ }隐私限制出于安全隐私考虑现代浏览器对:visited伪类可应用的样式做了严格限制通常只允许修改color、background-color、border-color等颜色相关属性且必须是同一种属性比如不能给未访问的设color给访问过的设background-color。且通过JavaScript无法获取到元素是否应用了:visited样式以防止通过脚本探测用户浏览历史。5.2:target- URL片段标识符匹配当前URL的片段标识符即#后面的部分所指向的元素。常用来实现纯CSS的标签页、折叠面板、高亮文档章节等功能。a href”#section1”跳转到第一节/a section id”section1” h2第一节/h2 p内容…/p /sectionsection { border-left: 4px solid transparent; padding-left: 10px; transition: border-color 0.3s; } section:target { border-left-color: #4d90fe; /* 当URL是 #section1 时这个section高亮 */ background-color: #f8f9fa; }5.3 伪类的组合与优先级伪类可以组合使用以实现更精确的选择。/* 鼠标悬停在一个未访问的链接上 */ a:link:hover { text-decoration: underline; } /* 表格中奇数行且鼠标悬停时的样式 */ tr:nth-child(odd):hover { background-color: #e3f2fd; } /* 被选中且未禁用的复选框 */ input[type”checkbox”]:checked:not(:disabled) { /* 样式 */ }关于优先级特异性伪类选择器的权重等同于一个类选择器.class。所以a:hover的权重和.my-link是一样的。当多个规则冲突时需要根据CSS优先级规则内联样式 ID 类/伪类/属性 元素来计算。组合使用伪类并不会无限增加权重但多个类级选择器叠加其权重会高于单个类。6. 实战用伪类构建一个交互式卡片组件让我们综合运用多种伪类构建一个常见的卡片组件它具备悬停效果、内部结构样式和按钮交互反馈。div class”card” img src”thumbnail.jpg” alt”示例图片” class”card__img” div class”card__content” h3 class”card__title”这是一个卡片标题/h3 p class”card__desc”这里是卡片的描述内容可能会比较长会显示多行文字。/p div class”card__actions” a href”#” class”card__btn card__btn–primary”主要操作/a button class”card__btn”次要操作/button /div /div /div.card { border: 1px solid #ddd; border-radius: 12px; overflow: hidden; /* 防止图片圆角溢出 */ background: white; transition: transform 0.3s ease, box-shadow 0.3s ease; max-width: 320px; } /* 1. 悬停时提升卡片 */ .card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); } /* 2. 卡片内图片悬停缩放效果 */ .card__img { width: 100%; height: 180px; object-fit: cover; transition: transform 0.5s ease; } .card:hover .card__img { transform: scale(1.05); } .card__content { padding: 20px; } .card__title { margin-top: 0; margin-bottom: 10px; color: #333; } .card__desc { color: #666; line-height: 1.6; margin-bottom: 20px; } .card__actions { display: flex; gap: 10px; /* 使用gap属性设置按钮间距 */ } .card__btn { padding: 8px 16px; border: 1px solid #ccc; background: #f8f9fa; border-radius: 6px; cursor: pointer; text-decoration: none; color: #333; font-size: 14px; transition: all 0.2s ease; flex: 1; /* 按钮平均分配宽度 */ text-align: center; } /* 3. 按钮悬停和激活状态 */ .card__btn:hover { background-color: #e9ecef; border-color: #adb5bd; } .card__btn:active { transform: scale(0.98); /* 按下效果 */ } .card__btn:focus { outline: 2px solid #4d90fe; outline-offset: 2px; } /* 4. 主要按钮的特殊样式 */ .card__btn–primary { background-color: #007bff; border-color: #007bff; color: white; } .card__btn–primary:hover { background-color: #0056b3; border-color: #0056b3; } /* 5. 禁用状态的按钮 */ .card__btn:disabled { opacity: 0.5; cursor: not-allowed; } /* 6. 使用:not()和:last-child优化边距 */ .card__desc:not(:last-child) { margin-bottom: 20px; /* 只有当描述不是最后一项时才设置下边距 */ } /* 或者使用:last-child移除最后一个按钮的右边距如果不用gap */ /* .card__btn:not(:last-child) { margin-right: 10px; } */在这个例子中我们综合运用了:hover实现卡片整体和图片的悬停交互。:active给按钮添加点击反馈。:focus确保按钮的键盘可访问性。:disabled处理按钮禁用状态。:not()和:last-child进行更精细的间距控制避免了使用通用兄弟选择器可能带来的冗余代码。7. 性能考量与最佳实践虽然伪类选择器非常强大但不当使用也可能带来问题。保持选择器简洁过于复杂、冗长的选择器链例如.nav ul li:first-child a:hover会增加浏览器的匹配计算成本。尽量让选择器扁平化如果某个元素需要复杂选择考虑直接给它添加一个类名。避免通用选择器*与伪类的过度组合像*:hover这样的选择器会匹配页面上的每一个元素性能极差。理解渲染与重绘某些伪类样式如:hover改变盒模型属性width/height、box-shadow扩散会触发页面布局Layout和绘制Paint。而改变transform和opacity通常只触发合成Composite性能开销小得多。在制作动画时应优先考虑后者。移动端优先考虑如前所述:hover在触摸设备上的行为是“模拟”的。设计关键交互时如下拉菜单不能只依赖:hover需要结合:focus、active甚至用一点JavaScript来确保在所有设备上都能正常工作。常见的模式是在移动端使用点击touchstart/click来切换一个.active类用CSS来控制显示隐藏。渐进增强对于较新的伪类如:focus-visible、:where()在使用时应考虑回退方案。例如同时编写:focus和:focus-visible的样式让不支持新特性的浏览器至少有一个可用的焦点样式。伪类选择器是CSS从“描述静态样式”走向“定义交互逻辑”的关键一步。它让样式表具备了初步的“感知”和“响应”能力。掌握它们意味着你能用更简洁、更语义化的方式实现更丰富、更动态的视觉效果和用户体验而无需事事依赖JavaScript。从最常用的:hover、:nth-child开始逐步将:focus-within、:not()、:checked等纳入你的工具箱你的CSS代码会变得更加灵活和强大。记住多写、多试、多思考“如果…就…”的场景是掌握伪类选择器的最佳途径。

相关新闻

Pot-Desktop:一款翻译软件如何让跨语言工作变得如此简单?

Pot-Desktop:一款翻译软件如何让跨语言工作变得如此简单?

Pot-Desktop:一款翻译软件如何让跨语言工作变得如此简单? 【免费下载链接】pot-desktop 🌈一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognition. 项目地址: https://gitcode.com/GitHub_Tren…

2026/8/6 23:49:14 阅读更多 →
实战指南:如何用机器学习构建智能量化交易系统

实战指南:如何用机器学习构建智能量化交易系统

实战指南:如何用机器学习构建智能量化交易系统 【免费下载链接】Hands-On-Machine-Learning-for-Algorithmic-Trading Hands-On Machine Learning for Algorithmic Trading, published by Packt 项目地址: https://gitcode.com/gh_mirrors/ha/Hands-On-Machine-Le…

2026/8/6 23:49:14 阅读更多 →
3步实现跨平台消息推送:PushDeer开源推送服务终极指南

3步实现跨平台消息推送:PushDeer开源推送服务终极指南

3步实现跨平台消息推送:PushDeer开源推送服务终极指南 【免费下载链接】pushdeer 开放源码的无App推送服务,iOS14扫码即用。亦支持快应用/iOS和Mac客户端、Android客户端、自制设备 项目地址: https://gitcode.com/gh_mirrors/pu/pushdeer 想要在…

2026/8/6 23:49:14 阅读更多 →

最新新闻

搞不懂 Claude Code、Skills、MCP、Plugin?这篇文章一次性讲清楚

搞不懂 Claude Code、Skills、MCP、Plugin?这篇文章一次性讲清楚

1. 引言:为什么这些概念让人头大很多刚接触 Claude Code 的朋友,都会被 Skills、MCP、Plugin 这几个词绕晕。它们听起来很像,似乎都在做「给 AI 加能力」这件事,但实际定位、使用方式和适用场景完全不同。这篇文章会用最直白的方式…

2026/8/7 0:39:37 阅读更多 →
AI Agent Skill 高阶使用指南:从入门到精通

AI Agent Skill 高阶使用指南:从入门到精通

1. 引言:为什么需要掌握 AI Agent Skill随着大语言模型能力的持续提升,AI Agent 已经从简单的对话机器人演变为能够自主规划、调用工具、执行复杂任务的智能体。而 Skill(技能)正是赋予 Agent 领域能力的关键机制。本文将从基础概…

2026/8/7 0:39:37 阅读更多 →
阿里Qwen出手:Skill-RM把奖励模型做成可复用Agent Skill

阿里Qwen出手:Skill-RM把奖励模型做成可复用Agent Skill

一句话讲清楚👉🏻 阿里巴巴 Qwen 团队提出 Skill-RM ,把异构的奖励评估标准( rubric 、参考答案、 checklist 、 verifier 等)封装成可执行的 Reward-Evaluation Skill ,让 Agent 按需检索资源、收集证据并…

2026/8/7 0:39:37 阅读更多 →
长沙3合1网站建设如何助力中小企业低成本实现数字化转型与高效获客全攻略

长沙3合1网站建设如何助力中小企业低成本实现数字化转型与高效获客全攻略

在这个移动互联网飞速迭代的时代,对于咱们长沙的中小企业主或者创业团队来说,最头疼的问题往往不是产品不够好,也不是服务不够硬,而是“酒香也怕巷子深”。以前大家觉得,开个店在繁华地段就好,只要人来了,生意自然少不了。但现在不一样了,大家的注意力都被手机屏幕截胡…

2026/8/7 0:38:37 阅读更多 →
Agent架构别再瞎搭了!6种通用设计模式,新手也能搭建生产级系统

Agent架构别再瞎搭了!6种通用设计模式,新手也能搭建生产级系统

上个月一个做智能客服的团队找我帮忙看架构;他们做了三个Agent——一个管订单查询、一个管退换货、一个管转人工,每个Agent独立开发、独立部署; 听着挺合理吧?结果用户问"查订单"的时候,Agent经常把"退…

2026/8/7 0:38:37 阅读更多 →
政务RAG系统上线72小时即通过等保2.0三级认证:从向量库选型到审计日志留痕的11项硬核配置

政务RAG系统上线72小时即通过等保2.0三级认证:从向量库选型到审计日志留痕的11项硬核配置

更多请点击: https://codechina.net 第一章:政务RAG系统等保2.0三级认证的里程碑意义 政务RAG(Retrieval-Augmented Generation)系统通过等保2.0三级认证,标志着其在安全合规性、数据可控性与服务可靠性方面达到国家关…

2026/8/7 0:38:37 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →