ฉันทราบว่ามีการถามคำถามนี้เมื่อสองปีก่อน แต่สำหรับผู้ชมล่าสุดนี่เป็นทางเลือกอื่นซึ่งมีข้อดีบางประการเหนือโซลูชันของ Marc-François:
div {
height: 50px;
border: 1px solid blue;
line-height: 50px;
}
เราก็แค่บวกline-height
เท่ากับความสูงของ div ข้อดีคือตอนนี้คุณสามารถเปลี่ยนคุณสมบัติการแสดงผลของ div ได้ตามที่คุณเห็นว่าเหมาะสมinline-block
เป็นต้นและเนื้อหาจะยังคงอยู่กึ่งกลางในแนวตั้ง โซลูชันที่ยอมรับต้องการให้คุณปฏิบัติกับ div เป็นเซลล์ตาราง สิ่งนี้ควรทำงานได้อย่างสมบูรณ์แบบข้ามเบราว์เซอร์
ข้อได้เปรียบเพียงอย่างเดียวคือมันเป็นเพียงกฎ CSS หนึ่งกฎแทนที่จะเป็นสองข้อ :)
ไชโย!
<table>
และใช้valign='middle'
กับ<td>
s ของมัน