ทำไมเราไม่ได้box-sizing: margin-box;
? โดยปกติเมื่อเราใส่box-sizing: border-box;
สไตล์ชีทของเราเราหมายถึงอดีต
ตัวอย่าง:
สมมติว่าฉันมีเลย์เอาต์หน้าคอลัมน์ 2 ทั้งสองคอลัมน์มีความกว้าง 50% แต่พวกมันดูน่าเกลียดเพราะไม่มีรางน้ำ (ช่องว่างตรงกลาง); ด้านล่างนี้คือ CSS:
.col2 {
width: 50%;
float: left;
}
ในการใช้รางน้ำคุณอาจคิดว่าเราสามารถกำหนดระยะห่างที่เหมาะสมในคอลัมน์แรกของ 2 คอลัมน์; บางสิ่งเช่นนี้
.col2:first-child {
margin-right: 24px;
}
แต่สิ่งนี้จะทำให้คอลัมน์ที่สองตัดเข้าบรรทัดใหม่เนื่องจากสิ่งต่อไปนี้เป็นจริง:
50% + 50% + 24px > 100%
box-sizing: margin-box;
จะแก้ปัญหานี้โดยรวมส่วนต่างในความกว้างที่คำนวณได้ขององค์ประกอบ ฉันจะพบว่ามีประโยชน์มากถ้าไม่ได้มีประโยชน์มากกว่าbox-sizing: border-box;
นี้
border: xxx solid transparent;
เนื่องจากมีการรวมเส้นขอบไว้border-box
ด้วย นี้จะทำลายสิ่งอื่น ๆ box-shadow
แม้ว่าบางเช่น
box-sizing: margin-box
เพราะมันไม่ได้ผลกับการยุบขอบ
box-sizing: margin-box;
" เนื่องจากในขณะที่ระยะขอบในแนวนอนไม่ยุบข้อเสนอเช่นนี้จะรบกวนการยุบขอบแนวตั้งอย่างจริงจัง อย่างไรก็ตามหากคุณต้องการเสนอบางสิ่งสำหรับการสร้างมาตรฐาน Stack Overflow ไม่ใช่ที่ที่ถูกต้อง ลองรายการจดหมาย