当我按照建议here使用availHeight
或height
时,我得到的解决方案与我的操作系统告诉我的不同。
我说1280身高,但在我的操作系统中我放了1690.为什么?
我没有浏览器缩放。
有没有办法获得实际的分辨率?
答案 0 :(得分:0)
我基本上写了自己的东西来解决这个问题(对于响应式网站非常方便)。我知道有插头存在,但Safari有点缺乏。
所以我通常只使用宽度来知道何时添加媒体查询,只需添加:
function EvaluateDivisors {
function main(String[] args) {
try {
long a = Long.parseLong(args[0]);
long b = Long.parseLong(args[1]);
int k = Integer.parseInt(args[2]);
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
System.out.println(solution(a, b, k));
} catch (IndexOutOfBoundsException e) {
error("Usage: EvaluateDivisors A B K");
} catch (NumberFormatException e) {
error("Error: arguments must be integers");
}
}
function solution(long a, long b, int k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
int result = 0;
for (long n = (long) Math.sqrt(a); n*n <= b; n++) {
int divisors = 3;
for (long m = 2; m < n && divisors <= k; m++) {
if (n*n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
function primeSolution(long a, long b, int k) {
int result = 0;
int n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
function prime(int n) {
for (int m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
function error(String message) {
console.log(message);
System.exit(1);
}
}
以下内容:
let viewportHeight = $(window).height();
然后是一些用于查看窗口大小的简单CSS:
$(window).resize(function(){
let viewportWidth = $(window).width();
let ems = viewportWidth / parseFloat($("body").css("font-size"));
$('#viewport').html(viewportWidth+" | "+ems);
$('#viewport-height').html(viewportHeight+" | "+ems); //add this for height
});
这从来没有让我失望,当你减少/增加浏览器大小以帮助进行媒体查询时,你可以逐像素地看到。
希望有帮助...