0

我想做这样的事情,但它不起作用

 window.onresize = center;

 function center() 
 {
      var x=window.innerWidth;
      x = x/2;
      document.getElementById("center_div").style.marginLeft = x;
 }

我该怎么做?

4

3 回答 3

1

您必须添加pxElement.style.marginLeft不接受数字。它应该是有效的 CSS 属性 ( margin-left) 值;它可以是10pxor5%auto;

document.getElementById("center_div").style.marginLeft = x + 'px';
于 2013-04-10T01:12:14.187 回答
1

您的代码很好,但缺少一件事。您必须在 X 变量之后加上“px”。换句话说,它应该是: document.getElementById("center_div").style.marginLeft = x+"px"; 否则,浏览器将不知道它的单位。

我在 jsfiddle 中做了一个示例,这将是一个工作示例。尝试一下。http://jsfiddle.net/TLPak/

PS。我已经更新了代码以在其中包含 window.onresize。(还有一些改进,考虑了 DIV 的宽度。)http://jsfiddle.net/TLPak/1/ 通过单击事件或窗口调整大小事件触发它都可以。希望它对你有一些帮助。

function center() {
    var x=window.innerWidth;    
    x = x/2;

    var y = document.getElementById("center_div").offsetWidth;
    y = y/2;

    document.getElementById("center_div").style.marginLeft = x - y + "px"; 
}

window.onresize = center;
于 2013-04-10T01:32:06.233 回答
0

我认为您正在寻找的是 css 属性margin: auto。随机示例(不是我的):http ://bluerobot.com/web/css/center1.html 。此外,你会想要width: 50%. 那是你要找的吗?让我知道,如果需要,我会更改答案。:)

于 2013-04-10T01:12:45.020 回答