【问题标题】:% based height, turned dynamicly into pixels% 基于高度,动态转换为像素
【发布时间】:2013-02-12 21:54:54
【问题描述】:

我正在寻找一种简单的方法来执行以下操作:

我正在建立一个网站,我有一个 .content 类,它的高度是 = height:auto;并且它的宽度=宽度:80%; 但是当我缩放它时,我不希望 div 垂直变成“TOO”位。

问题:

是否有一个 javascript 'if' 语句来检查 div 的高度,然后能够放置 overflow-y:scroll;如果元素太大,比如垂直 400px?

请注意,div 在 css 中没有高度。它设置为自动。 谢谢

【问题讨论】:

  • .. 只需设置一个最小高度min-height: 400px; ?
  • 你也可以在css中设置min-heightoverflow-y
  • 要点是滚动条对我的设计来说很丑,所以我希望滚动条只有在 div 变得太大时才会出现。我假设你的意思是最大高度,对吧?
  • 对不起 - 是的。 max-height:400pxoverflow-y:auto
  • 当然,自动。抱歉,我之前没有看到这个,这是完美的答案。 :)

标签: javascript jquery css responsive-design percentage


【解决方案1】:

如果你不想通过 CSS 来做,那么你正在寻找的 jQuery 函数是:

$("#element").outerHeight() and $("#element").outerWidth()

它们返回元素的计算高度和宽度,而不是显式设置的高度和宽度。
所以,

if ($("#element").outerWidth() > 400) {
    $("#element").width(400);
    $("#element").css('overflow-y', 'scroll');
}

【讨论】:

  • 看起来不错。但实际上它在我的代码中不起作用,我是否必须确定它何时检查当前高度?
  • 试试 console.log ($('#element').outerWidth()) 看看输出是什么
  • 记得用你的元素的实际名称替换#element
  • 我刚刚将 .css('width', 400) 替换为 .width(400)。现在试试,让我知道
  • 希望可以,但我没有使用 firebug 调试的经验
【解决方案2】:

如果你要使用 jQuery,添加到 @ieeehh,首先包含 jQuery。然后假设元素的 id 为#element

$(function(){
      if ($("#element").outerHeight() > 400) {
           $("#element").width(400).css('overflow-y', 'scroll');
      }
});

【讨论】:

  • 我知道如何在某种程度上使用 jquery :) 但不幸的是,这并不能完成这项工作。当它与宽度无关时,你一直说outerWidth是故意的吗?
猜你喜欢
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
相关资源
最近更新 更多