我有两个样式表:
<link rel="stylesheet" type="text/css" href="/core.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/core-desktop.css" media="only screen and (min-width: 800px)" id="css-desktop" />
仅当窗口为800px或更宽时才加载第二个(较窄的显示可获得更适合移动设备的布局)。
JavaScript需要知道是否正在应用第二个样式表,我已经尝试了jQuery:
($(window).width() > 800)
但是,当宽度大约为790-810px时,Chrome / Firefox(可能还有其他)将返回诸如791的值,并且仍会加载800px +的样式表。
我怀疑这是由于滚动条造成的(但是定位$(document)或$('html')要么无效,要么相同)。
那么,有没有一种方法可以测试$('#css-desktop')是否已启用/处于活动状态/已使用?
最佳答案
您可以执行以下操作。
制作第一个样式表中带有display: none;
的div,因此不会显示该div。
在第二个样式表中,您将添加一个position: absolute
在Javascript中,选中if( $("#thediv").css("position") == "absolute")
position: absolute;
仅适用于第二个样式表。
关于javascript - JavaScript测试CSS样式表是否与CSS3媒体查询一起应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8201030/