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

CSS Padding vs Margin:วิธีบอกความแตกต่าง

เมื่อฉันเริ่มเรียนรู้วิธีเขียนมาร์กอัปโดยใช้ HTML และ CSS ครั้งแรก ฉันต้องใช้เวลาพอสมควรกว่าจะนึกถึงความแตกต่างระหว่างระยะขอบและช่องว่างภายในในโมเดลกล่อง ในบทความนี้ ฉันจะแบ่งปันว่าในที่สุดฉันก็สามารถแยกความแตกต่างระหว่างคนทั้งสองได้อย่างไร

เมื่อพูดถึงระยะขอบและช่องว่างภายใน เป็นการดีที่สุดที่จะทบทวนว่ารูปแบบกล่อง CSS ทำงานอย่างไร ลองนึกถึงโมเดลกล่อง ซึ่งเป็นคอนเทนเนอร์ที่เราใส่ส่วนประกอบต่างๆ ของเว็บไซต์ของเราเป็นรูปภาพที่วางไว้ในกรอบรูป:

CSS Padding vs Margin:วิธีบอกความแตกต่าง

เนื้อหา คือภาพนั่นเอง – สิ่งที่เราต้องการใส่ในภาชนะ รอบๆ มันคือ 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;

บทสรุป

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