CSS结构伪类选择器深度解析::nth-child、:first-child等核心用法与实战
1. 项目概述为什么你需要掌握这些CSS伪类选择器如果你写过CSS肯定用过类选择器.class和ID选择器#id但当你需要更精细地控制页面元素时比如“选中列表的最后一项”、“隔行变色表格的奇数行”、“在一堆不同类型的子元素里选中特定类型的第三个”这些基础选择器就力不从心了。这时CSS伪类选择器特别是:last-child、:first-child、:nth-child()和:nth-of-type()这四位“结构选择器”就成了你手中不可或缺的利器。它们不是基于类名或ID而是基于元素在其父容器中的位置或类型来“定位”目标。这听起来简单但实际用起来新手和老手之间往往隔着一堆浏览器控制台里调试出来的“坑”。比如你以为:last-child选中了最后一个li结果样式没生效一查发现是因为最后一个元素后面多了一个看不见的换行文本节点。又或者你用:nth-child(2n)想给表格偶数行上色却发现效果乱七八糟因为表格里混入了th和td。掌握这四种选择器意味着你能用更简洁、更语义化的CSS代码实现复杂的界面效果比如动态列表样式、响应式布局微调、以及无JavaScript参与的交互动画基础。它们是你从“会写CSS”到“精通CSS”的关键一步。无论你是正在学习HTMLCSS基础语法的新手还是想优化display: grid或flex布局中特定项的老手亦或是想实现css涟漪光圈扩散这类高级视觉效果而需要精确控制触发元素这篇深度解析都能给你带来实实在在的帮助。2. 核心原理与基础语法拆解在深入每个选择器之前我们必须先建立一个共同的认知基础文档对象模型DOM的结构以及CSS引擎是如何“数数”的。2.1 理解“子元素”与“索引”的上下文所有这四个选择器都作用于某个父元素下的“子元素”。关键点在于浏览器在计算:nth-child(n)这类索引时考虑的是所有类型的子元素节点。这包括了元素节点如div、p、span、注释节点甚至文本节点比如元素之间的换行和空格在某些解析模式下会被视为文本节点。虽然通常我们只关心元素节点但这个机制是许多陷阱的根源。n可以是一个数字如2、一个关键字如odd奇数,even偶数、或一个公式如2n1。公式中的n从0开始递增0, 1, 2, 3...然后将结果代入选出索引匹配的子元素。例如2n1会选中第1、3、5...个子元素。2.2 :first-child 与 :last-child这两个是最直观的位置选择器。:first-child匹配作为其父元素的第一个子元素的那个元素。:last-child匹配作为其父元素的最后一个子元素的那个元素。它们的语法简单没有参数。但“第一个”和“最后一个”的判断必须严格基于父元素下的所有子节点序列。/* 示例为一个列表的第一个和最后一个项目添加特殊样式 */ ul.menu li:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; background-color: #f0f8ff; /* 浅蓝色背景 */ } ul.menu li:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; border-bottom: 2px solid #4CAF50; /* 绿色底边 */ } 注意一个常见的误解是认为ul li:first-child会选择ul下第一个li。这没错但前提是第一个子节点必须就是li。如果ul的开头有注释或其他元素这个选择器就会失效。:last-child同理。2.3 :nth-child() 的威力与细节这是功能最强大、也最常用的一个。:nth-child(anb)选择器匹配父元素下第anb个子元素其中a和b是常数n是自然数0,1,2,3...。关键特性它先根据索引找到所有子元素中的第N个然后再检查这个元素的类型是否与选择器前缀匹配。/* 一些经典用例 */ tr:nth-child(odd) { background-color: #f9f9f9; } /* 表格奇数行 */ tr:nth-child(even) { background-color: #fff; } /* 表格偶数行 */ li:nth-child(3) { color: red; } /* 第三个li元素 */ li:nth-child(3n) { font-weight: bold; } /* 每第三个li元素第369...个 */ li:nth-child(2n1) { margin-left: 10px; } /* 等价于 odd第1,3,5...个 */ li:nth-child(-n3) { font-size: 1.2em; } /* 选择前三个当n0,1,2时结果3 */ 实操心得:nth-child的参数非常灵活。-n3这种形式对于“选择前N个”的场景特别有用。理解公式计算的最好方法就是在浏览器的开发者工具中使用元素检查窗格它通常会直接标注出当前元素匹配的:nth-child索引是调试神器。2.4 :nth-of-type() 的类型过滤这是:nth-child()的“类型敏感”版本。:nth-of-type(anb)选择器匹配父元素下同类型元素中的第anb个。关键特性它先过滤出所有与选择器前缀同类型的子元素然后在这个过滤后的列表中根据索引找到第N个。这是它与:nth-child()最根本的区别。!-- 示例DOM结构 -- div classcontainer h2标题/h2 p第一个段落。/p div classad一个广告div/div p第二个段落。/p p第三个段落。/p /div/* 尝试一使用 :nth-child */ .container p:nth-child(2) { color: blue; /* 会生效吗 */ } /* 分析浏览器寻找父元素(.container)的第二个子元素。第二个子元素是p第一个段落/p。 它同时满足“是第二个子元素”和“是p元素”两个条件所以这个样式会生效将“第一个段落”变蓝。*/ /* 尝试二使用 :nth-child */ .container p:nth-child(3) { color: red; /* 会生效吗 */ } /* 分析寻找第三个子元素。第三个子元素是div classad它是一个div不是p元素。 虽然索引对上了但元素类型不匹配所以这个样式不会生效。*/ /* 尝试三使用 :nth-of-type */ .container p:nth-of-type(2) { color: green; /* 会生效吗 */ } /* 分析首先在.container下找出所有p元素得到一个列表[p1, p2, p3]。 然后在这个p元素列表中找第二个即“第二个段落”。 所以这个样式会生效将“第二个段落”变绿。*/这个例子清晰地展示了区别。当子元素类型混杂时:nth-of-type()能让你更精准地定位到特定类型的元素而无需关心其他类型的元素穿插其中。3. 核心细节解析与实操要点理解了基础语法我们来看看在实际项目中如何正确、高效地运用它们并避开那些常见的坑。3.1 选择器特异性与组合使用伪类选择器的特异性Specificity权重等同于一个类选择器0,1,0。这意味着li:first-child的特异性和.my-class是一样的。当它们发生冲突时后定义的规则会覆盖先定义的在特异性相同的情况下。你可以将它们与其他选择器灵活组合实现更精细的控制/* 组合类选择器 */ .list-item.highlight:last-child { /* 仅当它既是.highlight类又是最后一个子元素时 */ border-color: gold; } /* 在特定容器内使用 */ .grid-container div:nth-child(4n1) { /* 只针对.grid-container的直接子div */ clear: left; /* 在浮动布局中用于换行 */ } /* 配合属性选择器 */ input[typetext]:first-of-type { margin-top: 0; /* 第一个文本框不需要上边距 */ } 注意事项在像css flex布局或css dispaly:grid这样的现代布局中使用这些结构选择器来设置特定位置的网格项或弹性项的样式非常有用。例如在Grid布局中你可能想为第一行的所有项目设置上边框这时:nth-child(-n[列数])就能派上用场假设是4列就可以用:nth-child(-n4)。3.2 动态内容与响应式场景下的考量在内容动态增减如通过JavaScript操作DOM或响应式布局中元素的数量和位置可能发生变化。动态列表如果你用:last-child为最后一个列表项添加了下边框或圆角当通过AJAX新增一项时新的项会成为:last-child而原先的最后一项样式需要移除。这通常需要CSS与JS配合或者更聪明地使用边框方案例如用负边距和父容器溢出隐藏来模拟最后一项的边框。响应式布局在媒体查询media中屏幕尺寸的变化可能导致flex-wrap或grid-auto-flow改变元素的视觉顺序。此时基于DOM顺序的:nth-child可能无法匹配视觉上的“行”或“列”。对于复杂的响应式结构有时使用类名或CSS自定义属性css 变量来控制样式会更可靠。3.3 浏览器支持与常见陷阱这四个选择器在现代浏览器中支持度极好IE9基本支持:nth-of-type在IE9中部分支持。主要问题不在于支持度而在于理解和使用。陷阱1空白文本节点。在一些情况下取决于HTML格式和解析元素间的换行和缩进会被视为文本节点。这可能会影响:first-child和:last-child的判断虽然大多数情况下浏览器引擎能正确处理但在极端或旧式代码中可能出问题。保持HTML格式整洁或使用压缩工具可以避免。陷阱2对:nth-child和:nth-of-type的混淆。这是最大的困惑源。牢记:nth-child先数数再看标签。数的是所有孩子数到第N个后检查它是不是你要的标签不是就白忙活。:nth-of-type先看标签再数数。在所有孩子里先把同标签的兄弟挑出来然后在这堆兄弟里数第N个。当你需要的结果和预期不符时首先用开发者工具检查DOM结构数一数子元素的真实顺序和类型。4. 高级应用与实战案例解析掌握了基础让我们看看如何用这些选择器解决一些实际问题并实现一些炫酷的效果。4.1 创建斑马纹表格与复杂列表样式斑马纹表格是:nth-child的经典用例但我们可以做得更丰富。/* 基础斑马纹 */ tbody tr:nth-child(odd) { background-color: #f8f9fa; } tbody tr:nth-child(even) { background-color: #e9ecef; } /* 高亮鼠标悬停行 */ tbody tr:hover { background-color: #d1ecf1; } /* 但如果我们想每三行一个循环呢 */ tbody tr:nth-child(3n1) { border-left: 3px solid #007bff; } /* 每组第一行有蓝色左边框 */ tbody tr:nth-child(3n2) { border-left: 3px solid #28a745; } /* 第二行绿色 */ tbody tr:nth-child(3n) { border-left: 3px solid #ffc107; } /* 第三行黄色 */ /* 对于列表可以实现类似“徽章”效果 */ ul.task-list li { padding: 10px; border-left: 5px solid transparent; } ul.task-list li:nth-of-type(1) { border-left-color: #ff6b6b; } /* 第一种类型任务 */ ul.task-list li:nth-of-type(2) { border-left-color: #4ecdc4; } /* 第二种 */ ul.task-list li:nth-of-type(3) { border-left-color: #ffe66d; } /* 第三种 */ /* 如果超过3种颜色会循环吗不会因为nth-of-type(4)不匹配任何规则。 要实现循环需要更复杂的公式或CSS变量。 */4.2 配合CSS Grid与Flexbox进行布局微调在现代布局中结构选择器能帮你处理边缘情况。/* 在一个Flex容器中让最后一行的项目左对齐假设每行最多4个 */ .flex-container { display: flex; flex-wrap: wrap; justify-content: space-between; /* 通常两端对齐 */ } .flex-item { width: calc(25% - 10px); margin-bottom: 20px; } /* 关键技巧为可能成为最后一行的项目添加特定样式 */ .flex-item:nth-child(4n1):nth-last-child(-n4), .flex-item:nth-child(4n1):nth-last-child(-n4) ~ .flex-item { justify-content: flex-start; /* 或者调整margin等 */ } /* 这个组合选择器逻辑较复杂意思是从第1个开始算每4个一组的第一个 并且它是在倒数4个之内。选中它和它之后的所有兄弟。这通常用于处理最后一行项目不足时取消space-between的两端对齐效果。 */ /* 在Grid布局中为第一列和最后一列设置特殊样式 */ .grid-layout { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; } .grid-item:nth-child(3n1) { /* 假设我们想每行3个为每行第一个设置 */ border-left: 3px solid #000; } /* 但auto-fill下每行项目数可能随宽度变化所以这种方法在严格响应式中有限制。 */4.3 实现无JavaScript的简单交互视觉效果结合:hover和:nth-child可以创造纯CSS的交互序列效果。/* 一个卡片悬停放大效果但希望被悬停卡片之前的卡片有不同反应 */ .card-list { display: flex; } .card { width: 60px; height: 100px; background: #ccc; margin-right: 5px; transition: all 0.3s ease; } .card:hover { transform: scale(1.2); background: #777; } /* 当悬停某个卡片时改变它之前所有卡片的透明度 */ .card:hover ~ .card { opacity: 0.6; } /* 但如果我们想更精细地控制比如只改变前两个需要配合JS或更复杂的选择器纯CSS较难。 */ /* 一个更实际的例子图片画廊鼠标悬停时非悬停图片变暗 */ .gallery img { filter: brightness(100%); transition: filter 0.3s; } .gallery:hover img { filter: brightness(50%); /* 画廊悬停时所有图片变暗 */ } .gallery img:hover { filter: brightness(100%); /* 当前悬停的图片恢复亮度 */ } /* 这个效果虽然没用nth-child但展示了纯CSS交互的思路。 */对于更复杂的如css涟漪光圈扩散效果通常需要定位一个伪元素并为其添加动画。结构选择器可以用来决定在哪些特定的按钮或元素上触发或显示这种效果。例如你可以为表单中所有input[typesubmit]按钮或者导航栏中除第一个以外的所有li应用同一个涟漪动画。5. 常见问题排查与性能优化即使理解了原理在实际开发中还是会遇到各种问题。这里记录一些典型的“坑”和解决方案。5.1 样式不生效的排查步骤当你写的:nth-child或:last-child没效果时按以下顺序检查检查父元素是否正确确保你选择的父容器路径是对的。用开发者工具检查目标元素的父级是否是你设想的那一个。检查子元素计数在开发者工具中数一数父元素下所有子节点包括文本、注释。确认你目标元素的位置索引是否和你预想的一致。:nth-child(2)意味着它是第二个子节点而不一定是第二个div或li。检查元素类型对于:nth-child(X)确认第X个子节点的元素标签是否与选择器前缀匹配。对于div:nth-child(2)要求第二个子节点必须是一个div。检查CSS特异性与覆盖可能有其他更高特异性如ID选择器、内联样式或后定义的规则覆盖了你的样式。使用开发者工具的“Styles”面板查看哪些规则被应用哪些被划掉覆盖。检查拼写与语法确保伪类冒号:是英文的括号配对正确。:nth-child(2n1)不能写成:nth-child(2n 1)旧版本浏览器可能不支持空格。5.2 性能考量与最佳实践在绝大多数现代网站中使用这些伪类选择器的性能开销微乎其微可以放心使用。但在极端复杂、DOM节点数极多如成千上万行表格的页面上仍需注意保持选择器简洁避免编写过于复杂或深层嵌套的选择器如.container div ul li:nth-child(5) a。浏览器从右向左解析CSS选择器过长的路径会增加匹配成本。理解重绘与回流使用这些选择器设置如width、height、position等影响布局的属性可能会触发回流Reflow比设置color、background等只引起重绘Repaint的属性开销更大。在动画或频繁DOM操作中需留意。与JavaScript的对比对于一次性或复杂的动态样式计算用JavaScript如遍历元素添加类名可能更直观且性能可控。但对于静态或规则简单的样式CSS伪类选择器是更声明式、更高效的选择因为样式计算由浏览器引擎优化处理。5.3 实用速查表与记忆技巧选择器作用关键区别典型用例:first-child选择父元素的第一个子元素必须是第一个子节点列表首项特殊样式移除第一个元素的上边距:last-child选择父元素的最后一个子元素必须是最后一个子节点列表末项特殊样式移除最后一个元素的下边距:nth-child(n)选择父元素的第n个子元素先数数再看类型。数所有孩子第n个的类型必须匹配。斑马纹表格(odd/even)选择特定位置元素:nth-of-type(n)选择父元素下同类型元素的第n个先看类型再数数。只在同类型兄弟中数第n个。在混合类型子元素中精准选择特定类型的第几个记忆口诀child是“总排名”type是“分类排名”。遇到混合类型子元素想精确控制就用-of-type。6. 举一反三相关伪类选择器拓展掌握了这四大金刚不妨了解一下它们的“亲戚”让你的CSS武器库更加丰富。:nth-last-child()与:nth-last-of-type()这两个和:nth-child、:nth-of-type逻辑完全一样唯一的区别是从最后一个子元素开始倒数。例如:nth-last-child(1)等价于:last-child:nth-last-child(2)选择倒数第二个。这在你不确定列表长度但想对最后几个元素进行操作时非常有用比如在聊天界面中为最后一条消息添加“已读”标识的样式。:only-child匹配属于其父元素的唯一子元素的元素。如果一个div里只有一个p那么p:only-child会匹配这个p。这对于设置独生子女元素的默认样式很方便。:only-of-type匹配属于其父元素的特定类型的唯一子元素的元素。如果一个div里有多个span但只有一个p那么p:only-of-type会匹配这个唯一的p。:not()否定伪类这个伪类功能强大可以与其他选择器组合进行排除。例如li:not(:last-child)会选择除了最后一个以外的所有li常用于为列表项之间添加分隔线给除最后一项外的所有项加border-bottom。input:not([typesubmit])可以选择所有非提交按钮的输入框。将这些选择器组合使用能产生非常强大的效果。例如tr:nth-child(odd):not(.header-row)可以选择表格中所有奇数行但同时排除掉表头行假设表头有.header-row类。最后关于css字体渐变、css动画、css按钮样式这些热门效果结构伪类选择器往往是实现它们的第一步——帮你精确选中需要应用这些华丽效果的元素。比如你可以用:nth-child()为导航栏的不同按钮应用不同的渐变背景或者用:hover配合:nth-of-type实现按钮悬停的序列动画。把选择器用好了你的CSS就从“能干活”进化到了“干得漂亮”。

