这是此问题的后续问题:Get the device width in javascript

我想要做的是在JavaScript中获得@media (max-width: 600px)的等效CSS。

accepted answer说要执行以下操作:

var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;

那还正确吗?它适用于所有设备吗?

如果正确,检查(window.innerWidth > 0)有什么意义?

我想知道它是否仍然有效。如果您查看答案的最后评论(有6票赞成票),则会显示:

最佳答案

从您的问题看来,您正在询问以下内容(这是一个简单的答案,但我认为这是您要的内容):

var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;

等效于:
var width;
if (window.innerWidth > 0)
{
    width = window.innerWidth;
}
else
{
    width = screen.width;
}

要么:
var width = screen.width;
if (window.innerWidth > 0)
{
    width = window.innerWidth;
}

他们都做同样的事情...

从下面的评论中,您可能需要以下jsFiddle:
(显示“window.innerWidth”是您想要的(包含元素的大小)-但某些浏览器不支持它-因此“screen.width”成为后备内容,可能不正确,因为它是整个宽度窗口,而不仅仅是包含元素)

var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
$('#divOutput').html('The width is:' + width + 'px <br>' +
                     'window.innerWidth = ' + window.innerWidth + 'px & <br>' +
                     'screen.width = ' + screen.width + 'px');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="divOutput"></div>


如果那没有帮助,也许看看:
window.innerWidth can't work on IE7. How to fix via JS and jQuery?

09-27 16:29