Menu
CoddyTech

קביעת גודל הקופסה

חלק מהיחידה עיצוב באמצעות CSS במסלול ה-HTML של Coddy. שיעור 39 מתוך 76.

ב־CSS, box-sizing היא מאפיין שקובע כיצד מחושבים הרוחב והגובה הכוללים של רכיב. כברירת מחדל, המאפיינים width ו־height כוללים רק את גודל התוכן ואינם מביאים בחשבון ריווח פנימי, גבולות או שוליים. עם זאת, באמצעות המאפיין box-sizing, אפשר לשנות את ההתנהגות הזאת ולגרום למאפיינים width ו־height לכלול גם את גדלי הריווח הפנימי והגבול.

כך אפשר לפשט את חישובי הפריסה ולמנוע בעיות בלתי צפויות בקביעת הגדלים.

הנה התחביר הבסיסי לשימוש במאפיין box-sizing:

selector {
    box-sizing: value;
}

value: התנהגות ה-box-sizing הרצויה, שיכולה להיות אחת מהאפשרויות הבאות:

  • content-box: זהו ערך ברירת המחדל. המאפיינים width ו־height כוללים רק את גודל התוכן. ריפוד, גבולות ושוליים מתווספים מחוץ לרוחב ולגובה שצוינו.
  • border-box: מאפייני width ו-height כוללים את הגדלים של התוכן, הריווח הפנימי והגבול. השוליים עדיין מתווספים מחוץ לרכיב.

לדוגמה:

div {
    width: 300px;
    height: 200px;
    padding: 20px;
    border: 5px solid black;
    box-sizing: content-box; /* התנהגות ברירת מחדל */
}

.container {
    width: 400px;
    height: 300px;
    padding: 30px;
    border: 10px solid red;
    box-sizing: border-box;
}

בדוגמה הזו, לערך box-sizing של הרכיב <div> יש ערך content-box. פירוש הדבר הוא שהרוחב המוצג בפועל של <div> יהיה 300px (תוכן) + 40px (ריווח פנימי משמאל ומימין) + 10px (גבול משמאל ומימין) = 350px. הגובה יחושב באופן דומה.

לעומת זאת, לאלמנט עם המחלקה container יש ערך box-sizing של border-box. במקרה הזה, הערך שצוין עבור width, כלומר 400px, יכלול את התוכן, המרווח הפנימי והגבול. אזור התוכן בפועל יתכווץ כדי להכיל את המרווח הפנימי והגבול, והתוצאה תהיה רוחב תוכן של 400px - 60px (מרווח פנימי משמאל ומימין) - 20px (גבול משמאל ומימין) = 320px. הגובה יחושב באופן דומה.

challenge icon

אתגר

קל

ניתן לך מסמך HTML עם שני רכיבי <div>, שלכל אחד מהם מחלקה שונה. עליך להשתמש במאפיין box-sizing כדי לשלוט באופן שבו מחושבים הרוחב והגובה של הרכיבים האלה. פעל לפי השלבים הבאים:

  1. כתוב כלל CSS שמכוון לרכיב <div> עם המחלקה content-box-div. הגדר את width ל-300px, את height ל-200px, את padding ל-20px, את border ל-5px solid blue, ואת box-sizing ל-content-box.
  2. כתוב כלל CSS שמכוון לרכיב <div> עם המחלקה border-box-div. הגדר את width ל-300px, את height ל-200px, את padding ל-20px, את border ל-5px solid red, ואת box-sizing ל-border-box.

נסו בעצמכם

<html>
<head>
    <title>Box Sizing</title>
    <style>
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="content-box-div">This is a div with content-box.</div>
    <div class="border-box-div">This is a div with border-box.</div>
</body>
</html>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה עיצוב באמצעות CSS

תרגלו בעצמכם: Web אונליין