2012-01-04 32 views
5

Tôi đang cố gắng tìm ra cách để theo chiều dọc đặt giữa một danh sách không theo thứ tự trong một div. Tôi tìm thấy một số cách để làm điều này, tuy nhiên các thẻ li trong thẻ ul của tôi có mã PHP trong đó nhận văn bản từ cơ sở dữ liệu và điều này làm cho độ dài của văn bản trong các thẻ li thay đổi theo chiều dài đáng kể. div của tôi có chiều cao cố định và chiều rộng.Làm cách nào tôi có thể căn giữa danh sách không có thứ tự với nội dung động trong div?

Tôi có thể định vị theo chiều dọc danh sách không theo thứ tự theo chiều dọc để nó luôn được căn chỉnh theo chiều dọc trong div này?

Trả lời

7

Nếu bạn đang cố gắng tập trung theo chiều ngang, đây là một chút mã mà sẽ làm việc cho bất kỳ chiều dài:

Preview: http://jsfiddle.net/Wexcode/6UtFz/

HTML:

<div> 
    <ul> 
     <li><a href="#">Element 1</a></li> 
     <li><a href="#">Element 2</a></li> 
     <li><a href="#">Element 3</a></li> 
     <li><a href="#">Element 4</a></li> 
    </ul> 
</div> 

CSS:

div { overflow: hidden; } 
ul { 
    position: relative; 
    float: left; 
    left: 50%; 
    padding: 0; 
    list-style: none; } 
li { 
    position: relative; 
    float: left; 
    right: 50%; 
    margin: 0 5px; } 

Để căn giữa, chỉ cần tận dụng thuộc tính vertical-align.
Xem: http://jsfiddle.net/Wexcode/fK793/

+0

Perfect! Mã đó đã làm chính xác những gì tôi cần. Cảm ơn bạn. – Charlie

+1

Câu trả lời tuyệt vời Wex! Tôi ước tôi có thể chấp nhận câu trả lời của bạn, vì có vẻ như Charlie không bao giờ quay lại. – Arel

0

Nó khá đơn giản. Chỉ cần sử dụng display:table; cho div cha và display:table-cell;vertical-align:middle; cho trẻ.

Fiddle: https://jsfiddle.net/fzfa312m/

div { 
 
    background: #f2f2f2; 
 
    width: 300px; 
 
    height: 300px; 
 
    display:table; } 
 

 
ul { 
 
    vertical-align: middle; 
 
    display: table-cell; }
<div> 
 
    <ul> 
 
     <li><a href="#">Element 1</a></li> 
 
     <li><a href="#">Element 2</a></li> 
 
     <li><a href="#">Element 3</a></li> 
 
     <li><a href="#">Element 4</a></li> 
 
    </ul> 
 
</div>

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