2014-01-05 219 views
1

我有以下example如何垂直對齊div?

<div class="container"> 
    <div class="left"></div> 
    <div class="right"> 
    <span class="number">1</span> 
    <span class="number">2</span> 
    </div> 
</div> 

正如你可以在代碼中沒有垂直對齊見左上格:enter image description here

但如果我刪除浮動:右則左格被垂直排列好: example enter image description here

請幫助我如何使垂直對齊左div與正確的浮動右div?

編輯:你能否提供一個沒有填充,邊距,頂部,左等的解決方案?

+0

您應該在問題中包含您的CSS代碼。沒有它,問題就不是真的。 –

+0

很多答案在這裏,我希望其中一個爲你工作! – lharby

回答

0

你不能,因爲它是浮動的。你必須手動爲左邊的div分配正確的margin,爲右邊的div分配line-height,heightmargin(或者使用絕對/相對定位,我儘可能避免)。像這樣:

.container { 
    width: 100px; 
    background: #e7e7e7; 
    height: 20px; 
} 

.left { 
    float: left; 
    width: 10px; 
    height: 10px; 
    margin: 5px 0; 
    background: red; 
} 

.right { 
    float:right; 
    height: 16px; 
    line-height: 16px; 
    margin: 2px 0; 
} 

另外,如果你不想分配height屬性容器類,你將不得不使用clear: both最後一個浮動元素後,以確保容器將調整到合適的高度。

0

嘗試:

HTML:

<div class="left"> 
    <span class="bullet"></span> 
</div> 

CSS:

.bullet { 
    width:10px; 
    height:10px; 
    background: red; 
    display: inline-block; 
    vertical-align: bottom; 
} 
.left { 
    float:left; 
} 
.right { 
    float:right; 
} 

DEMO here.

0

基本上,您只需設置一個行高到您的權利股利。

所以它看起來像這樣:

.right { 
    display: inline-block; 
    padding: 5px; 
    float: right; 
    line-height: 15px; 
} 

http://jsbin.com/ohonaYu/9/

0

使用絕對和相對定位:

.container { 
    width: 100px; 
    background: #e7e7e7; 
    overflow:auto; 
    position: relative; 
    height: 30px; 
} 

.left { 
    width:10px; 
    height:10px; 
    background: red; 
    position: absolute; 
    left: 0; 
    bottom: 10px; 
} 

.right { 
    position: absolute; 
    right: 0; 
    bottom: 0; 
    padding: 5px; 
} 

例子:http://jsbin.com/ohonaYu/14/edit

0

使用 '靈活的盒子佈局模塊' 做這件事。這是簡單和最佳解決方案。對於完整的stackoverflow後和codpen Go Here

<div class="center"> 
     <div> 
      <h4> 
        I am at center 
      </h4> 
     </div> 
</div> 


.center { 
     /*this is for styling */ 
     height: 100px; 
     margin: 1em; 
     color:#fff; 
     background: #9f5bd0; 

     /*you just have to use this */ 
     display: flex; 
     justify-content:center; 
     align-items:center; 
}