2013-02-11 2 views
15

Ich habe einen absolut positionierten Block des Textes innerhalb eines verhältnismäßig positionierten Behälters. Das absolut positionierte Element überschreitet die rechte Begrenzung seines Containers.Konservieren Sie das normale Wort, das innerhalb absolut eingestellten Behälters einwickelt

Das Problem ist: der Text wickelt sich nicht wie normal; es ist zu früh und nicht zu brechen, als sein max-width definiert erweitert:

Beobachtet Verhalten:

enter image description here

gewünschtes Verhalten

enter image description here

HTML/CSS (012.):

<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> 

Hinweis: Ein paar Änderungen, die das gewünschte Verhalten zu erreichen scheinen, die aber nicht ganz das, was ich suche, sind:

  • min-width: 150px auf .text definieren (die Text könnte nur ein Wort sein, und ich möchte nicht, dass der Container übergroß wird)
  • Positionierung .text. Versuchen
+0

Sie müssen eine dieser http://www.zazzle.com/css_is_awesome_mug-168716435071981928 – asawyer

Antwort

12

relativ zu dokumentieren, anstatt zu .container (es braucht neben den Behälter erscheinen, auch wenn der Browser geändert wird) mit position: relative; auf .text

EDIT: Auch legt es in einem absoluten positionierter Wrapper mit Ihrem benutzerdefinierten max-width

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; 
} 

Und 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

Änderung der Absolutposition relativ, und wickeln .text in absolut positioniertes Element.

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

Interessante .. warum funktionierts? Was ist das definierte Verhalten für ein 'position: relative' Element in einem anderen' position: relative' Element? – Emmett

+0

Einstellung Position: absolute entfernt das Element aus dem normalen Fluss der Dokumentstruktur, daher weiß es nicht, wie breit zu sein. –

+1

Richtig, aber es scheint zu wissen, wie breit zu sein, wenn '.text'' links: 0' statt 'links: 290px' hat (d. H. Wenn das Textfeld die Grenze des Containers nicht überschreitet). – Emmett

Verwandte Themen