相关新闻

RAG系统工程深度解析:从向量检索到智能代理的完整架构

RAG系统工程深度解析:从向量检索到智能代理的完整架构

1. 从“挂个知识库”到“系统工程”:RAG的深度认知“RAG不就是给大模型挂个知识库吗?” 这句话,我猜很多刚接触RAG(检索增强生成)的朋友都说过或想过,甚至在一些技术讨论里也常听到类似的简化描述。如果是在…

2026/10/12 2:21:50 阅读更多 →
Java服务崩溃日志分析:从SIGSEGV到JNI问题的四步排查法

Java服务崩溃日志分析:从SIGSEGV到JNI问题的四步排查法

1. 问题引入:当你的Java服务突然“宕机” 做后端开发或者运维的朋友,估计都经历过这种让人心头一紧的时刻:线上服务突然毫无征兆地挂了,监控告警响成一片,登录服务器一看,Java进程没了,只留下一…

2026/10/9 17:13:56 阅读更多 →
UEFI系统备份还原新方案:无需修复ESP分区,实现Ghost镜像通用化部署

UEFI系统备份还原新方案:无需修复ESP分区,实现Ghost镜像通用化部署

1. 项目概述与核心痛点如果你曾经尝试过用Ghost这类经典工具备份Windows系统,尤其是在UEFI启动的电脑上,大概率会遇到一个让人头疼的问题:备份还原后,系统无法启动,屏幕上往往提示“No bootable device”或者直接卡在主…

