ฉันได้ค้นคว้าเรื่องนี้เล็กน้อยและจากสิ่งที่ฉันพบคุณมีสี่ตัวเลือก:
เวอร์ชัน 1: พาเรนต์ div พร้อมแสดงเป็นเซลล์ตาราง
หากคุณไม่ต้องการใช้display:table-cell
บน div หลักของคุณคุณสามารถใช้ตัวเลือกต่อไปนี้:
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:table-cell;
vertical-align:middle;
}
การสาธิตสด
เวอร์ชัน 2: พาเรนต์ div พร้อมบล็อกการแสดงผลและเซลล์ตารางการแสดงเนื้อหา
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:block;
}
.content {
height: 100px;
width: 100px;
display:table-cell;
vertical-align:middle;
}
การสาธิตสด
เวอร์ชัน 3: div หลักลอยและ div เนื้อหาเป็นเซลล์ตารางที่แสดง
.area{
background: red;
margin:10px;
text-align: center;
display:block;
float: left;
}
.content {
display:table-cell;
vertical-align:middle;
height: 100px;
width: 100px;
}
การสาธิตสด
เวอร์ชัน 4: ตำแหน่ง div หลักสัมพันธ์กับตำแหน่งเนื้อหาสัมบูรณ์
ปัญหาเดียวที่ฉันมีกับเวอร์ชันนี้คือดูเหมือนว่าคุณจะต้องสร้าง css สำหรับการใช้งานเฉพาะทุกครั้ง เหตุผลนี้คือ div เนื้อหาจำเป็นต้องมีความสูงที่กำหนดไว้ที่ข้อความของคุณจะเติมเต็มและขอบด้านบนจะถูกคิดออกจากสิ่งนั้น ปัญหานี้สามารถเห็นได้ในการสาธิต คุณสามารถทำให้มันใช้งานได้สำหรับทุกสถานการณ์ด้วยตนเองโดยการเปลี่ยน% ความสูงของ div เนื้อหาของคุณและคูณด้วย -.5 เพื่อให้ได้ค่ามาร์จิ้นสูงสุด
.area{
position:relative;
display:block;
height:100px;
width:100px;
border:1px solid black;
background:red;
margin:10px;
}
.content {
position:absolute;
top:50%;
height:50%;
width:100px;
margin-top:-25%;
text-align:center;
}
การสาธิตสด