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

CSS ルールを見ると#fastback、ピクセルの代わりにパーセンテージを使用していmargin-leftます。測定単位としてピクセルに変更します。

パーセンテージを測定単位として使用している場合、要素の左マージンは、この場合、ビューポートに対して移動します。

一方、ピクセルを使用している場合、ブラウザーのサイズが変更されても、余白は同じ場所にとどまります。

アップデート

解決策は、の幅を削除すること#containerです。次のリンクを参照してください。

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

コンテナの幅が 1336 ピクセルに設定され、 によって中央揃えされているため、最初のソリューションが機能しない理由margin: 0 auto。サイズ変更中にブラウザのビューポートの幅が 1336 ピクセルを超えると、#fastback要素が移動します。

于 2013-06-13T04:11:01.583 に答える