Trước khi chúng tôi bắt đầu:
Vui lòng không đóng văn bản này dưới dạng trùng lặp với một câu hỏi khác. Tôi chỉ tìm kiếm ở đây trên Stackoverflow mà không tìm thấy trường hợp chính xác đó.CSS - Văn bản căn chỉnh dọc trong đoạn vị trí tuyệt đối
Gần nhất là tôi tin rằng this question. Tuy nhiên, các câu trả lời được đưa ra ở đó không thực sự làm việc cho tôi, tôi tin rằng vì đoạn văn được thiết lập position: absolute;
.
Thats HTML:
<ul>
<li><img src="http://www.placehold.it/300x200" /><p><span>Lorem Ipsum</span></p></li>
</ul>
Và CSS:
li {
position: relative;
float: left;
overflow: hidden;
}
img {
width: 100%;
vertical-align: middle;
}
p {
background-color: rgba(255, 0, 0, .3);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
span {
background-color: rgba(0, 255, 0, .3);
vertical-align: middle;
}
Fiddle: http://jsfiddle.net/DpVjZ/
vertical-align: middle;
chỉ bumps văn bản một chút nhỏ đi từ trên xuống, nhưng không thực sự trong giữa.
Đặt khoảng thời gian position: absolute;
và sau đó áp dụng top: 50%;
và sau đó margin-top: -x%;
sẽ không hoạt động vì chiều cao của khoảng không được gọi là nội dung động.
Mặc dù câu hỏi được liên kết nói rằng đây là thực hành không tốt, tôi cũng đã thử phương pháp display: table-cell
mà không có bất kỳ kết quả nào. Làm ơn giúp tôi.
Tại sao bạn có một yếu tố ngăn chặn cấp bên trong một mục trong danh sách? Bạn không nghĩ đó là lý do tại sao bạn gặp vấn đề? –
Theo như tôi biết, các phần tử danh sách duy nhất không được phép chứa các phần tử cấp khối là 'dt'. – Sven
Bạn có thể chỉ cần đặt mục danh sách thành 'display: block;'. Tôi nghĩ rằng bạn đang tiếp cận vấn đề từ đầu sai của kính viễn vọng. Bạn đang cố gắng đạt được điều gì? Nhìn bề ngoài, nó trông như thế nào? Văn bản có được đặt lên trên hình ảnh không? –