最近在写自己的个人博客时遇到了一个小问题,为了解决响应式设计,便加入了媒体查询@meida来自适应各种大小的终端设备。但是在其中还发现了不少坑,在这里希望通过这篇文章分享给大家。
1、优先级的问题
div p{
color:#333;
}
@media screen and (min-width:500px) and (max-width:1240px){
p{
color:#666;
}
}
以上的这段代码div里面的p标签是不会改变颜色的,因为在媒体查询中指定的p标签得文字颜色的优先级要低于div中p指定的颜色。
2、空格符问题
@meida screen and (max-width:768px){
........
}
注意在写媒体查询的时候,一定要记得and前后是有空格的,否则会失效!!!!!!
3、注意是否声明meta元素
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
移动端一定要声明,而pc端不作要求。
解决ie8不支持媒体查询
respond.js
Respond.js 是一个小脚本,支持在浏览器中使用CSS3媒体查询功能。
今天在做浏览器适配时,发现ie8不支持媒体查询,解决方法就是使用respond.js库。
但要注意以下几点:
1、需要启动本地服务器(localhost),不能使用普通本地的url地址(file://开头);
2、需要外部引入CSS文件,将CSS样式书写在style中是无效的;
3、由于respond插件是查找CSS文件,再进行处理,所以respond文件一定要放置在CSS文件的后面;
4、另外,虽然把respond放置在head里还是在body后面都能够实现,但是建议放置在head中;
5、最好不要为CSS设置utf-8的编码,使用默认