Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

Box Model ใน CSS คืออะไร


ทุกองค์ประกอบในเอกสารถูกเรนเดอร์เป็นกล่องสี่เหลี่ยมผืนผ้าด้วยเบราว์เซอร์ ความกว้าง ความสูง padding และ margin กำหนดพื้นที่ที่จัดสรรในและรอบๆ องค์ประกอบ แผนภาพต่อไปนี้แสดงแนวคิดของ box model:

Box Model ใน CSS คืออะไร

แหล่งที่มา: w3.org

Content (เนื้อหา)

รวมข้อมูลจริงในรูปแบบข้อความ รูปภาพ หรือสื่ออื่นๆ คุณสมบัติ width และ height ใช้ปรับมิติของกล่องนี้

Padding (ระยะห่างภายใน)

พื้นที่ระหว่างขอบนอกของเนื้อหาและขอบ (border) เรียกว่า padding กล่องนี้สามารถปรับขนาดได้ด้วยคุณสมบัติ padding คุณสมบัติเฉพาะขอบ เช่น padding-left, padding-bottom ช่วยให้ได้ระยะห่างที่กำหนดเองได้

Border (ขอบ)

ระยะห่างระหว่างขอบนอกของ padding และขอบในของ margin กำหนดขอบขององค์ประกอบ โดยค่าเริ่มต้นความกว้างตั้งค่าเป็น 0 คุณสมบัติ border ใช้กำหนดขอบขององค์ประกอบ ขอบแต่ละด้านก็สามารถจัดสไตล์แยกกันได้

Margin (ระยะห่างภายนอก)

พื้นที่ระหว่างกล่องขององค์ประกอบและกล่องขององค์ประกอบรอบข้าง ถูกกำหนดเป็น margin นี่ analogous กับ page margin ซึ่งกำหนดเป็นพื้นที่ระหว่างขอบของหน้าและเนื้อหา มันโปร่งใสในสี จำลองคุณสมบัติของ padding เว้นแต่ว่ามันเคลียร์พื้นที่ภายนอกขอบขององค์ประกอบ เหมือนกับ padding ขอบแต่ละด้านสามารถกำหนดให้มี margin แบบกำหนดเองได้

ตัวอย่าง

<!DOCTYPE html> <html> <head> <style> body * {    outline: solid; } #demo {    margin: auto;    width: 50%;    padding: 1em;    border: 1px outset;    display: flex;    box-shadow: inset 0 0 15px mediumvioletred;    box-sizing: border-box; } #demo div {    padding: 2em;    box-shadow: inset 0 0 9px orange; } </style> </head> <body> <div id="demo"> <div></div> <div></div> <div></div> <div></div> </div> </body> </html>

ผลลัพธ์

ได้ผลลัพธ์ดังนี้:

Box Model ใน CSS คืออะไร

ตัวอย่าง

<!DOCTYPE html> <html> <head> <style> body * {    outline: thin dotted; } #demo {    margin: auto;    width: 120px;    height: 120px;    padding: 1em;    border: 1px outset;    display: flex;    box-shadow: inset 0 0 15px indianred; } #demo div {    width: 40px;    height: 40px; } div:nth-child(odd) {    border: inset lightgreen;    border-bottom-right-radius: 100px;    border-bottom-left-radius: 100px; } div:nth-child(even) {    border: inset lightblue;    padding: 0.5em; } </style> </head> <body> <div id="demo"> <div></div> <div></div> <div></div> </div> </body> </html>

ผลลัพธ์

ได้ผลลัพธ์ดังนี้:

Box Model ใน CSS คืออะไร