2012-01-19 68 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

我试图在'TileImage'和'TileText'之前使用'position:absolute'。但是,比我的布局被破坏,我没有使用'顶部'。你在'TileText'和'top'上改用'position:relative'在'RigthTile'和'LeftTile'上'position:absolute'。也许你想更详细地向我解释解决方案? – testing

+1

'position:absolute'被放置在最近的定位框内。因此,为了保持它相对于它的直接父对象,你必须给父对象一个“静态”(默认)以外的位置。我们在这个例子中给它定位:relative,这样它就保存在文档的流程中。我也会使用'bottom'而不是'top',因为你的位置更接近盒子的底部。 –

相关问题