在Javascript中增加CSS padding-top属性

时间:2009-10-21 16:18:47

标签: javascript css

我为div

定义了CSS
#myDiv
{
  padding-top: 20px,
  padding-bottom: 30px
}

在JS函数中,我想将padding-top的值增加10px

function DoStuff()
{
  var myDiv = document.getElementById('myDiv');
  //Increment by 10px. Which property to use and how? something like..
  //myDiv.style.paddingTop += 10px;
}

2 个答案:

答案 0 :(得分:6)

.style属性只能读取元素上定义的内联样式。它无法读取样式表中定义的样式。

您需要一个库来获取值,或使用类似(来自this question)的内容:

function getStyle(elem, name) {
    // J/S Pro Techniques p136
    if (elem.style[name]) {
        return elem.style[name];
    } else if (elem.currentStyle) {
        return elem.currentStyle[name];
    }
    else if (document.defaultView && document.defaultView.getComputedStyle) {
        name = name.replace(/([A-Z])/g, "-$1");
        name = name.toLowerCase();
        s = document.defaultView.getComputedStyle(elem, "");
        return s && s.getPropertyValue(name);
    } else {
        return null;
    }
}

然后您的代码变为:

var element = document.getElementById('myDiv'),
    padding = getStyle(element, 'paddingTop'); // eg "10px"

element.style.paddingTop = parseInt(padding, 10) + 10 + 'px';

参考文献:

答案 1 :(得分:1)

你应该使用jquery来做这类事情,因为大多数其他解决方案都不会与浏览器兼容,并且你会花费数天的时间来解决它。

function Dostuff()
{
    var currentPadding =  $('#myDiv').css('padding-top');
    $('#myDiv').css('padding-top', currentPadding + 1);
}

请参阅jquery.com了解更多信息。