2012-10-09 32 views
1

我一直使用margin来将浮动div移动到父div中的正确位置(比如标头div内的logo div)。这一直有效,但这意味着你必须玩弄其他元素的高度,否则会影响到布局的其余部分。使用相对于位置元素的边距或位置

我今天发现了另一种方法,那就是让logo div位置:relative;然后使用示例top:20px;移动元素,这似乎不会影响布局。

我不想在不知道可能会有其他影响的情况下适应这一点,那么任何人都可以指出上述两种方法中的常见缺陷,或者可能提出更好的解决方案?

// Sample HTML 
    <div id='header'> 
     <div id='logo'> 
       LOGO GOES HERE 
     </div>  
    </div> 

    // Sample CSS 
    #header { 
     height: 100px; 
    } 

    // Version 1 
    #logo { 
     float: left; 
     margin-top: 20px; 
    } 

    // Version 2 
    #logo { 
     float: left; 
     position: relative; 
     top: 20px; 
    } 
+0

'位置:相对'不会移动任何其他元素,因为浏览器'假装'该元素仍然存在,不动,原来是在哪里。 –

回答

1

From Mozilla developer:

相对 铺陈所有元素,就好像元件没有 定位,并且然后调整元件的位置,而不改变 布局(并且因此离开所述间隙元素,它会有 它没有被定位)。位置的影响:相对于 表 - * - 组,表行,表列,表格单元和表标题 元素是未定义的。

我希望这能回答你的问题。

有时它可能是正确的使用,其他时间不适用。这真的取决于你的布局,如果你想做出快速响应的设计,那么可能会更好。

在你的情况下,你有一个固定的标题高度,所以你可以使用相对。我认为使用保证金是一种更常见的做法。我只知道有关移动设备上position: fixed的问题。

You can learn more about CSS and positioning here.

1

在现在的位置是绝对的,修复时u使用顶部或底部或左或右,你必须不使用浮动,您必须为其父母使用此款式

postion:relative; 

最好的问候

相关问题