2012-01-19 2 views
1

この画面を作成しようとしますが、右側のテキストフィールドは上に移動します。ここで浮動小数点数と組み合わせた負の余白 - 上端が期待通りに機能しない(Firefoxのみ)

Mockup

working exampleで、ここに私のコードです:

HTML:

<div class="TileMenu"> 
    <div class="TileRow"> 
     <div class="LeftTile"> 
      <div class="TileImage"> 
       <img src="http://page.mi.fu-berlin.de/krudolph/stuff/stackoverflow.png" title="Castle" alt="Castle" /> 
      </div> 
      <div class="TileText"> 
       <p>Text1</p> 
      </div> 
     </div> 
     <div class="RightTile"> 
      <div class="TileImage"> 
       <img src="http://page.mi.fu-berlin.de/krudolph/stuff/stackoverflow.png" title="House" alt="House" /> 
      </div> 
      <div class="TileText"> 
       <p>Text 2</p> 
      </div> 
     </div> 
    </div> 
    <div class="TileRow"> 
     <div class="LeftTile"> 
      <div class="TileImage"> 
       <img src="http://page.mi.fu-berlin.de/krudolph/stuff/stackoverflow.png" title="Satellite" alt="Satellite" /> 
      </div> 
      <div class="TileText"> 
       <p>Text 3</p> 
      </div> 
     </div> 
     <div class="RightTile"> 
      <div class="TileImage"> 
       <img src="http://page.mi.fu-berlin.de/krudolph/stuff/stackoverflow.png" title="Palace" alt="Palace" /> 
      </div> 
      <div class="TileText"> 
       <p>Text 4</p> 
      </div> 
     </div> 
    </div> 
</div> 

CSS:

.TileRow{ 
    padding: 5px 0px; 
    clear: both; 
} 

.LeftTile{ 
    width: 49.7%; 
    float: left; 
    /*height: 340px; 
    overflow: hidden;*/ 
} 

.LeftTile img{ 
    width: 100%; 
} 

.RightTile{ 
    width: 49.7%; 
    float: right; 
    /*height: 340px; 
    overflow: hidden;*/ 
} 

.RightTile img{ 
    width: 100%; 
    float: right; 
} 

.TileImage{ 
    width: 49.7%; 
} 

.TileText{ 
    position: relative; 
    margin-top: -80px; 
    max-width: 150px; 
    height: 50px; 
    background-color: #FFF; 
    color: #57abe9; 
    padding-left: 10px; 
    display: table; 
} 

.TileText p{ 
    display: table-cell; 
    vertical-align: middle; 
    font-size: 1.3em; 
} 

前にtop:-80px;を使用しようとしましたが、テキストフィールドのために各行間に大きな空白がありました。だから私はmargin-top: -80px;を使用していますが、これはFirefoxでのみ動作するようです。

+1

すみませんが、私は、問題が何であるかが表示されませんか? – Niklas

+0

IE9、Chrome、Opera、Safariでサンプルを表示しようとしましたか? Text2とText4は上に移動します。 – testing

答えて

3

位置について:絶対?

http://jsfiddle.net/KjakS/8/

+1

+1 - これは 'position:absolute'を使用する場合の完全な例です。コード例を答えに移す必要があります。 –

+0

私は以前に 'position:absolute'を使ってみました(' TileImage'と 'TileText'で)。しかし、私のレイアウトよりも破壊され、私は 'トップ'を使用していませんでした。代わりに 'RigthTile'では' position:relative'を使い、 'TileText'と' top'では 'position:absolute'と組み合わせて' LeftTile'で使いました。おそらくあなたは私にこのソリューションをより詳しく説明したいと思いますか? – testing

+1

'position:absolute'は、最も近い位置にあるボックス内に相対的に配置されます。だから親の相対位置を保持するためには、親要素に 'static'以外の位置を与える必要があります(デフォルト)。この例では、「位置:相対」を与えて、文書の流れに保持します。あなたはボックスの底に近く配置されているので、 'top'ではなく' bottom'を使います。 –

関連する問題