javascript - 有什么好的方法可以确定网页的 "actual content width"吗?

标签 javascript html screen-resolution

这是 StackOverflow 在我的(巨大)工作监视器上的样子:

Screenshot of StackOverflow

网站实际内容的两侧有很多空白

我知道大部分网站都是这样设计的——所以我在这里没有特别指出——但这正是我问这个问题的原因。我在想,如果我有一些可靠的方法(比如通过 JavaScript)来确定网站的“实际”宽度,那会非常好,然后我可以用它来编写一个快速脚本,自动扩展我的任何网站'浏览以填充我的显示器上的可用宽度。事实上,我觉得有些荒谬,有时我在阅读小文本之前仍然会眯着眼睛,然后才意识到/记住放大以利用我的大屏幕。

Zoomed-in screenshot of StackOverflow

啊……好多了。

怀疑这是可能的,至少通过一些试探法可以达到合理的程度,因为当我在浏览网页时双击屏幕时,我的 Android 手机似乎会做很多类似的事情.

最佳答案

这会做一些类似的事情。尽管可能会遗漏各种边缘情况。

// Assuming jQuery for simplicity
var drillIn = function(node) {
  var max = 0;
  var windowWidth = $(window).width();
  var result = 0;

  $(node).children().each(function() {
    var $this = $(this);
    if ($this.width() > max) {
      max = $this.width();
    }
  });

  if (0 < max && max < windowWidth) {
    return max;
  } else {
    $(node).children().each(function() {
      var childMax = drillIn(this);
      if (childMax > result) {
        result = childMax;
      }
    });
    return result;
  }
};

drillIn(document.body);

工作 fiddle :http://jsfiddle.net/bdL5b/1/

在 SO 上,我得到 960,这是正确的。基本上,它深入 DOM 树以找到最接近根的最宽节点,该节点不是 0 或窗口宽度。因为通常,靠近根节点的地方有一个容器节点,用于保存站点内容。通常。

但不确定您是否会获得 100% 可靠的解决方案。这是一件棘手的事情,因为有很多方法可以设计网站的样式。我敢打赌,像可怕地使用绝对定位这样疯狂的东西可能会成为你的屁股上的一个严重刺痛。

关于javascript - 有什么好的方法可以确定网页的 "actual content width"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751185/

相关文章:

android - 有人可以帮我想象这个关于不同屏幕尺寸的例子吗?

javascript - 通过 style 标签使用 JQuery 修改 html 内容

javascript - 仅通过带有 underscore.js 的某些字段在对象数组之间进行交集和等于

HTML 和 Flexbox 结构未按预期工作

html - 如何增加图像大小但不增加其所在容器的大小

android - 如何调整屏幕的纵向和横向模式,以便可以看到所有 UI 元素?

wpf - 为什么 1920 与设备无关的单元不是具有 96 DPI 的 1920 像素?

javascript - 将 Twilio 客户端设置为离线

javascript - ExternalInterface.addCallback as3 不起作用

html - 为什么绝对位置给 anchor 标签 100% 的容器高度?