我已經構建了一個包含媒體查詢的響應式網站來定位不同的移動設備,但希望在較小的設備上提供「覆蓋所有」鏈接。點擊後,該鏈接將刪除所有媒體查詢樣式並將該頁面重置爲默認樣式,從而將網站暴露爲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'。謝謝你讓我知道。 –