2026/10/6 9:30:14 阅读更多 →

最新新闻

OpenCV图像傅里叶变换实战:频谱可视化与频率域滤波

OpenCV图像傅里叶变换实战:频谱可视化与频率域滤波

傅里叶变换这玩意儿,上学的时候信号与系统课里被那一堆公式折磨得死去活来,当时就一个想法:这玩意儿除了考试到底还能干啥?结果工作之后玩OpenCV,发现图像处理里到处是它的影子,什么去噪、增强、压缩&#…

2026/10/12 4:29:41 阅读更多 →
基于Spring Boot的高校科研信息管理系统设计与实现全解析

基于Spring Boot的高校科研信息管理系统设计与实现全解析

每年四五月份,总有一批人被高校科研管理系统这类选题折磨得睡不着觉。我接过不少类似的咨询和调试需求,从老师、研究生到本科毕设党,需求表单长得差不多:项目申报、中期检查、结题验收、论文登记、经费统计……看上去业务逻辑不复…

2026/10/12 4:29:41 阅读更多 →
跨模态行人重识别实战:对比学习与注意力差异建模复现指南

跨模态行人重识别实战:对比学习与注意力差异建模复现指南

1. 跨模态行人重识别的问题本质与方案定位跨模态行人重识别(Cross-Modality Person Re-identification,业内常简称为跨模态 ReID)要解决的核心问题很具体:同一名行人在可见光摄像头下被拍到一次,又在红外摄像头下被拍到…

