CSS高度单位详解:height:100%失效与100vh/100dvh实战指南
很多人第一次碰到height: 100%不生效都是在一个特别尴尬的场景里明明给父级设了高度子级也写了height: 100%结果子元素就像没吃饱饭一样瘫在那里高度直接塌成内容的高度。我最早是从一个后台管理系统的左侧菜单栏开始较真的当时那个侧边栏想撑满整列折腾了一下午最后才发现问题出在html和body的高度上。后来带过几个新人发现几乎每个人都会在这个点上卡一阵子。这篇就好好掰扯一下height: 100%为什么会失效、100%和100vw/vh到底差在哪、各自有什么坑以及现在推荐用什么方式来做全屏布局。目标很简单看完你能准确判断项目中该用哪个单位遇到布局塌陷能快速定位原因不再靠瞎试。1. 为什么height: 100%经常不生效百分比高度背后的参照链1.1 百分比高度不是撑满父级而是取父级已定义高度的百分比CSS 里的百分比单位本质上是一个依赖父级计算值的相对单位。宽度方向大家用得比较多width: 50%在绝大多数情况下都能顺畅工作因为块级元素的宽度天然由包含块决定整个文档从根元素开始就有明确的宽度参照。但高度方向完全是另一套逻辑——父元素的高度默认是auto由内容撑开而height: auto下子元素的百分比高度拿不到一个可用的参照值。这里的关键规则是如果父级没有显式设置高度或者父级高度依赖内容撑开那么子级的height: 100%会按照auto处理也就是无效。CSS 规范里明确提到当包含块的高度没有被显式指定时百分比高度计算出来是auto。这是height: 100%失效的第一大原因也是唯一的根因。很多人会这样写然后发现没用div classcontainer div classchild/div /div.container { /* 没设高度靠内容撑开 */ } .child { height: 100%; background: #f0f0f0; }这时代码完全按照规范执行但视觉效果就是没生效。因为.container的高度是auto.child的height: 100%找不到参照于是被当作auto处理。1.2html和body的高度默认值最容易忽略的第一环很多布局问题不是出在业务组件的层级关系上而是出在最顶层的两个元素没有设置高度。在浏览器默认样式下html元素的高度是auto由内容body等撑开body元素同理高度也是auto于是当你给一个页面里的某个div设height: 100%时它的父级们一层层往上找发现整个文档根元素都没有显式高度最终全部退化为auto。要解决这个问题做法是在全局样式中设置html, body { height: 100%; }这样从html到body再到你的业务容器这条高度链就通了。省略这一步是height: 100%失效最常见的开局。1.3 全链路视角从html到目标元素的每一层都要有定义高度这条高度链逐层传递就像一条串联电路任何一环断了电流都过不去。举个例子页面结构是html body div idapp div classsidebar div classmenu/div /div /div /body /html如果你希望.menu的高度是${sidebar}高度的 100%那中间每一层都得有定义高度html, body { height: 100%; } #app { height: 100%; } .sidebar { height: 100%; } .menu { height: 100%; }实际项目中#app这类根节点经常是框架比如 Vue/React 的挂载节点或框架内布局容器很多人只设置了html, body { height: 100% }但#app没设照样白搭。调试的时候别只盯目标元素要从它的父级往上逐层审查直到html为止就像排查断掉的电线一样。2.100%与100vw/vh的本质差异参照物、生效时机与滚动影响2.1 参照物不同父级作用域 vs 视口作用域100%的参照物是父元素的对应属性所以它本质上是受制于父级的而vh/vw的参照物是浏览器视口viewport跟父级高度没有半点关系。单位参照物典型语义受父级影响width: 100%父元素的宽度占满父级内容区宽度是height: 100%父元素的高度占满父级内容区高度是100vw视口宽度视口宽度的 100%否100vh视口高度视口高度的 100%否vh viewport height1vh等于视口高度的 1%100vh就是整个视口高度。这个单位不理会父级有没有显式高度直接锁定浏览器可视区域的大小。所以当你需要无论父级怎么折腾我都要占满一屏时100vh是绕开百分比高度链的便捷方案。2.2 高度链要求与一锤定音的差异height: 100%要生效需要整条高度链上的每一层都有可计算的高度定义这条链既是优势也是负担——它能保证子元素和父元素之间严丝合缝但任何一环缺失就全线失效。100vh则更像一锤定音它直接读取视口尺寸不依赖任何父级。哪怕父级高度是auto子元素设height: 100vh也能瞬间撑满整个视口高度。这种特性在以下场景特别香首屏全屏落地页/营销页希望 banner 正好占满一屏弹窗/抽屉遮罩层希望蒙层盖住整个可视区不想动html/body只想让某个局部元素撑满视口打个比方100%像儿子继承父亲的遗产前提是父亲账户里得有钱100vh像是直接领政府的补贴不管父亲有没有钱你都能拿到一整份。2.3 横向100vw的经典坑滚动条宽度导致横向溢出100vw看着简单但它有个非常隐蔽的坑——浏览器垂直滚动条占据的宽度也被算进了100vw。桌面浏览器Windows 下更明显默认显示的是经典滚动条overlay 滚动条不算这种滚动条占有实际布局宽度一般在 15px 到 17px。而视口宽度100vw是指包含滚动条在内的视口完整宽度但你页面可用内容的实际宽度是视口宽度 - 滚动条宽度。所以当你写.full-width { width: 100vw; }实际效果比内容区可用宽度多了滚动条那一截于是页面出现横向滚动条。这个 bug 在切图稿时特别容易踩到——图稿设计师看到的 1920 宽浏览器实打实可用宽度可能只有 1905 左右假设滚动条 15px。规避方式需要撑满父级宽度时直接用width: 100%别用100vw需要撑满视口宽度时可以考虑width: 100%html, body { width: 100% }变相实现视口宽度如果确实要用vw配合overflow-x: hidden只能算抑制症状不是根治2.4 移动端100vh的地址栏问题动态视口的现实困境移动端比桌面端更复杂。手机浏览器的地址栏、底栏会随滚动状态自动出现/收起导致视口高度动态变化。100vh在移动端通常指向视口最大高度当地址栏还挂着时页面上被100vh撑满的元素会超出当前可见区域一截底部内容被地址栏挡住。我自己在移动端 H5 适配时踩过这个常见症状是页面底部按钮被浏览器工具条挡住一部分或者全屏容器上下滚动时留出一段空白的区域。规避思路使用100dvhdynamic viewport height动态视口高度它会跟随浏览器 UI 的展开/收缩实时更新高度使用min-height: 100vh搭配min-height: 100dvh做降级期望至少占满一屏但允许内容超出尽量别用固定的100vh去约束移动端全屏容器的最终高度给内容留出被浏览器工具条遮挡的余量3. 实战选择什么场景用100%什么场景用100vh什么场景用100dvh3.1 用100%的场景跟随布局容器、网格分配、需要与父级严丝合缝当需要子元素与父元素保持严格一致的尺寸时用height: 100%是最直接的。典型场景侧边栏撑满左列高度与右侧内容区保持同高卡片内部内容区域占满卡片剩余高度嵌套组件需要继承父布局的尺寸比如弹窗内部滚动区占满剩余空间使用 flex 或 grid 布局时希望某个子项默认填满交叉轴受align-items: stretch影响但height: 100%在需要显式设定时仍然有用这些场景的前提就是要保证父级高度链完整。父级设了高度子级用100%逻辑清晰维护起来也省心。它代表着跟随父容器只要父级尺寸变化子级自动适配。3.2 用100vh的场景首屏全屏、遮罩层、独立于文档流的一屏元素当你要做的事和父级关系不大纯粹就是希望盖满一屏时100vh是更稳的选择。官网/落地页的首屏 hero 区域希望无论屏幕多高都正好呈现一屏内容弹窗的遮罩层mask希望盖住整个可视区域阻止用户与背后内容交互全屏加载动画的容器想用一个元素占满当前视口一些编辑器类的局部面板希望某个面板高度独立于文档流直接采用视口尺寸100vh的优势是不依赖父级写起来简单移动端语义也更接近用户当前看到的高度虽然带地址栏问题但现代浏览器基本能处理。只要你不会因为父级高度auto而失效它就能稳定工作。3.3100dvh、100svh的适用边界处理移动端动态工具栏的新单位CSS 新视口单位分三档单位全称含义代表的视口高度svhsmall viewport height移动端浏览器工具栏全部展开时的最小可用高度lvhlarge viewport height工具栏全部收起时的最大可用高度dvhdynamic viewport height随浏览器工具栏状态实时变化的动态高度通俗理解手机浏览器顶部地址栏是占位置的。你在页面上滚下去地址栏收起视口实际高度变大滚上来地址栏展开视口实际高度变小。svh等于地址栏占着时的高度lvh等于地址栏收起来后的高度dvh则是当前时刻实际占多少就给多少。实际使用建议需要全屏容器跟随浏览器 UI 变化用100dvh需要保证元素底部不被地址栏遮挡同时又不出现滚动跳动用100svh作为保守底线桌面浏览器上dvh、svh、lvh和vh基本一致没有感知差异所以你可以放心做兼容降级3.4 开发脚手架里更推荐的做法min-height与视口单位结合纯用height: 100vh有一个副作用如果内容超过一屏容器会被死死钉在一屏高度上内部元素只能滚动或溢出。但很多全屏布局其实期望的是至少一屏多了就自己长高。这个需求用min-height更合适.full-page { min-height: 100vh; /* 内容少于一屏时占满一屏内容超过一屏时自然撑开 */ }拿老项目改造的经验来说把原来的height: 100vh改成min-height: 100vh之后很多底部内容被切掉的工单瞬间消失。要理解两者的区别height是就这么高多了内部滚动min-height是至少这么高多了我继续长。如果你的页面是普通文档流布局min-height: 100vh通常比height: 100vh更符合直觉。同样在移动端可以用.container { min-height: 100vh; min-height: 100dvh; }后面一行是给新浏览器用的覆盖旧浏览器忽略不认识的值自动回退到100vh这个降级写法非常实用。4. 跑通全屏布局的实操链路从死死不撑开到完美占满4.1 一步一步搭一个标准的全屏布局先说一个最典型的场景后台管理系统的整体布局左侧菜单 右侧内容区希望两个区域都占满视口高度内部各自滚动。我直接给出推荐写法div classlayout aside classsidebar菜单/aside main classcontent内容区/main /divhtml, body { height: 100%; margin: 0; } .layout { display: flex; height: 100vh; /* 也可以写 height: 100% 但前提是 html/body 都设了 height: 100% */ } .sidebar { width: 220px; height: 100%; background: #1e1e2f; color: #fff; overflow-y: auto; } .content { flex: 1; height: 100%; overflow-y: auto; background: #f5f6fa; }这里我特意用了height: 100vh而不是100%原因很简单我不需要关心html/body的高度链一行100vh直接锁定视口高度。布局本身是 flex 容器子项高度默认stretch撑满交叉轴所以其实.sidebar和.content的height: 100%写不写都行。但为了语义清晰加上也无妨。4.2 排查高度链断裂的标准调试流程如果你项目里height: 100%确实失效了按下面顺序排查基本 5 分钟内定位。这是我在 DevTools 里点出来的经验顺序越靠前越常见。第一审查html和body。打开 DevTools在 Elements 面板选中html看 Computed 样式里 height 的值。如果 height 是auto直接给html, body { height: 100% }。第二审查目标元素的所有祖先节点。从目标元素往上数逐个选中观察 Computed 里的 height 值。只要发现某一层的 height 是auto那它就断了链把该层补上显式高度或改用别的布局方案。第三检查是否有min-height、max-height干扰。有时候父级设了height: 100px但又来了个max-height: 50px那子元素的 100% 参照的就是 min/max 约束后的实际高度。看清 Computed 里的最终值别只盯着 Styles 面板里的声明。第四检查父级是否用了display: contents。如果某个中间层被设成display: contents它本身不再产生盒子子元素的高度计算会直接跳过它参照的是更上层的真实盒子。这种隐形打断链的坑容易被忽略。第五检查是否受了box-sizing影响。当父级同时设置了固定高度和上下内边距时height指的是内容盒的高度还是边框盒高度取决于box-sizing。子元素的height: 100%找参照时一般参考的是父级内容盒的高度如果你的父级box-sizing: border-box实际内容区可能比声明的高度小子元素 100% 反而会溢出。极端情况下会看到比例不对但总体不会完全失效。4.3 常见帮倒忙的操作height: 100%和min-height同时使用的隐患有些同学习惯在父级写min-height: 100vh子级写height: 100%想着父级至少一屏子级就撑满一屏。这种组合有时候会翻车。当父级只有min-height: 100vh而没有显式height时父级的实际高度是auto虽然视觉上占满了一屏。CSS 的高度计算里子级的height: 100%参照的是父级的指定高度指定高度是auto所以子级的百分比依然退化成auto。换句话说min-height不算父级有定义高度不能作为百分比高度的参照。如果确实想让父级至少一屏、子级撑满父级实际高度用 flex 布局更省心.parent { min-height: 100vh; display: flex; flex-direction: column; } .child { flex: 1; /* 自动撑满剩余空间 */ }flex: 1在这里的语义是占据剩余空间比height: 100%更符合需求而且完全绕开了高度链问题。这也是我后来在项目中放弃 stackblitz 里那些繁琐百分比写法的原因——能用 flex 解决的不跟百分比较劲。5. 经典问题实录一个100vw 横向溢出的追查全流程5.1 问题现场还原有一次帮同事调一个展示大屏页面结构大体是section classbanner div classbanner-inner !-- 内容 -- /div /section样式.banner { width: 100vw; /* 想做通栏背景 */ background: linear-gradient(135deg, #2b3a67, #496a81); } .banner-inner { max-width: 1200px; margin: 0 auto; }运行后页面底部出现水平滚动条滚动到最右边后发现.banner比可视区宽了大概 15px。用 DevTools 选中.banner看它的盒模型width 显示为 100vw比如 1920px可浏览器可视区内容宽度只有 1905px。多出来的正好是垂直滚动条的宽度。这个案例里100vw就是罪魁祸首。我最初以为滚动条是某个子元素撑出来的一路排查子孙元素的宽度浪费了不少时间。后来在 Elements 面板直接搜100vw才发现是这里的锅。5.2 一步步用 DevTools 定位 overflow 来源Google Chrome 的 DevTools 是个很好的排查工具有些技巧分享给你们。第一步快速判断页面是否出现横向溢出在 Elements 面板选中html或者直接在控制台执行document.documentElement.scrollWidth document.documentElement.clientWidth返回true说明存在横向溢出。第二步用getBoundingClientRect()找到超宽元素在 Console 里遍历目标区域的所有子元素看谁的实际宽度超出可视区document.querySelectorAll(*).forEach(el { const rect el.getBoundingClientRect(); if (rect.right document.documentElement.clientWidth 1) { console.log(el.className, rect.right - document.documentElement.clientWidth); } });输出里会显示元素类名和超出的值。我那次跑完第一个蹦出来的就是.banner超出 15px和滚动条宽度吻合。第三步检查滚动条宽度不借助第三方库可以这样粗略估算const scrollbarWidth window.innerWidth - document.documentElement.clientWidth;window.innerWidth包含滚动条document.documentElement.clientWidth不含。差值就是滚动条占的宽度一般在 0macOS overlay 滚动条到 17pxWindows 经典滚动条之间。第四步修复把.banner的width: 100vw改成width: 100%来自父级或视口可用宽度横向滚动条立刻消失。如果父级宽度本身正好就是视口可用宽度这个改法完全等价。5.3 移动端100vh导致底部内容被遮挡的排查另一个高频问题是移动端。症状是打开页面底部按钮/版权信息被浏览器工具栏挡住要滚动一下才能看到。这往往是height: 100vh配合overflow: hidden导致的。移动端地址栏展开时视口实际高度小于100vh的名义高度而元素高度已经是 100vh超出当前可视区你设置了overflow: hidden又不能滚动于是底部内容被永久吞掉。复现步骤移动端浏览器打开页面地址栏展开底部内容不可见滚动无效因为overflow: hidden把height: 100vh改成height: 100svh或min-height: 100vh min-height: 100dvh症状消失我后来在移动端项目里的统一经验是全屏容器优先用100dvh动态视口或100svh最小视口再为旧浏览器保留100vh降级。这个方案经手了好几个移动端 H5 项目再没碰到底部被吞的返工。6. 一个实用模板常见单位选型的速查表格实测项目里我给自己整理了一张选型速查表遇到布局高度问题直接查省得每次重新推演。现在分享出来场景推荐写法理由页面常规布局需要占满父级height: 100%跟随父级布局联动后台管理系统的侧边栏/顶栏height: 100vh或 flex1直接锁定视口不依赖高度链落地页首屏 heromin-height: 100vh内容多时自然撑开内容少时占满一屏移动端全屏容器min-height: 100vhmin-height: 100dvh兼容移动端动态工具栏移动端有弹层/底部固定需求100svh作为保守高度地址栏展开时也不会被遮挡通栏背景width: 100%避免100vw引起的滚动条宽度问题弹窗遮罩height: 100%父级为 fixed 定位容器 或100vh取决于遮罩层的定位祖先下面再补一个单位语义的对照表方便新人理解单位参照物典型问题推荐替代%父级对应属性父级高度链断裂flex/vhvw视口宽度滚动条宽度导致溢出%vh视口高度移动端地址栏遮挡dvh/svhdvh动态视口高度老浏览器不支持降级到vhsvh最小视口高度桌面端与vh无异直接用lvh最大视口高度极少单独使用一般配合dvh把这些记牢基本不需要再为到底用哪个纠结。7. 经验沉淀从高度单位踩坑里摸出来的几条土办法7.1 能用flex解决的高度问题尽量别硬算我早期写布局喜欢用height: calc(100vh - 60px)去算顶部导航占 60px剩下来给内容区。后来发现这种硬算的方式维护成本极高导航高度一改所有calc全得跟着改而且100vh在移动端还会引入地址栏高度问题误差瞬间放大。更好的做法是用 flex 或 grid 自适应的剩余空间分配.app { display: flex; flex-direction: column; height: 100vh; } .topbar { height: 60px; /* 或者 flex: none */ } .content { flex: 1; overflow-y: auto; }.content自动获得除去顶栏后的所有剩余高度不管顶栏是 60px 还是 80px容器自身都会适配。这也是现代布局系统flex/grid存在的意义——用自动分配替代手动计算让百分比高度链的脆弱性不再成为问题。7.2 在框架项目中挂载根节点的高度链要单独处理用了 Vue/React 这类框架很多人会设置html, body { height: 100% }之后发现页面里的#app还是塌陷。原因其实很简单框架是在#app里挂载内容的但#app本身如果没有显式高度其内容高度也无法撑满视口同样会塌在视口顶部。一个常见现象就是写了个登录页背景色只覆盖了上半部分下半部分露白。此时要在全局样式里补上#app { height: 100%; }或者干脆用#app { min-height: 100vh; }后者能让#app至少占满一屏内容多了也能自然长高更适合大多数页面场景。如果你项目里是 Vue3 Vite 的模板直接在src/style.css或全局样式文件里处理这一层很多背景只到一半的工单就消失了。7.3 让百分比高度链和视口单位配合工作的套路实际项目里高度链和视口单位不是二选一而是可以配合着用。我的习惯是文档根与全局布局容器用height: 100%或min-height: 100vh拉通高度链页面内部小部件能用 flex 就用 flex必须用百分比时才沿用高度链全屏/遮挡类元素直接用100vh/100dvh/100svh不掺和高度链宽度一律优先%只有真正需要撑满视口宽时才考虑vw且要有overflow-x: hidden的意识这套组合拳用下来基本上能满足日常 95% 以上的布局需求。剩下 5% 需要吊打特殊场景的再去研究 CSS 容器查询或者更细的媒体查询那是另一篇文章的话题了。这次内容写得比较长核心就一句话遇到height: 100%不生效先查父级高度链遇到视口单位造成的满屏布局问题先想想移动端动态视口和横向滚动条的锅。这两类问题占了我接触到的相关工单的八成以上把这些记牢至少能让你少踩一半的坑。我自己的体会是CSS 里要学习的不是死记属性而是理解单位背后的参照系——参照谁跟谁走谁的变化会影响你。搞明白这个布局问题就再也不是玄学了。

相关新闻

爬虫浏览器CLI:面向 AI Agent和开发者的终端优先网络爬虫2026指南|TaoToken 统一 Key 接入实践

爬虫浏览器CLI:面向 AI Agent和开发者的终端优先网络爬虫2026指南|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/17 1:38:25 阅读更多 →
claude-code-memory-setup源码解读:session_autosave.py零LLM调用的SessionEnd Hook实现原理

claude-code-memory-setup源码解读:session_autosave.py零LLM调用的SessionEnd Hook实现原理

【免费下载链接】claude-code-memory-setup Up to 71.5x fewer tokens per session on Claude Code with Obsidian Graphify. Persistent memory, codebase knowledge graphs, and chat import pipeline. 🇧🇷 PT-BR included. 项目地址: ht…

2026/10/18 3:55:18 阅读更多 →
Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统

Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统

Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统 【免费下载链接】fider Open platform to collect and prioritize feedback 项目地址: https://gitcode.com/GitHub_Trending/fi/fider 用户的功能请求散落在工单、应用商店评论和微信群里&#xff0c…

2026/10/17 1:38:25 阅读更多 →

最新新闻

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

目录 解决方案 方法1:使用 SchemaFilter ‌1、创建自定义 SchemaFilter‌ ‌2、在 Swagger 配置中使用该 Filter‌ 方法2:使用 OperationFilter 或 DocumentFilter 1、‌创建自定义 OperationFilter 2、在 Swagger 配置中使用该 Filter 总结 如果…

2026/10/18 3:55:22 阅读更多 →
GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

最近AI圈里有个很热的称呼叫“龙虾模型”,对应的其实就是GLM-Turbo这个系列。很多人一听到这名字就懵,甚至以为是哪个海鲜行业的图像识别模型,但实际它是一个大语言模型,主打的是中文对话、写作、代码生成和知识问答。我这阵子正好…

2026/10/18 3:55:22 阅读更多 →
iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

简介:面向iOS开发者的WebRTC集成示例工程,基于Objective-C实现同类应用间的实时音视频通话,适合希望掌握WebRTC核心流程与原生设备适配的移动端工程师入门参考。压缩包共24个文件,包含7个m源码、5个h头文件、3个plist配置&#xf…

2026/10/18 3:55:22 阅读更多 →
Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 银行 App 一打开就闪退&am…

2026/10/18 3:55:22 阅读更多 →
Spring AI集成大模型:Java开发者最佳实践指南

Spring AI集成大模型:Java开发者最佳实践指南

Spring AI:Java开发者的人工智能集成利器先说一个这两年技术圈里特别明显的变化:以前说到AI开发,大家默认是Python的天下,Java程序员只能站在旁边看热闹,顶多通过HTTP接口调一下别人封装好的服务。但从2024年开始&…

2026/10/18 3:55:22 阅读更多 →
SpringBoot3断代升级实战:从零搭建到部署的完整指南

SpringBoot3断代升级实战:从零搭建到部署的完整指南

前两周帮某电商团队做技术迁移评审,对方项目经理一上来就问:能不能在 SpringBoot2.7 基础上直接改版本号升到 3?我当时就告诉他:这可不是改一行版本号的事。编译直接红一片,javax消失,Tomcat行为变了&#…

2026/10/18 3:54:22 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →