สิ่งที่ไม่auto
ทำmargin:0 auto;
?
ดูเหมือนฉันจะไม่เข้าใจว่าauto
มันคืออะไร ฉันรู้ว่าบางครั้งมันมีผลต่อการจัดวัตถุให้อยู่ตรงกลาง ขอบคุณ
สิ่งที่ไม่auto
ทำmargin:0 auto;
?
ดูเหมือนฉันจะไม่เข้าใจว่าauto
มันคืออะไร ฉันรู้ว่าบางครั้งมันมีผลต่อการจัดวัตถุให้อยู่ตรงกลาง ขอบคุณ
คำตอบ:
เมื่อคุณระบุwidth
บนวัตถุที่คุณใช้margin: 0 auto
กับวัตถุนั้นจะอยู่ตรงกลางภายในคอนเทนเนอร์หลัก
การระบุauto
เป็นพารามิเตอร์ที่สองโดยทั่วไปจะบอกให้เบราว์เซอร์กำหนดระยะขอบซ้ายและขวาโดยอัตโนมัติซึ่งทำได้โดยการตั้งค่าให้เท่ากัน รับประกันว่าระยะขอบซ้ายและขวาจะถูกกำหนดให้มีขนาดเท่ากัน พารามิเตอร์ตัวแรก 0 บ่งชี้ว่าระยะขอบบนและล่างจะถูกตั้งค่าเป็น 0
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
ดังนั้นเพื่อให้คุณเป็นตัวอย่างหากพาเรนต์คือ 100px และลูกคือ 50px auto
คุณสมบัติจะกำหนดว่ามีพื้นที่ว่าง 50px ที่จะแชร์ระหว่างmargin-left
และmargin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
ซึ่งจะให้:
margin-left:25;
margin-right:25;
ลองดูjsFiddleนี้ คุณไม่จำเป็นต้องระบุความกว้างหลักเฉพาะความกว้างของวัตถุลูก
%
หรือไม่? ฉันหมายถึงมีคุณสมบัติอื่น ๆ ใน css ที่สามารถให้ผลลัพธ์เหมือนกันเช่นซ้ายและขวาauto
margin:auto 0
สภาพ?
อัตโนมัติ: เบราว์เซอร์กำหนดระยะขอบ ผลลัพธ์ของสิ่งนี้ขึ้นอยู่กับเบราว์เซอร์
margin: 0 auto ระบุ
* top and bottom margins are 0
* right and left margins are auto
จากข้อกำหนด CSS เกี่ยวกับการคำนวณความกว้างและระยะขอบสำหรับระดับบล็อกองค์ประกอบที่ไม่ถูกแทนที่ในขั้นตอนปกติ :
หากทั้ง 'margin-left' และ 'margin-right' เป็น 'auto' ค่าที่ใช้จะเท่ากัน สิ่งนี้จัดกึ่งกลางองค์ประกอบในแนวนอนโดยเทียบกับขอบของบล็อกที่มี
margin:0 auto;
0
มีไว้สำหรับบน - ล่างและauto
สำหรับซ้าย - ขวา หมายความว่าระยะขอบซ้ายและขวาจะใช้ระยะขอบอัตโนมัติตามความกว้างขององค์ประกอบและความกว้างของคอนเทนเนอร์
โดยทั่วไปหากคุณต้องการวางองค์ประกอบใด ๆ ที่ตำแหน่งกึ่งกลางจะmargin:auto
ทำงานได้อย่างสมบูรณ์ แต่ใช้ได้เฉพาะในองค์ประกอบบล็อก
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0 สำหรับบน - ล่างและอัตโนมัติสำหรับซ้าย - ขวา เบราว์เซอร์กำหนดระยะขอบ
จะชัดเจนขึ้นเมื่อมีคำอธิบายว่าค่าทั้งสองทำงานอย่างไร
คุณสมบัติระยะขอบเป็นชวเลขสำหรับ:
margin-top
margin-right
margin-bottom
margin-left
แล้วค่าแค่สองอย่างนั้นมาได้อย่างไร?
คุณสามารถแสดงระยะขอบด้วยค่าสี่ค่าดังนี้:
margin: 10px, 20px, 15px, 5px;
ซึ่งจะหมายถึงด้านบน 10px, ด้านขวา 20px, ด้านล่าง 15px, ด้านซ้าย 5px
ในทำนองเดียวกันคุณสามารถแสดงด้วยสองค่าเช่นนี้:
margin: 20px 10px;
สิ่งนี้จะทำให้คุณมีระยะขอบ 20px ด้านบนและด้านล่างและ 10px ซ้ายและขวา
และถ้าคุณตั้งค่า:
margin: 20px auto;
นั่นหมายถึงระยะขอบบนและล่าง 20px และขอบซ้ายและขวาของอัตโนมัติ และอัตโนมัติหมายความว่าระยะขอบซ้าย / ขวาจะถูกกำหนดโดยอัตโนมัติตามคอนเทนเนอร์ หากองค์ประกอบของคุณเป็นองค์ประกอบประเภทบล็อกหมายความว่าเป็นช่องและใช้ความกว้างทั้งหมดของมุมมองจากนั้นจะตั้งค่าระยะขอบซ้ายและขวาโดยอัตโนมัติและด้วยเหตุนี้องค์ประกอบจึงอยู่ตรงกลาง
เป็นการเปลี่ยนแท็ก "center" ที่เสีย / ยากมาก มีประโยชน์เมื่อคุณต้องการโต๊ะที่เสียหายและไม่ทำงานตรงกลางสำหรับบล็อกและข้อความ
body
เรามักจะให้width
และmargin:0 auto
ไป#wrapper