เมื่อฉันเริ่มเรียนรู้วิธีเขียนมาร์กอัปโดยใช้ HTML และ CSS ครั้งแรก ฉันต้องใช้เวลาพอสมควรกว่าจะนึกถึงความแตกต่างระหว่างระยะขอบและช่องว่างภายในในโมเดลกล่อง ในบทความนี้ ฉันจะแบ่งปันว่าในที่สุดฉันก็สามารถแยกความแตกต่างระหว่างคนทั้งสองได้อย่างไร
เมื่อพูดถึงระยะขอบและช่องว่างภายใน เป็นการดีที่สุดที่จะทบทวนว่ารูปแบบกล่อง CSS ทำงานอย่างไร ลองนึกถึงโมเดลกล่อง ซึ่งเป็นคอนเทนเนอร์ที่เราใส่ส่วนประกอบต่างๆ ของเว็บไซต์ของเราเป็นรูปภาพที่วางไว้ในกรอบรูป:
เนื้อหา คือภาพนั่นเอง – สิ่งที่เราต้องการใส่ในภาชนะ รอบๆ มันคือ padding .
ถ้าเราอยู่ในร้านกรอบ แผ่นรองก็จะเป็นแผ่นปู ซึ่งทำให้ต้องใช้กรอบรูปที่ใหญ่ขึ้น เมื่อเราเพิ่ม padding ใน CSS เราจะผลักกล่องเนื้อหาของเราออกเพื่อทำให้คอนเทนเนอร์ใหญ่ขึ้น Padding คือช่องว่างระหว่างเนื้อหาและเส้นขอบ
ถัดมาเป็น ชายแดน – โดยพื้นฐานแล้วมันคือเฟรมที่เก็บเนื้อหาและช่องว่างภายในของเรา ระยะขอบ คือช่องว่างระหว่างองค์ประกอบที่อยู่ติดกัน (กรอบรูปของเรา) บนวิวพอร์ตของเรา (ผนัง)
คำถามจึงกลายเป็นว่า เราควรใช้ระยะขอบเมื่อใดและเมื่อใดจึงควรใช้การเติม
บางคนอาจบอกว่าคำตอบนี้เป็นความคิดเห็นส่วนตัวเล็กน้อย แต่โดยทั่วไป ควรใช้ระยะขอบ CSS หากเราต้องการปรับรูปลักษณ์ขององค์ประกอบที่สัมพันธ์กับองค์ประกอบอื่นๆ บนหน้า ควรใช้ padding เมื่อเราต้องการให้พื้นที่รอบๆ เนื้อหาใหญ่ขึ้น
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
การตั้งค่าระยะขอบและช่องว่างภายใน
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Margin vs Padding</title> </head> <style> body { background: darkslategray; width: 100%; height: 100vh; max-width: 800px; display: flex; margin: 0 auto; justify-content: space-evenly; align-items: center; } #star-wars { background: ivory; border: 20px solid cyan; } #lotr { background: ivory; border: 20px solid green; } </style> <body> <div id="star-wars"> <h3>Star Wars Chars</h3> <div> <p>Hans Solo</p> <p>Luke Skywalker</p> <p>Obi Wan Kenobi</p> <p>Chewbacca</p> <p>R2D2</p> <p>C3PO</p> </div> </div> <div id="lotr"> <h3>Lord of the Rings Chars</h3> <div> <p>Bilbo</p> <p>Gandalf</p> <p>Frodo</p> <p>Sam</p> <p>Legolas</p> <p>Aragorn</p> </div> </div> </body> </html>
ในตัวแก้ไขโค้ดด้านบน มีการตั้งค่าสองกล่องที่มีพื้นหลัง เนื้อหา และเส้นขอบพื้นฐาน ลองนึกภาพสถานการณ์ที่คุณต้องการให้ช่องว่างภายในและระยะขอบแตกต่างกันในแต่ละด้าน ใน <style>
ลองใช้ขนาดต่างๆ กันทุกด้าน เช่น
#star-wars { background: ivory; border: 20px solid cyan; margin-top: 10px; margin-bottom: 30px; margin-left: 5px; margin-right: 25px; padding-top: 20px; padding-right: 25px; padding-bottom: 35px; padding-left: 45px; } #lotr { background: ivory; border: 20px solid green; margin-top: 10px; margin-bottom: 30px; margin-left: 5px; margin-right: 25px; padding-top: 20px; padding-right: 25px; padding-bottom: 35px; padding-left: 45px; }
อย่างที่กล่าวไปแล้ว มีชวเลขที่คุณสามารถใช้ได้:margin: 10px 25px 30px 5px;
ตัวเลขกำลังมีปัญหา (TRBL):บน ขวา ล่าง และซ้าย! นี่คือลำดับที่คุณจะพบว่าไม่เพียงแค่ระยะขอบและช่องว่างภายในเท่านั้น แต่ยังรวมถึงคุณสมบัติอื่นๆ ที่ใช้การจดชวเลขเพื่ออธิบายด้านข้างของกล่องของคุณ
เป็นไปได้มากว่า คุณจะมีสถานการณ์ที่ระยะขอบด้านบนและด้านล่าง/ช่องว่างภายในจะเท่ากัน และระยะขอบซ้ายและขวาจะเท่ากัน หากเป็นเช่นนั้น คุณสามารถใช้ทางลัด:
#star-wars { background: ivory; border: 20px solid cyan; margin: 20px 30px; padding: 30px 20px; } #lotr { background: ivory; border: 20px solid green; margin: 20px 30px; padding: 30px 20px;
ตัวเลขแรกคือระยะขอบด้านบนและด้านล่าง/ช่องว่างภายใน และหมายเลขที่สองคือระยะขอบด้านซ้ายและด้านขวา/ช่องว่างภายใน
หากด้านทั้งหมดจะเท่ากัน คุณสามารถพูดว่า padding: 30px; or margin: 30px;
บทสรุป
ในบทความนี้ เราได้ทบทวนแง่มุมต่างๆ ของโมเดลกล่องและพูดคุยถึงความแตกต่างระหว่างระยะขอบและการเติม โปรดจำไว้ว่าระยะขอบเกี่ยวข้องกับพื้นที่นอกเส้นขอบและช่องว่างภายในเกี่ยวข้องกับพื้นที่ภายในเส้นขอบ เล่นกับระยะขอบและช่องว่างภายในของคอนเทนเนอร์ในโปรแกรมแก้ไขโค้ดด้านบน และคุณจะเป็นผู้เชี่ยวชาญในการตั้งค่าระยะขอบและช่องว่างภายในในเวลาไม่นาน