jQuery边距取决于元素宽度

时间:2013-02-27 11:31:23

标签: javascript jquery html

我想使用jquery将css样式应用于具有固定宽度的元素。

我想让它的margin-left为(减去)元素的宽度除以2。

我该怎么做?

这是css:

.top_middle{
    width: 33%;
    overflow: hidden;
    height: 49%;
    position: absolute;
}

我试过这样的事情,但它不起作用:

    var width = $('.top_middle').width()

    $('.top_middle').css(function(){
        'margin-left' : - "width" / 2
    })

3 个答案:

答案 0 :(得分:1)

在你的函数中,你有“”标记的宽度,这意味着它将作为一个字符串运行而不是拿起变量试试

编辑:您的函数似乎错误的jquery语法尝试

    var width = $('.top_middle').width() / 2;
$('.top_middle').css('margin-left',-width);

请参阅此处示例http://jsfiddle.net/domjgreen/ydEwx/2/

答案 1 :(得分:1)

在你的代码中,你试图将字符串“width”除以2,这不是你想要的。您希望将变量宽度除以2,如下所示:

$('.top_middle').css({
    marginLeft : - (width / 2) + 'px'
});

此外,您正在将函数传递给css(),您应该传递一个对象或一对与css属性相对应的参数以及要为其设置的值。

答案 2 :(得分:0)

试试这个

var halfwidth = $('.top_middle').width()/2;
$('.top_middle').css({'margin-left' : "-" + halfwidth });