我已经构建了一个包含媒体查询的响应式网站来定位不同的移动设备,但希望在较小的设备上提供“覆盖所有”链接。点击后,该链接将删除所有媒体查询样式并将该页面重置为默认样式,从而将网站暴露为1024像素宽。有没有办法做到这一点?是否可以覆盖所有媒体查询?
1
A
回答
3
你可以做到这一点的唯一方法就是使用Javascript。我想出了两个解决方案:
ID /类<html>
元素上:
应用ID或类的HTML元素:<html class="media-queries">
。
在媒体查询,每一个选择都会有.media-queries
开始:
CSS
@media (max-width: 300px) {
.media-queries #nav li {
display: block;
}
.media-queries #main, .media-queries #aside {
float: none;
}
}
然后,你得到JS删除class="media-queries"
。
HTML
<a id="del-mq" href="#">Default style</a>
的JavaScript
var delMQ = document.getElementById('del-mq');
delMQ.onclick = function() {
document.getElementsByTagName('html')[0].removeAttribute('class');
}
jQuery的
$('#del-mq').click(function() {
$('.media-queries').removeClass();
});
优点:没有额外的http请求。
缺点:很多CSS选择器(.media-queries
),如果使用这不应该是一个问题萨斯:
@media (max-width: 300px) {
.media-queries {
#nav...
#main...
}
}
外部媒体queries.css
所有媒体查询进入一个单独的css文件。包括它与<link rel="stylesheet" href="media-queries.css">
。
然后您得到<link>
的ID并移除该元素。
HTML
<head>
<link rel="stylesheet" href="default.css">
<link id="media-queries" rel="stylesheet" href="media-queries.css">
</head>
<body>
...
<a id="del-mq" href="#">Default style</a>
...
</body>
的Javascript
var delMQ = document.getElementById('del-mq');
delMQ.onclick = function() {
document.getElementsByTagName('head')[0].removeChild(document.getElementById('media-queries'));
}
jQuery的
$('#del-mq').click(function() {
$('#media-queries').remove();
});
优点:不需要大量的css选择器。
缺点:额外的http请求。
相关问题
- 1. 媒体查询是否覆盖非媒体查询?
- 2. 是否可以在媒体查询中嵌套媒体查询?
- 3. 当媒体查询覆盖其他媒体查询
- 4. 是否媒体=“全部”CSS覆盖所有内容?
- 5. 媒体查询不互相覆盖
- 6. 覆盖bootstrap hidden-xs媒体查询
- 7. 响应媒体查询覆盖
- 8. 覆盖sass媒体查询mixin
- 9. 无法覆盖的CSS媒体查询
- 10. CSS媒体查询大屏幕覆盖媒体查询小屏幕
- 11. 是否可以覆盖NSUserDefault?
- 12. 覆盖原有的CSS与媒体查询
- 13. Webkit CSS动画填充模式似乎可以覆盖CSS媒体查询
- 14. 我们可以使用CSS文件中的媒体查询覆盖BOOTSTRAP吗?
- 15. 是否有可能让浏览器忽略/禁用所有媒体查询?
- 16. 媒体查询是否适用于所有智能手机
- 17. 媒体查询是否可以在MediaWiki中使用?
- 18. 是否可以为每个浏览器创建媒体查询?
- 19. 是否可以覆盖媒体源API附加缓冲区(范围)?
- 20. 媒体查询为将适合所有
- 21. 所有设备的媒体查询
- 22. 是否支持媒体查询?
- 23. css3媒体查询:iPad覆盖iphone4(视网膜)规则
- 24. 媒体查询不会覆盖原始样式
- 25. 媒体查询被前面的规则覆盖
- 26. 媒体查询覆盖我的默认CSS
- 27. 媒体查询不覆盖原生样式?
- 28. 媒体查询样式不覆盖原始样式
- 29. 屏幕媒体查询覆盖打印规则(在Chrome中)
- 30. !重要规则覆盖媒体查询吗?
非常好的答案。 – joshuahornby10
非常感谢!我不得不更新我的jQuery库,并选择了选项#2,但略有修改如下:view full site – cheriana
我很高兴它帮助你。我不知道你可以使用'document.styleSheets.disabled'。谢谢你让我知道。 –