【问题标题】:Safari returning wrong CSS value in jQuerySafari 在 jQuery 中返回错误的 CSS 值
【发布时间】:2011-05-22 22:07:32
【问题描述】:

我正在尝试将<select> 元素替换为使用jQuery 完美匹配的<div>。不幸的是,浏览器都争论对象的实际宽度/高度,所以我有它,所以你需要手动输入高度。但是,我希望您输入的高度包含填充高度,因此在设置 div 的高度时 - 我使用了此代码

$(divObject).height(options.height - $(this)
  .css("padding-top")
    .replace("px", "") - $(this)
      .css("padding-bottom")
        .replace("px", ""))

其中$(this)<select> 元素。

这适用于所有浏览器...除了 Safari。 Safari 以某种方式决定,即使我明确地将 padding-top 和 padding-bottom 设置为 5px - 实际值为 2px。

在这方面跨浏览器兼容真的让我无计可施。任何帮助将不胜感激:(

【问题讨论】:

  • 当您在开发者控制台中检查元素时,它是否也显示为具有错误的填充大小?
  • 您也可能需要阅读您的问题;它的某些部分没有任何意义(“我正在尝试使用与它完美匹配的元素”......嗯?)
  • 是的 - 它们在 Safari 控制台中显示,具有 2px 的填充。但是我的测试页面非常简单,我所说的任何内容都不会让它认为我的意思是 2px。是的,抱歉,我有 HTML 元素 - 我没有意识到它们被省略了。

标签: javascript jquery css safari


【解决方案1】:

也许你应该使用jQuery.outerHeight

【讨论】:

  • 那么你可以得到高度,但是(我认为)他试图设置高度 - 你不能那样做使用“.outerHeight()”。他必须将其设置为某个试验值,获得外部高度,然后适当地调整到所需的高度。
  • @Pointy:如果您根据jQuers.height 设置元素宽度,您可以使用jQuery.outerHeight 来验证真实 外部高度,并在需要时更正元素高度。
  • 实际上这是我的意思是浏览器对此感到厌烦。不同的浏览器返回给我的高度不同
  • @Stephen Cook:你试过jQuery.outerHeight 函数吗?如果你通过 gebugger 你会看到jQuery.outerHeight 的浏览器独立代码不是那么容易,但在我的测试中它运行良好。如果您发现问题,最好发布可用于重现问题的代码。 (当然包括 HTML 代码片段)。最好的代码是jsfiddle.net
  • jsfiddle.net/MinatureCookie/CLTZh/1 - 我认为问题正如 Pointy 指出的那样,Safari 实际上将我的填充设置为 2px,尽管它被设置为 5px...
猜你喜欢
  • 2012-08-28
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 2012-05-22
  • 2015-12-26
  • 2019-06-18
  • 2013-02-17
  • 1970-01-01
相关资源
最近更新 更多