@media (width >= 768px) 会完全失效,因 width 仅支持精确匹配(如 width: 768px),不支持比较运算符;正确写法是 @media screen and (min-width: 768px),且须配合 viewport meta 标签才能生效。

直接写 @media (width >= 768px) 会完全失效
浏览器根本不会识别这种写法,也不会报错——整条规则被静默忽略。这不是兼容性问题,而是语法错误:width 是精确匹配媒体特性,只接受具体值(如 width: 768px),不支持 >=、 或任何比较运算符。你看到样式没生效,大概率就是卡在这儿。
min-width 才是等价于 “≥” 的标准写法
要用 CSS 表达“宽度大于等于 768px”,唯一正确且广泛支持的方式是:@media (min-width: 768px)。它不是“替代方案”,而是规范本身要求的表达形式。
-
@media (min-width: 768px)→ 匹配视口宽度 ≥ 768px 的所有情况 -
@media (max-width: 1023px)→ 匹配视口宽度 ≤ 1023px - 组合写法:
@media (min-width: 768px) and (max-width: 1023px)→ 精确覆盖 768–1023px 范围 - 别写
(width: >=768px)、(width >= 768px)或(min-width >= 768px),全都不合法
为什么加 screen 类型更稳妥
虽然 @media (min-width: 768px) 在多数现代浏览器里能工作,但在 Safari、Electron 或某些 WebView 中可能不生效——原因不是断点错了,而是没声明媒体类型,默认 @media all 会导致部分引擎跳过计算。
- ✅ 推荐写法:
@media screen and (min-width: 768px) - ❌ 风险写法:
@media (min-width: 768px)(尤其在 H5、微信内嵌页、PWA 场景下) -
only screen中的only已无必要,现代项目直接用screen即可 - 拼错
screen(比如写成scrren)或空格不规范(如screenand)也会导致整条规则被丢弃
断点顺序和 viewport meta 是隐性前提
再正确的 @media 规则,如果页面没配 <meta name="viewport" content="width=device-width, initial-scale=1">,手机浏览器就会以桌面视口(约 980px)渲染,max-width: 768px 永远不匹配——这是实际项目中最常被忽略的前置条件。
- 移动端调试时样式不触发?先查这个
<meta>标签有没有、写没写错 - 断点规则要按「移动优先」顺序组织:基础样式放最前,
@media (min-width: ...)从小到大递增写 - 避免混用
max-width和min-width描述相邻区间(如max-width: 767px和min-width: 768px),1px 边界容易漏判
width 特性几乎从不用;真正起作用的是 min-width 和 max-width 的组合逻辑,以及那个容易被跳过的 <meta> 标签。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











