2013-02-11 48 views
15

我在相對定位的容器內有絕對定位的文本塊。絕對定位的元素超出了其容器的右邊界。在絕對定位的容器內部保留正常的單詞包裝

問題是:文本不像平常一樣包裝;它打破過早,而不是擴大它的定義max-width

觀察到的行爲:

enter image description here

期望的行爲

enter image description here

HTML/CSSJSFIDDLE: http://jsfiddle.net/WmcjM/):

<style> 
.container { 
    position: relative; 
    width: 300px; 
    background: #ccc; 
    height: 100px; 
} 

.text { 
    position: absolute; 
    max-width: 150px; 
    left: 290px; 
    top: 10px; 
    background: lightblue; 
} 
</style> 

<div class="container"> 
    <div class="text">Lorem ipsum dolor sit amet</div> 
</div> 

注:出現達到預期的行爲,但不完全是我正在尋找一對夫婦的變化,包括:

  • .text定義min-width: 150px(中文本可能只是一個字,我不想對容器進行過大)
  • 定位.text。相對於文檔,而不是.container(它需要出現在容器旁的,即使在瀏覽器大小)
+0

您需要的一個,這些http://www.zazzle.com/css_is_awesome_mug-168716435071981928 – asawyer 2013-02-11 19:43:30

回答

12

試穿的.text

編輯使用position: relative;:也把它的絕對定位的包裝內與您的自定義最大寬度

CSS

.container { 
    position: relative; 
    width: 300px; 
    background: #ccc; 
    height: 300px; 
} 

.wrap_text { 
    position: absolute; 
    max-width: 200px; 
    top: 10px; 
} 

.text { 
    position: relative; 
    left: 290px; 
    background: lightblue; 
} 

而且HTML

<div class="container"> 
    <div class="wrap_text"> 
     <div class="text"> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
     </div> 
    </div> 
</div> 
6

變化的絕對位置相對,並在絕對定位的元素包裹的.text。

http://jsfiddle.net/WmcjM/4/

.container { 
    position: relative; 
    width: 300px; 
    background: #ccc; 
    height: 300px; 
} 

.text { 
    position: relative; 
    /*min-width: 200px;*/ 
    left: 290px; 
    background: lightblue; 
} 

.wrap { 
    position: absolute; 
    max-width: 200px; 
    top: 10px; 
} 
+0

有趣..爲什麼這項工作? 「位置:相對」元素在另一個「位置:相對」元素內的定義行爲是什麼? – Emmett 2013-02-11 19:53:49

+0

設置位置:絕對將元素從文檔結構的正常流中移除,因此它不知道該有多寬。 – 2013-02-11 19:56:21

+1

好吧,但是如果'.text'有'left:0'而不是'left:290px'(即當文本框沒有超過容器的邊界),它似乎「知道多寬」。 – Emmett 2013-02-11 20:00:40

相關問題