2026/10/12 4:29:41 阅读更多 →
AI论文写作全流程指南:从选题到答辩的8个高效工具

AI论文写作全流程指南:从选题到答辩的8个高效工具

每年的四月到六月,我的聊天软件都会收到类似的消息:一个平时不怎么联系的同学突然冒出来,先是"在吗",然后是一句"论文还有救吗"。前几天凌晨,A同学直接把Word文档发过来,文件名是"…

2026/10/12 4:29:41 阅读更多 →
Litellm实战:统一LLM网关,解决多模型接入与成本管控难题

Litellm实战:统一LLM网关,解决多模型接入与成本管控难题

1. 为什么需要 litellm:被模型接入“烦透”之后的必然选择先说个真实场景。某公司内部有一个智能客服项目,最初只接了一家大模型厂商的接口,一切正常。后来升级需求,要同时对比多家头部模型的回答效果,再后来要接入本地…

2026/10/12 4:29:41 阅读更多 →
Hadoop全分布模式:生产级集群部署与稳定性实践指南

Hadoop全分布模式:生产级集群部署与稳定性实践指南

1. 项目概述:为什么“全分布模式”是Hadoop落地的真正起点你搜“hadoop搭建”,前几页几乎全是伪分布式或单机模式教程——界面能跑起来,Web UI能打开,甚至MapReduce任务也能提交成功。但那只是玩具。真正让Hadoop在生产环境站稳脚…

2026/10/12 4:28:41 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →