2016-10-10 27 views
0

相鄰的div我想水平對準的是由其他兩個div的一個div:水平對齊兩個左面向文本

  • 一個從左邊,將包含一個圖像。
  • 其他從右側,該div將包含文本,對齊到左側

對齊將相對於一個容器,並且居中的div應該展開到最大寬度(而不是整個容器的寬度)。

This pen介紹了我所用表格佈局

這是HTML

<div class="container"> 
    <div class="centered"> 
    <div class="left"> 
     left text 
    </div> 
    <div class="right"> 
     very very very long right text 
    </div>  
    </div> 
</diV> 

而CSS

.container { 
    width: 200px; 
    background-color: red; 
} 

.centered { 
    display: table; 
    margin: 0 auto; 
    max-width: 100px; 
} 

.left { 
    background-color: green; 
    display: table-cell; 
    vertical-align: middle; 
} 

.right { 
    background-color: blue; 
    display: table-cell; 
    vertical-align: middle; 
} 

enter image description here

正如你所看到的事,右邊的空間藍色區域是居中div(綠色+藍色區域)的一部分,但它使div的內容不被居中。我想要的是藍色區域取最長的線條的寬度

+0

使我明白了,你想要的藍色區域是動態的,取決於它裏面的文本的長度變化幅度 –

+1

*「我想要的是藍色區域取最長線條的寬度」* - 您無法這樣做......這不是線框模型的工作方式。 –

+0

相關 - http://stackoverflow.com/questions/34995740/css-when-inline-block-elements-line-break-parent-wrapper-does-not-fit-new-width –

回答

0

如果您希望藍色區域隨其中的文本動態增長,同時保留內容的居中區域,則以下內容你在找什麼?

.container { 
 
    width: 200px; 
 
    background-color: red; 
 
    padding:0 20px; 
 
} 
 

 
.centered { 
 
    display: table; 
 
    margin: 0 auto; 
 
    max-width: 100px; 
 
} 
 

 
.left { 
 
    background-color: green; 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    color:#fff; 
 
} 
 

 
.right { 
 
    background-color: blue; 
 
    display: block; 
 
    vertical-align: middle; 
 
    width:inherit; 
 
    color:#fff; 
 
}
<div class="container"> 
 
    <div class="centered"> 
 
    <div class="left"> 
 
     left text 
 
    </div> 
 
    <div class="right"> 
 
     very very very long right text very very very long right textvery very very long right textvery very very long right textvery very very long right textvery very very long right text 
 
    </div>  
 
    </div> 
 
</div>

+0

nope,你刪除了居中div寬度的限制(當它把100%)。我希望它增長到一定的大小,然後打破正確的文本行。 –

+0

我已經更新了上面的代碼來模仿你的codepen。讓我知道我是否正確理解你。 – Cutter

+0

所以,現在你再現了這個問題:藍盒子右邊的空間 –