移动端CSS不生效主因是viewport未设置或媒体查询错误;需在head中添加viewport标签,并用min-width移动优先写法写媒体查询,再通过真机调试验证。
移动端CSS样式不生效,大概率是viewport未正确设置或媒体查询写法/匹配条件有误。这两个环节缺一不可,下面分点说清楚。
没有它,浏览器会以桌面宽度(如980px)渲染页面,媒体查询的max-width: 768px自然不会触发。
正确写法(放在中):
关键参数说明:
常见错误包括单位漏写、括号不全、断点值不合理。
正确示例(推荐移动优先写法):
/* 基础样式(默认给所有设备) */
body { font-size: 16px; }
/* 平板及以上 */
@media (min-width: 768px) {
body { font-size: 18px; }
}
/* 桌面端 */
@media (min-width: 1024px) {
body { font-size: 20px; }
}
注意点:
px、em等单位,不能只写数字(如@media (max-width: 768) ❌)min-width而非max-width,更利于维护(移动优先)即使媒体查询生效,也可能被更高权重的样式覆盖。
引入(内联style、link顺序、@import位置)!important,优先通过调整选择器层级来解决冲突Chrome DevTools 的响应式模式只是模拟,部分行为(如缩放、touch事件、DPR)和真机不同。
基本上就这些。先确认viewport标签存在且位置正确,再核对媒体查询语法和断点逻辑,最后用真机验证。不复杂但容易忽略细节。