2013-04-26 50 views
11

Tôi có một yếu tố vị trí tuyệt đối với nội dung bên trong. Nó có thể là <h1> hoặc một vài thẻ <p>. Vì vậy, tôi không biết chiều cao của nội dung.Nội dung trung tâm ở vị trí tuyệt đối div

Làm cách nào để có thể theo chiều dọc ở giữa nội dung bên trong vị trí tuyệt đối div?

HTML:

<div id="absolute"> 
    <div class="centerd"> 
    <h1>helo</h1> 
    <span>hi again</span> 
    </div> 
</div> 

CSS:

#absolute { 
    position:absolute; 
    top:10px; 
    left:10px; 
    width:50%; 
    height:50%; 
    background:yellow; 
} 

.centerd { 
    display:table-cell; 
    vertical-align:middle; 
} 

Fiddle

Trả lời

11

nếu bạn thêm display:table để #absolute bạn div bạn sẽ nhận được những gì bạn muốn:

http://jsfiddle.net/3KTUM/2/

+0

này không tập trung các nội dung .. nó chỉ làm cho nội dung * bắt đầu * từ trung tâm –

+0

@ExplosionPills vẻ để tập trung các nội dung đối với tôi - hãy thử thêm nhiều nội dung hơn và bạn sẽ thấy nó vẫn thẳng đứng, không bắt đầu từ trung tâm. Bạn có thể nghĩ rằng nó bắt đầu ở trung tâm vì h1 sẽ có lớp đệm trên cùng tự nhiên đẩy nó xuống – Pete

2

Chỉ cần chắc div relative để absolute mẹ của nó và sử dụng text-align: center, như thế này:

.centerd { 
    position: relative; 
    width: 100%; 
    text-align: center; 
    /*display:table-cell; 
    vertical-align:middle;*/ 
} 

Xem example fiddle

1

sử dụng text-align: center hoặc trái: 50%

1

Điều này có thể được thực hiện với flexbox quá:

#absolute { 
    align-items: center; 
    display: flex; 
    justify-content: center; 
} 
0

ngang và dọc vị trí trung tuyệt đối.

.center { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50% , -50%); 
 
    -webkit-transform: translate(-50%, -50%); 
 
}
<div class="obj"> 
 
    <div class="center">Test</div> 
 
</div>

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