วิธีจัดกึ่งกลาง div ในแนวนอนภายใน div หลัก


114

ฉันจะศูนย์วิธีdivแนวนอนภายในแม่divด้วยCSS?

<div id='parent' style='width: 100%;'>
 <div id='child' style='width: 50px; height: 100px;'>Text</div>
</div>

1
ต่อไปนี้เป็นวิธีง่ายๆสองวิธีในการจัดกึ่งกลาง div ภายใน div แนวตั้งแนวนอนหรือทั้งสองอย่าง (CSS ล้วน): stackoverflow.com/a/31977476/3597276
Michael Benjamin

คำตอบ:


158

ฉันสมมติว่า div พาเรนต์ไม่มีความกว้างหรือความกว้างและ div ลูกมีความกว้างน้อยกว่า ต่อไปนี้จะกำหนดระยะขอบสำหรับด้านบนและด้านล่างเป็นศูนย์และด้านข้างจะพอดีโดยอัตโนมัติ สิ่งนี้จะเน้นที่ div

div#child {
    margin: 0 auto;
}

@เครื่องหมาย. คุณรู้วิธีทำให้มันทำงานใน IE6 หรือไม่? IE6 มันห่วยมาก แต่ก็ยังมีคนใช้อยู่
Bakhtiyor

@ Bakhtiyor: เท่าที่ฉันจำได้ก็คือ คุณพบปัญหาอะไร คุณอาจต้องการเปิดคำถามใหม่หากมีปัญหาเฉพาะบางอย่างที่คุณพบซึ่งยังไม่เคยสัมผัสมาก่อน ฉันไม่สามารถเข้าถึง IE6 เพื่อตรวจสอบได้
Mark Embling

3
@ Bakhtiyor: จริงๆแล้วฉันคิดว่าใน IE.old คุณต้องตั้งค่าtext-align: center;บนparentdiv แล้วตั้งค่ากลับไปทางซ้าย (หรืออะไรก็ได้) สำหรับchildอันนั้น ไม่แน่ใจว่าปัญหานั้นทำให้ IE6 ...
Mark Embling

@Mark & ​​@Bakhtiyor ด้วยเหตุผลบางอย่างทำให้childดูเหมือนว่า div ของฉันถูกเลื่อนไปทางซ้าย - เมื่อเทียบกับเบราว์เซอร์ที่สอดคล้องกับมาตรฐานมากกว่า - ใน IE ทุกเวอร์ชันที่ฉันตรวจสอบ (IE6-8) และtext-align: center;สำหรับparentและtext-align: left;สำหรับการchildแก้ไขสำหรับทุกเวอร์ชันนั้น
brookmarker

8
<div id='parent' style='width: 100%;text-align:center;'>
 <div id='child' style='width:50px; height:100px;margin:0px auto;'>Text</div>
</div>

2
โซลูชันนี้รองรับ IE 6 แต่อย่าลืมเพิ่มtext-align:left;ใน #child div
Moak

1
text-align:centerถึง div เด็กหรือ div ผู้ปกครอง?
Anish Nair

6

หากคุณต้องการให้ div สองตัวขึ้นไปอยู่กึ่งกลาง (เพื่อให้ทั้งสองอยู่เคียงข้างกันตรงกลาง) ให้ทำดังนี้

<div style="text-align:center;">
    <div style="border:1px solid #000; display:inline-block;">Div 1</div>
    <div style="border:1px solid red; display:inline-block;">Div 2</div>
</div>   

4

คุณสามารถใช้ค่า "อัตโนมัติ" สำหรับระยะขอบด้านซ้ายและด้านขวาเพื่อให้เบราว์เซอร์กระจายพื้นที่ว่างเท่า ๆ กันทั้งสองด้านของ div ภายใน:

<div id='parent' style='width: 100%;'>
   <div id='child' style='width: 50px; height: 100px; margin-left: auto; margin-right: auto'>Text</div>
</div>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.