移动端优先断点必须用 min-width,核心是默认适配320px最小视口,再通过@media (min-width: ...)逐步增强;sass断点应统一用em单位(如48em=768px),收口管理于_breakpoints.scss,避免重复声明与硬编码px值。

移动端优先断点必须用 min-width,不是 max-width
直接写 @media (max-width: 767px) 就是桌面优先思路,它会让后续所有增强规则都得靠更高特异性或 !important 覆盖,越写越难维护。移动端优先的本质是:默认样式适配最小视口(如 320px),再用 @media (min-width: ...) 逐步增强。
常见错误现象:@media (max-width: 480px) 在 iPhone SE 上触发异常、横屏时布局突然回退、DevTools 里看到多条重叠的媒体查询生效但效果互相抵消。
- 基础样式不写任何
@media,直接按 320px 宽度设计(iOS 最小安全宽度) - 第一个断点从内容溢出临界点出发,比如导航栏文字开始换行、卡片宽度撑满后出现滚动条
- 避免硬写
480px、768px这类历史值——它们对应旧 iPad 的逻辑分辨率,现在低端安卓机都超 500px
Sass 断点 @mixin 必须用 em 单位,不能用 px
px 断点在用户缩放、WebView 动态重设 font-size 或高 DPI 设备下会失效。Sass 不感知 HTML 根字号变化,所以 $breakpoints: ("md": 768px) 是危险的。
正确做法是统一用 em:以 16px 为基准,48em = 768px,这样缩放时断点能随根字号同步响应。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 声明断点 map:
$breakpoints: ("sm": 40em, "md": 48em, "lg": 64em); @mixin breakpoint($name) { @media (min-width: #{map-get($breakpoints, $name)}) { @content; } }- 调用时写
@include breakpoint(md) { ... },不要拼字符串或漏掉#{}插值 - 调试高 DPI 设备时,用 DevTools 的 “Emulate CSS media features” 手动设
device-pixel-ratio验证
@include breakpoint() 不生效?先查这三处
不是 mixin 写错了,而是调用位置或上下文不对。最常踩的坑是嵌套层级和作用域问题。
- 必须写在 CSS 规则块内部,例如
.card { @include breakpoint(md) { width: 60%; } };不能放在变量声明后或顶层 - 如果用了
@use模块系统,确认断点文件是@forward "breakpoints"而非@forward "breakpoints" as *,后者会污染命名空间 - 检查父级是否设置了
display: none或visibility: hidden——断点已生效,但元素根本没渲染
别把 @media 嵌在组件文件里反复声明
在 _button.scss 里写一次 @media (min-width: 768px),又在 _header.scss 里再写一次,会导致编译后 CSS 出现重复媒体查询块,体积膨胀、resize 时重算卡顿。
更糟的是,同一个断点值分散在多个文件,设计稿一改就得全局搜索替换,极易遗漏。
- 所有断点定义收口到一个
_breakpoints.scss文件,用 map + mixin 统一管理 - 组件内只调用
@include breakpoint(md),不硬写媒体查询条件 - 工具类(如
.text-center)的响应式变体,统一用@each在_utilities.scss里批量生成 - 构建后检查 CSS:搜索
@media,确认每个块内选择器都以你预期的根类名开头,没有意外嵌套
@include breakpoint(md) 后,拿几台真机横竖屏反复拖拽,看组件是不是在“刚好要崩”时才切换——这才是移动优先的落点。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










