CSS媒体查询响应式设计失效:.my-element字体大小不随屏幕调整求助
响应式媒体查询不生效的常见原因
必须添加viewport元标签
移动端浏览器默认会把页面缩放到桌面宽度,不加这个标签的话,媒体查询根本不会触发。在HTML的<head>里加上:<meta name="viewport" content="width=device-width, initial-scale=1.0">检查样式优先级冲突
看看你的.my-element是不是有其他优先级更高的样式,比如:- 直接写在元素上的行内样式(
style="font-size:...") - 带
!important标记的规则 - 权重更高的选择器(比如
#container .my-element比单独的.my-element权重高)
可以用浏览器开发者工具(F12)查看元素样式,要是媒体查询的规则被划掉,就说明被其他样式覆盖了。
- 直接写在元素上的行内样式(
确认媒体查询的位置与语法
CSS遵循“后定义规则覆盖先定义”的逻辑,如果你的媒体查询写在.my-element基础样式前面,会被基础样式覆盖,要把媒体查询放在常规样式之后。另外再检查下拼写,比如有没有把max-width写成max-widht这类低级错误。清除浏览器缓存
有时候浏览器会缓存旧的CSS文件,导致新的媒体查询没加载。可以按Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新页面,或者在开发者工具里临时禁用缓存。断点重叠的小细节
你的代码里768px和1024px的断点是重叠的——当屏幕刚好是768px时,第一个max-width:768px和第二个min-width:768px的媒体查询都会匹配,这时候后面的规则会覆盖前面的,字体大小会是18px。如果想避免这种重叠,可以把第二个媒体查询改成min-width:769px,第三个改成min-width:1025px。
内容的提问来源于stack exchange,提问作者Mobin Salehi
相关产品推荐
相关产品推荐

