ในตัวอย่างนี้ภาพไม่ได้อยู่กึ่งกลาง ทำไม? เบราว์เซอร์ของฉันคือ Google Chrome v10 บน windows 7 ไม่ใช่ IE
<img src="/img/logo.png" style="margin:0px auto;"/>
ในตัวอย่างนี้ภาพไม่ได้อยู่กึ่งกลาง ทำไม? เบราว์เซอร์ของฉันคือ Google Chrome v10 บน windows 7 ไม่ใช่ IE
<img src="/img/logo.png" style="margin:0px auto;"/>
คำตอบ:
เพิ่มdisplay:block;
แล้วมันจะทำงาน รูปภาพจะอยู่ในบรรทัดโดยค่าเริ่มต้น
เพื่อชี้แจงความกว้างเริ่มต้นสำหรับblock
องค์ประกอบคือauto
ซึ่งแน่นอนว่าจะเติมเต็มความกว้างที่มีอยู่ทั้งหมดขององค์ประกอบที่มี
โดยการตั้งค่าอัตรากำไรขั้นต้นที่จะauto
มอบหมายเบราว์เซอร์ครึ่งหนึ่งของพื้นที่เหลือสำหรับการและอีกครึ่งหนึ่งจะmargin-left
margin-right
margin:auto
การจัดกึ่งกลางรายการในโฟลว์ ( display:block
หรือdisplay:table
, position:static
หรือposition:relative
อื่น ๆ )
0px auto
จะเปลี่ยนเป็นเพียงแค่auto
มันก็ยังไม่ได้ผล
display: flex; align-items: center; justify-content: center
และตอนนี้เนื้อหาของคุณอยู่ตรงกลางในแนวนอนและแนวตั้ง หรือย้ายไปalign-self: center; justify-self: center
ที่เนื้อหาเอง css-tricks.com/snippets/css/a-guide-to-flexbox
ภายใต้สถานการณ์บาง (เช่นรุ่นก่อนหน้า IE, ตุ๊กแก Webkit) และมรดกองค์ประกอบที่มีposition:relative;
จะป้องกันmargin:0 auto;
จากการทำงานแม้ว่าtop
, right
, bottom
และleft
ไม่ได้ตั้งค่า
การตั้งค่าองค์ประกอบเป็นposition:static;
(ค่าเริ่มต้น) อาจแก้ไขได้ภายใต้สถานการณ์เหล่านี้ โดยทั่วไปองค์ประกอบระดับบล็อกที่มีความกว้างที่ระบุจะmargin:0 auto;
ใช้อย่างใดอย่างหนึ่งrelative
หรือการstatic
วางตำแหน่ง
margin: 0 auto
ใช้งานได้ดีกับองค์ประกอบที่อยู่ในตำแหน่งที่ค่อนข้างยาวตราบเท่าที่เป็นองค์ประกอบบล็อกที่ไม่มีลอยและความกว้างที่ระบุ ...
float
และdisplay
สามารถเปลี่ยนแปลงพฤติกรรมนั้นได้
คุณสามารถจัดกึ่งกลาง div ความกว้างอัตโนมัติโดยใช้ display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
ในกรณีของปัญหาที่เกิดขึ้นคือการที่ผมได้ตั้งนาทีและความกว้างสูงสุดโดยไม่ต้องมีความกว้างตัวเอง
position:static
มีwidth:
ชุดคงที่และเป็นdisplay:block
องค์ประกอบ
เมื่อใดก็ตามที่เราไม่เพิ่มความกว้างและเพิ่มmargin:auto
ฉันเดาว่ามันจะไม่ได้ผล มันมาจากประสบการณ์ของฉัน ความกว้างให้แนวคิดว่าจะต้องให้ระยะขอบเท่ากัน
มีทางเลือกอื่นmargin-left:auto; margin-right: auto;
หรือmargin:0 auto;
สำหรับคนที่ใช้position:absolute;
วิธีนี้:
คุณตั้งค่าตำแหน่งด้านซ้ายขององค์ประกอบเป็น 50% ( left:50%;
) แต่จะไม่จัดกึ่งกลางอย่างถูกต้องเพื่อให้องค์ประกอบอยู่ตรงกลางอย่างถูกต้องคุณต้องให้ ระยะขอบของลบครึ่งหนึ่งของความกว้างซึ่งจะจัดกึ่งกลางองค์ประกอบของคุณอย่างสมบูรณ์แบบ
นี่คือตัวอย่าง: http://jsfiddle.net/35ERq/3/
สำหรับปุ่ม bootstrap:
display: table;
margin: 0 auto;
ใส่สิ่งนี้ใน css ของร่างกาย: background: # 3D668F; จากนั้นเพิ่ม: display: block; ระยะขอบ: อัตโนมัติ; ไปที่ css ของ img
ฉันจำได้ว่าวันหนึ่งฉันใช้เวลาส่วนใหญ่ในการพยายามจัด div ให้อยู่กึ่งกลางโดยใช้margin: 0 auto
.
ฉันมีdisplay: inline-block
มันเมื่อฉันถอดมันออก div อยู่ตรงกลางอย่างถูกต้อง
ดังที่ Ross ชี้ให้เห็นว่ามันใช้ไม่ได้กับองค์ประกอบแบบอินไลน์