jQuery css('padding') - Firefox 的问题

Posted

技术标签:

【中文标题】jQuery css(\'padding\') - Firefox 的问题【英文标题】:jQuery css('padding') - Issue with FirefoxjQuery css('padding') - Firefox 的问题 【发布时间】:2013-03-07 23:52:42 【问题描述】:

当您尝试获取元素的 padding 时,似乎 Firefox(至少 v19.0.2)与 jQuery css() 函数存在问题。

当我使用.css('padding-left') 时没有问题,但最好写一行而不是 4 行,尤其是像这样的简单功能。

这是一个显示我的问题的示例,请比较 Chrome/Firefox 的行为:

$('#log').append(
    'padding : '+        $('#sample').css('padding')+'\n'+
    'padding-top : '+    $('#sample').css('padding-top')+'\n'+
    'padding-bottom : '+ $('#sample').css('padding-bottom')+'\n'+
    'padding-left : '+   $('#sample').css('padding-left')+'\n'+
    'padding-right : '+  $('#sample').css('padding-right')+'\n'
);
#sample 
    border: 1px solid black;
    padding: 8px;
    margin: 10px;

#log 
    padding: 8px;
    margin: 10px;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="sample">Lorem ipsum</div>
<textarea id="log" rows="10" cols="50"></textarea>

我错过了什么吗?或者是否有一种解决方法可以在不调用 4 个函数的情况下检索元素的 padding

谢谢。

【问题讨论】:

【参考方案1】:

见bug #13421(虽然这实际上不是一个错误)。

css() 的文档说:

简写 CSS 属性(例如 marginbackgroundborder)不是 支持的。例如,如果要检索渲染的边距, 使用:$(elem).css('marginTop')$(elem).css('marginRight'),等等 开。

padding 就是这样一个属性,所以你确实必须使用paddingLeftpaddingRight 等。

【讨论】:

以上是关于jQuery css('padding') - Firefox 的问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery拖拽功能

jquery给div添加样式_百度经验1一c

jQuery大小调整工具

jQuery 将 padding-top 计算为 px 中的整数

jQuery 在 f:ajax 之后应用 css 类

jquery 移除导入的css