1

我有以下html:

<body>
    <h1>Something</h1>
    <img id="myid" src='images/bigimage.png'/>
    <div id="container">
      <div id="fast-back">
        <p class="big-font">SOMETHING</p>
        <p class="small-font">SOMEThiNG ELSE</p>
      </div>
    </div>
</body> 

它的CCS是:

html {
        overflow-x: hidden;
      }

      body {
        margin: 0;
        padding: 0;
        background: url(images/body-background.png) top no-repeat;
        min-height: 860px;
        height: 860px;
      }

      h1 {
        margin: 0;
        padding: 0;
        position: absolute;
        color: white;
        visibility: hidden;
      }
#container {
        margin: 0 auto;
        padding: 0;
        position: relative;
        min-width: 1336px;
        height: 860px;
        width: 1336px;
      }
#myid{
        position: absolute;
        left: 50%;
        right: 50%;
        margin-left: -1280px;
        margin-right: -1280px;
        z-index: 1004;
      }
#fast-back {
        position: relative;
        margin-left: 15%;  /*it moves even using pixel*/
        top: 272px;
        z-index: 99999;
        text-align: center;
        width: 126px;
      }

但是,当我调整浏览器窗口的大小时,“快退” div 会向右移动。

我怎样才能防止这种行为?

谢谢!

4

1 回答 1

2

查看#fastbackCSS 规则,您使用的是百分比而不是margin-left. 将其更改为像素作为度量单位。

如果您使用百分比作为度量单位,则在您的情况下,元素的左边距将相对于视口移动。

另一方面,如果您使用像素,即使调整了浏览器的大小,边距也会保持在同一位置。

更新

解决方案是删除#container. 请参阅以下链接。

http://jsfiddle.net/jlratwil/LB8rf/1/

第一种解决方案不起作用的原因是容器的宽度设置为 1336 像素并通过margin: 0 auto. 如果在调整大小期间浏览器视口宽度超过 1336 像素,则#fastback元素将移动。

于 2013-06-13T04:11:01.583 回答