2012-01-19 2 views
1

이 화면을 만들려고하지만 오른쪽의 텍스트 입력란이 위로 이동합니다. 여기float와 조합하여 음수 여백 - 위쪽이 예상대로 작동하지 않습니다 (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로 예제를 보려고 했습니까? 텍스트 2와 텍스트 4는 위에 이동됩니다. – testing

답변

3
+1

+1 - 이것은 'position : absolute'를 사용할 때의 완벽한 예입니다. 코드 예제를 대답으로 옮겨야합니다. –

+0

이전에'position : absolute'를 사용하려고했습니다 ('TileImage'와'TileText'에서). 그러나 내 레이아웃보다 파괴되었고 나는'톱 '을 사용하지 않았다. 대신에'RigthTile'에'position : relative'를 쓰고'TileText'와'top'에'position : absolute'를 조합하여'LeftTile'에 사용했습니다. 아마도이 솔루션을 나에게 더 자세히 설명하고 싶습니까? – testing

+1

'position : absolute'는 가장 가까운 위치에있는 상자 안에 상대적으로 배치됩니다. 그러므로 직접적인 부모와의 관계를 유지하려면 부모 요소에'static' (기본값)이 아닌 다른 위치를 주어야합니다. 이 예제에서는 문서의 흐름에 유지되도록 '위치 : 상대적'을 지정합니다. 상자의 바닥에 더 가까이 위치하기 때문에'top'보다는'bottom'을 사용합니다. –

관련 문제