2013-02-11 27 views
15

Tôi có một khối văn bản được định vị hoàn toàn bên trong một thùng chứa tương đối định vị. Phần tử được định vị hoàn toàn vượt quá ranh giới bên phải của vùng chứa của nó.Bảo quản gói từ bình thường bên trong thùng chứa hoàn toàn định vị

Vấn đề là: văn bản không được gói như bình thường; nó phá vỡ sớm hơn là mở rộng để nó được xác định max-width:

hành vi quan sát được:

enter image description here

hành vi mong muốn

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> 

Lưu ý: Một vài thay đổi mà xuất hiện để đạt được các hành vi mong muốn, nhưng mà không khá gì tôi đang tìm kiếm, bao gồm:

  • định min-width: 150px trên .text (các văn bản có thể chỉ là một từ và tôi không muốn vùng chứa quá khổ)
  • định vị .text. liên quan đến tài liệu, chứ không phải để .container (nó cần phải xuất hiện bên cạnh các thùng chứa, thậm chí khi trình duyệt được thay đổi kích cỡ)
+0

Bạn cần một trong những http://www.zazzle.com/css_is_awesome_mug-168716435071981928 – asawyer

Trả lời

12

Hãy thử sử dụng position: relative; trên .text

EDIT: Cũng đặt nó bên trong một wrapper vị trí tuyệt đối với tùy chỉnh max-width của bạn

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

thay đổi vị trí tuyệt đối thành tương đối và bọc .text trong phần tử được định vị hoàn toàn.

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

Thú vị .. tại sao công việc này? Hành vi được xác định cho phần tử 'position: relative' bên trong phần tử' position: relative' khác là gì? – Emmett

+0

vị trí thiết lập: tuyệt đối loại bỏ các phần tử từ dòng chảy bình thường của cấu trúc tài liệu, do đó nó không biết làm thế nào rộng được. –

+1

Phải, nhưng dường như "biết cách rộng" nếu '.text' có' left: 0' thay vì 'left: 290px' (tức là khi hộp văn bản không vượt quá ranh giới của vùng chứa). – Emmett

Các vấn đề liên quan