7
Tôi đang cố gắng tạo phần tử hình vuông, sẽ có văn bản được canh giữa theo chiều dọc và chiều ngang. Ngoài ra, toàn bộ diện tích của hình vuông phải là một liên kết. Đây là HTML của tôi:Làm cách nào để căn giữa văn bản trong phần tử div?
<div class="w1h1 medium">
<a class="userLink" target="_blank" href="Fancybox.aspx">
<table style="width: 100%; height: 100%">
<tr style="vertical-align: central">
<td style="text-align: center; font-weight: bold;">
text in the middle
</td>
</tr>
</table>
</a>
</div>
Và đây là CSS của tôi:
div.w1h1 {
width: 150px;
height: 150px;
}
.medium {
background-color: #06849b;
color: white;
font-family: sans-serif;
}
a.userLink
{
width: 150px;
height: 150px;
display: table;
color: #FFFFFF;
text-decoration: none;
}
Nó hoạt động trong Chrome và Firefox, nhưng không phải trong trình duyệt Internet Explorer. Trong IE, văn bản nằm ở trên cùng của hình vuông, không phải ở giữa. Bạn có thể giúp tôi với điều này?
tôi vừa tạo sân chơi ở đây: http://jsfiddle.net/Tschareck/yfnnm/
thay đổi '
Đã thử điều đó. Điều đó không thay đổi vị trí văn bản. – Tschareck
Trả lời
Bạn có thể đơn giản hóa cấu trúc của bạn một chút, và sử dụng
display:table-cell
trên các yếu tốa
.html
css
Demo tạihttp://jsfiddle.net/yWLYV/1/
làm việc xuống IE8
Nguồn
2013-10-09 13:57:29
Điều đó làm việc trong tất cả các trình duyệt và mã là thanh lịch. – Tschareck
Thay đổi
<tr style="vertical-align: central">
-<tr style="vertical-align: middle">
vàa.userLink
tài sảndisplay
-inline-block
hoặcinline
.jsfiddle
Nguồn
2013-10-09 13:49:26 Morpheus
Đúng vậy! 'display' CSS – Tschareck
Nhưng bây giờ liên kết không hoạt động trong IE: ( – Tschareck
thử kỹ thuật của tôi; theo dõi này
và morpheus tất cả các quyền! ;)
Nguồn
2013-10-09 13:50:14 avalkab
Thử sử dụng:
line-height: 150px
để đặt chiều cao của nội dung trong hộp. Điều này sẽ hoạt động tốt nếu chỉ có một dòng nội dung.Nguồn
2013-10-09 13:50:48 acairns
Sử dụng
valign="middle"
trong<td>
Ví dụ:
Nguồn
2013-10-09 13:51:35 SKeurentjes
Hãy thử điều này một:
HTML:
CSS:
Và một demo.
Xin lưu ý rằng nó chỉ cho phép một dòng văn bản ... đó có phải là sự cố không?
EDIT, tìm thấy một giải pháp tốt hơn, hiển thị các neo như một ô trong bảng, làm việc nhiều dòng quá: văn bản
Updated fiddle
Nguồn
2013-10-09 14:05:24 LinkinTED
Một cách tuyệt vời để có được một cách hoàn hảo làm trung tâm là sử dụng một bố trí flexbox . Bạn theo chiều ngang và theo chiều dọc có thể tập trung các nội dung của một yếu tố container với mã rất ít:
Demo: http://jsfiddle.net/913fch6v/
Nguồn
2015-09-05 21:48:09 bromy
Nó hoạt động! Điều này sẽ được chấp nhận trả lời! –
Tôi đồng ý Điều này sẽ là câu trả lời được chấp nhận. bạn. –
Các vấn đề liên quan