与mootools的负边际

时间:2012-01-24 23:05:31

标签: javascript mootools

我想获得当前用户浏览器的大小,并根据大小的一半来居中标题。 (使用Mootools)

CSS

#header{position:absolute; left:50%; }

的Javascript

var width = $(document.body).getStyle('width');
var margin = width/2;

$('header').setStyles({'width': width, 'margin-left': -(margin.toInt())});

谢谢!

1 个答案:

答案 0 :(得分:2)

你的问题是setStyle对于某些属性可能需要一个数字(并将单位添加到它),或者它只会使用你给它的字符串。由于你给它一个字符串,通过预先'-'+...它将创建没有单位的CSS margin-left:-34。您可以给它一个数字,也可以自己添加单位。此外,在除以2之前,您需要确保width是一个数字(因为getStyle将返回带有'px'的字符串)

var width = $(document.body).getStyle('width');
var margin = width.toInt()/2;

$('header').setStyle('margin-left', -(margin.toInt()));
// or
$('header').setStyle('margin-left', '-'+margin.toInt()+'px');

在你回答了我上面的问题之后,我会说如果#header应该位于屏幕顶部,那么你可以完成这个w / o javascript或负边距(全宽)(和不在相对定位的元素内):

#header {position:absolute; top:0px; left:0px; width:100%;}