2009-07-09 43 views
13

Làm cách nào để căn chỉnh theo chiều dọc văn bản trong div được thả nổi? Ví dụ: Tôi có nội dung động với chiều cao cố định. nếu nội dung nhỏ hoặc lớn, nó phải tự động căn chỉnh theo chiều dọc.Làm cách nào để căn chỉnh văn bản theo chiều dọc?

Cảm ơn

+0

Vertically-align liên quan đến những gì? –

Trả lời

12

Các ô bảng là giải pháp dễ nhất.

Javascript là một thay thế (đo kích thước và kích thước văn bản của div, sau đó điều chỉnh padding hoặc lineheight hoặc bất kỳ thứ gì).

chỉnh sửa: Hoặc css tuyệt vời này:

CSS

div#container { 
    border: solid 1px; 
    height: 300px; 
} 

div#content { 
    border: solid 1px; 
} 

div#balance { 
    border: solid 1px; 
    /* gotta be 100% */ 
    height: 100%; 
} 

div.valign { 
    /* firefox 2 */ 
    display: -moz-inline-box; 
    /* everybody else */ 
    display: inline-block; 

    vertical-align: middle; 
} 

/* IE 6 and 7 hack */ 
html* div.valign { 
    display: inline; 
} 

HTML

<div id="container"> 
    <div id="balance" class="valign"></div> 
    <div id="content" class="valign"> 
     Blah blah blah blah<br/> 
     Blah blah blah blah<br/> 
     Blah blah blah blah<br/> 
     Blah blah blah blah<br/> 
     Blah blah blah blah 
    </div> 
</div> 

Được nghĩa để thực hiện một bài viết trên blog về vấn đề này trong một thời gian, tôi nghĩ rằng đó là thời gian.

11

Tôi biết điều này sẽ làm hỏng danh tiếng của tôi, nhưng ... sử dụng ô trong bảng. Bất kỳ giải pháp CSS trình duyệt chéo nào cho việc căn chỉnh theo chiều dọc sẽ khó gấp đôi để duy trì, lạc quan.

0

Bạn đã thử căn chỉnh dọc: giữa; ?

+1

Điều này không làm những gì bạn nghĩ về các yếu tố không có bảng hoặc nổi. Điều này sắp xếp các yếu tố nội tuyến lại với nhau. –

10
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div> 
+1

Không hoạt động trong IE6/IE7: ( – JerSchneid

+0

Không hoạt động trên các phần tử nổi – 0lukasz0

2

Tôi đã gặp vấn đề này trước đây. Tôi sẽ trích dẫn các chuyên gia vì vậy tôi không giả mạo điều này: "... đối tượng bên trong được đặt hoàn toàn bằng một nửa chiều cao của khu vực. Sau đó được nâng lên một nửa chiều cao của nó."

Điều này có thể được thực hiện với% thay vì pixel chính xác, trong trường hợp dữ liệu được tạo từ cơ sở dữ liệu và chiều cao thay đổi theo từng trang.

Nguồn: here

Demo: liên kết trên trang ở trên

Ở đây đi câu trả lời đầu tiên của tôi ...

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