תכונות CSS הקשורות למודל תיבת ה-CSS
מאמר זה מסביר את תכונות ה-CSS הקשורות למודל התיבה.
תוכלו ללמוד על מקרי השימוש והתצורה של תכונות כגון רוחב, גובה ושוליים.
YouTube Video
HTML לתצוגה מקדימה
css-box.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Box Model Related CSS Properties</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-box.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Box Model Related CSS Properties</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Box Model Related Properties</h2>
20 </header>
21 <article>
22 <h3>width and height</h3>
23 <section>
24 <header><h4>width: 250px; height: 150px;</h4></header>
25 <section class="sample-view">
26 <div class="width-height-fixed">Fixed size(250px,150px)</div>
27 </section>
28 </section>
29 <section>
30 <header><h4>width: 50%; height: 50%;</h4></header>
31 <section class="sample-view">
32 <div class="width-height-percent">Percentage size(50%,50%)</div>
33 </section>
34 </section>
35 <section>
36 <header><h4>width: min-content; height: min-content;</h4></header>
37 <section class="sample-view">
38 <div class="width-height-min-content">This is an example of min-content.</div>
39 </section>
40 </section>
41 <section>
42 <header><h4>width: max-content; height: max-content;</h4></header>
43 <section class="sample-view">
44 <div class="width-height-max-content">This is an example of max-content.</div>
45 </section>
46 </section>
47 <section>
48 <header><h4>width: fit-content; max-width: 150px;</h4></header>
49 <section class="sample-view">
50 <div class="width-height-fit-content">This is an example of fit-content.</div>
51 </section>
52 </section>
53 </article>
54 <article>
55 <h3>margin and padding</h3>
56 <section style="height: auto;">
57 <h4>Margin & padding</h4>
58 <header><h4>margin: 20px; padding: 15px;</h4></header>
59 <section class="sample-view">
60 <div class="margin-padding">margin & padding</div>
61 </section>
62 </section>
63 <section style="height: auto;">
64 <h4>Margin only(no padding)</h4>
65 <header><h4>margin: 20px; padding: 0;</h4></header>
66 <section class="sample-view">
67 <div class="margin-only">margin only</div>
68 </section>
69 </section>
70 <section style="height: auto;">
71 <h4>No margin & padding example</h4>
72 <header><h4>margin: 0; padding: 0;</h4></header>
73 <section class="sample-view">
74 <div class="no-margin">no margin & padding</div>
75 </section>
76 </section>
77 </article>
78 <article>
79 <h3>box-sizing</h3>
80 <section style="height: auto;">
81 <header><h4>box-sizing: content-box</h4></header>
82 <section class="sample-view">
83 <div style="width: 300px;">width: 300px</div>
84 <div class="content-box">Content Box</div>
85 <div style="width: 360px;">width: 360px</div>
86 </section>
87 </section>
88 <section>
89 <header><h4>box-sizing: border-box</h4></header>
90 <section class="sample-view">
91 <div style="width: 300px;">width: 300px</div>
92 <div class="border-box">Border Box</div>
93 </section>
94 </section>
95 </article>
96 <article>
97 <h3>visibility</h3>
98 <section>
99 <header><h4>visibility: visible</h4></header>
100 <section class="sample-view">
101 <div class="visibility-visible">Visible Box</div>
102 </section>
103 <header><h4>visibility: hidden</h4></header>
104 <section class="sample-view">
105 <div class="visibility-hidden">Hidden Box</div>
106 </section>
107 <header><h4>visibility: collapse</h4></header>
108 <section class="sample-view">
109 <div class="visibility-collapse">Collapsed Box (Hold layout space)</div>
110 </section>
111 <header><h4>HTML</h4></header>
112 <pre><div class="visibility-collapse">Collapsed Box (Hold layout space)</div></pre>
113 <header><h4>visibility: collapse</h4></header>
114 <section class="sample-view">
115 <table style="height: 200px; margin: auto;">
116 <tr class="visibility-collapse">
117 <td>Cell 1 (Remove layout space)</td>
118 </tr>
119 <tr>
120 <td>Cell 2</td>
121 </tr>
122 </table>
123 </section>
124 <header><h4>HTML</h4></header>
125<pre>
126<table style="height: 200px; margin: auto;">
127 <tr class="visibility-collapse">
128 <td>Cell 1 (Remove layout space)</td>
129 </tr>
130 <tr>
131 <td>Cell 2</td>
132 </tr>
133</table>
134</pre>
135 </section>
136 </article>
137 </main>
138</body>
139</html>
קשור למודל התיבה
תכונות width
ו-height
1.width-height-fixed {
2 width: 250px;
3 height: 150px;
4 background-color: lightblue;
5}
6
7.width-height-percent {
8 width: 50%;
9 height: 50%;
10 background-color: lightblue;
11}
12
13.width-height-min-content {
14 width: min-content;
15 height: min-content;
16 background-color: lightblue;
17}
18
19.width-height-max-content {
20 width: max-content;
21 height: max-content;
22 background-color: lightblue;
23}
24
25.width-height-fit-content {
26 width: fit-content;
27 max-width: 150px;
28 background-color: lightblue;
29}
תכונות ה-width
ו-height
הן תכונות CSS המשמשות לקביעת הרוחב והגובה של אלמנט. תכונות אלו משמשות במיוחד לקביעת גודלם של אלמנטים בלוקיים, תמונות, סרטונים וכו'.
- במחלקה
width-height-fixed
נקבעים ערכים קבועים עבור רוחב וגובה. - במחלקה
width-height-percent
נקבעים ערכים באחוזים עבור רוחב וגובה.
ערכים שניתן להגדיר
לתכונות width
ו-height
ניתן להגדיר את הערכים הבאים.
auto
: גודל ברירת מחדל. מתאים את הגודל אוטומטית ביחס לאלמנט ההורה.- ערכים קבועים: מגדיר רוחב קבוע בפיקסלים, באחוזים או ביחידות יחסיות.(ex:
100px
,50%
,10rem
)- לדוגמא,
250px
מגדיר את גודל האלמנט ל-250 פיקסלים, ו-50%
מגדיר אותו ל-50% מגודל אלמנט ההורה.
- לדוגמא,
min-content
: מתאים לגודל המינימלי של התוכן.max-content
: מתאים לגודל המרבי של התוכן.fit-content
: מתאים את גודל האלמנט בהתאם לגודל התוכן.
הגדרת ערכים מינימליים ומקסימליים
התכונות min-width
, max-width
, min-height
, ו-max-height
הן תכונות CSS המשמשות להגדרת הגבלות גודל ביחס לרוחב ולגובה של אלמנט. בעזרת תכונות אלו, ניתן להבטיח שאלמנט יהיה בטווח גודל מסוים.
תכונות margin
ו-padding
1.margin-padding {
2 margin: 20px; /* Margin outside the element */
3 padding: 15px; /* Padding inside the element */
4 border: 1px solid #333;
5 background-color: lightblue;
6 width: 300px;
7 height: 40px;
8}
9
10.margin-only {
11 margin: 20px; /* Margin outside the element */
12 padding: 0; /* No padding inside the element */
13 border: 1px solid #333;
14 background-color: lightblue;
15 width: 300px;
16 height: 40px;
17}
18
19.no-margin {
20 margin: 0; /* No margin outside the element */
21 padding: 0; /* No padding inside the element */
22 border: 1px solid #333;
23 background-color: lightblue;
24 width: 300px;
25 height: 40px;
26}
margin
ו-padding
הן תכונות ב-CSS שמשמשות לשליטה במרווח החיצוני והפנימי של אלמנטים בתוך מודל הקופסה. הן משמשות להתאמת המרווח בין אלמנטים ולסידור הנראות.
- במחלקת
margin-padding
, מוגדרים גםmargin
וגםpadding
. יש מרווחmargin
מחוץ לגבול המוצק ומרווחpadding
בתוך הגבול המוצק. - במחלקת
margin-only
, מוגדר רקmargin
. ניתן לראות שהאזור הכחול קטן יותר בהשוואה למחלקתmargin-padding
, מכיוון שאין מרווחpadding
בתוך הגבול המוצק. - במחלקת
no-margin
, גםmargin
וגםpadding
מוגדרים ל-0. ניתן לראות שהאזור הכחול נדחף עד לקצה השמאלי, מכיוון שאין מרווחmargin
מחוץ לגבול המוצק.
כך, תכונת margin
מגדירה את המרווח החיצוני של אלמנט ומתאימה את המרחק בין אלמנטים. מצד שני, תכונת padding
מגדירה את המרווח הפנימי של אלמנט ומתאימה את המרחק בין התוכן לבין הגבול.
תכונת margin
-
תכונת
margin
מגדירה את המרווח החיצוני (margin) של אלמנט. היא משמשת ליצירת מרווח בין אלמנטים סמוכים. הערכים הבאים יכולים להיות מצוינים:. -
ערכים קבועים: ניתן להגדיר את גודל המרווח בפיקסלים, יחידות יחסיות (em, rem), או אחוזים.(ex:
10px
,1em
,5%
) -
auto
: שימושי למרכז אלמנטים בלוק. כאשר מוגדרת הרוחב, הוא מתאים באופן אוטומטי את המרווחים בצדדים שמאל וימין. -
ערכים חיוביים ושליליים: ערכים חיוביים מגדילים את המרווח, וערכים שליליים מקרבים את האלמנטים זה לזה.
רישום מקוצר:
1div.one-value {
2 margin: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 margin: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 margin: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 margin: 10px 5px 15px 20px;
18}
תכונת margin
מקבלת בין ערך אחד לארבעה ערכים.
- ערך אחד: חל על כל הצדדים.
- שני ערכים: הראשון חל על למעלה ולמטה, והשני על שמאל וימין.
- שלושה ערכים: חלים לפי הסדר למעלה, שמאל וימין, למטה.
- ארבעה ערכים: חלים לפי הסדר למעלה, ימין, למטה, שמאל.
תכונת padding
פונקציה:
-
תכונת
padding
קובעת את השטח הפנימי (הרווח) של אלמנט. היא משמשת ליצירת רווח בין התוכן לבין המסגרת של האלמנט. הערכים הבאים יכולים להיות מצוינים:. -
ערכים קבועים: מגדירים את גודלו של ה-padding.(ex:
10px
,1em
,5%
) -
לא ניתן להשתמש בערכים שליליים. ניתן להגדיר ערכי padding רק כמספרים חיוביים.
רישום מקוצר:
1div.one-value {
2 padding: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 padding: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 padding: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 padding: 10px 5px 15px 20px;
18}
בדומה ל-margin
, תוכלו להגדיר ערך אחד עד ארבעה ערכים.
- ערך אחד: חל על כל הצדדים.
- שני ערכים: הראשון חל על למעלה ולמטה, והשני על שמאל וימין.
- שלושה ערכים: חלים לפי הסדר למעלה, שמאל וימין, למטה.
- ארבעה ערכים: חלים לפי הסדר למעלה, ימין, למטה, שמאל.
תכונת box-sizing
1/* Default content-box : 300px + 2 * 20px + 2 * 10px = 360px */
2.content-box {
3 width: 300px;
4 padding: 20px;
5 border: 10px solid blue;
6 box-sizing: content-box;
7 background-color: lightblue;
8}
9
10/* Using border-box */
11.border-box {
12 width: 300px;
13 padding: 20px;
14 border: 10px solid red;
15 box-sizing: border-box;
16 background-color: lightcoral;
17}
box-sizing
היא תכונה ב-CSS אשר שולטת כיצד מחושבים הרוחב והגובה של אלמנט.
- ב-class שנקרא
content-box
, רוחבו של האלמנט הוא 360px. הרוחב (width
) הוא 300px, עםpadding
שמסתכם ב-40px (ימין ושמאל) ו-border
שמסתכם ב-20px (ימין ושמאל), ובסך הכל 360px. - ב-
border-box
, רוחבו של האלמנט הוא 300px.padding
ו-border
כלולים ברוחב (width
) המוגדר.
ערכי box-sizing
בעיקר קיימים שני ערכים ל-box-sizing
: content-box
ו-border-box
, כאשר content-box
הוא ברירת המחדל.
content-box
1.content-box {
2 box-sizing: content-box;
3 width: 200px;
4 padding: 20px;
5 border: 10px solid black;
6}
7/*
8260px = 200px(width) +
920px(padding-left) + 20px(padding-right) +
1010px(border-left) + 10px(border-right)
11*/
כשמגדירים content-box
, רק הרוחב והגובה של התוכן מוגדרים על ידי width
ו-height
. padding
ו-border
נוספים לכך על מנת לקבוע את הגודל הסופי. במילים אחרות, width
ו-height
מתייחסים רק לאזור התוכן.
בדוגמה זו, ה-width
המוגדר הוא 200px, אך עם הוספת רוחב של padding
ו-border
משמאל ומימין, הרוחב הסופי של האלמנט הוא 260px.
border-box
1.border-box {
2 width: 200px;
3 padding: 20px;
4 border: 10px solid black;
5 box-sizing: border-box;
6}
כשמוגדר border-box
, החישוב של width
ו-height
כולל את ה-padding
וה-border
. במילים אחרות, ה-width
ו-height
המוגדרים הופכים לגודל הכולל של התוכן, ה-padding
וה-border
.
במקרה זה, ה-width
המוגדר הוא 200px, וכיוון שה-padding
וה-border
כלולים, הרוחב הסופי של האלמנט נשאר 200px. הריפוד והגבול מותאמים בתוכו.
סיכום ההבדלים של box-sizing
מאפיין | שיטת חישוב | חישוב רוחב אמיתי |
---|---|---|
content-box (ברירת מחדל) |
width מתייחס רק לתוכן. padding ו-border מתווספים. |
width + padding + border |
border-box |
width כולל הכל (תוכן, padding , border ) |
הרוחב המוגדר משמש כפי שהוא. |
היתרונות של box-sizing
-
שימוש ב-
border-box
מייצב את הפריסה. הוספתpadding
אוborder
אינה משנה את הגודל המוגדר, מה שמפשט את החישובים. -
זה שימושי בעת יצירת פריסות גמישות. בעיצובים רספונסיביים או בפריסות מורכבות, משתמשים לעיתים קרובות ב-
border-box
כדי למנוע תנודות בלתי צפויות בגודל.
כיצד להחיל border-box
באופן גלובלי
1*,
2*::before,
3*::after {
4 box-sizing: border-box;
5}
על ידי הגדרת CSS באופן זה, ניתן להחיל border-box
על כל האלמנטים כדי למנוע שינויים בלתי צפויים בגודל.
סיכום
box-sizing
קובע אםpadding
ו-border
ייכללו ב-width
וב-height
של אלמנט.- שימוש ב-
border-box
הופך את חישובי הגודל לפשוטים יותר ומתאים לעיצוב רספונסיבי.
תכונת visibility
1.visibility-visible {
2 visibility: visible;
3}
4
5.visibility-hidden {
6 visibility: hidden;
7}
8
9.visibility-collapse {
10 visibility: collapse;
11}
תכונת ה-visibility
משמשת להראות או להסתיר אלמנטים, אך בניגוד לתכונת ה-display
, היא משפיעה על הפריסה גם אם האלמנט מוסתר. היא רק מסתירה את האלמנט תוך שמירה על המיקום והגודל המקוריים שלו, מבלי להשפיע על פריסת אלמנטים אחרים.
תחביר בסיסי
1element {
2 visibility: value;
3}
value
: ערך שמגדיר את הנראות של האלמנט.
סוגי ערכים
- ניתן להגדיר את תכונת ה-
visibility
לערכים הבאים:.
visible
- הגדרת
visible
תציג את האלמנט. זהו הערך המוגדר כברירת מחדל.
hidden
- הגדרת
hidden
תסתיר את האלמנט אך תשמור את מקום הפריסה שלו.
collapse
collapse
משמש בעיקר לשורות או עמודות בטבלאות. האלמנט הופך לבלתי נראה וגם המרחב שלו מתעלם ממנו. בעת יישום על שורות או עמודות בטבלה, השורות או העמודות הנסתרות מוסרות לחלוטין מהפריסה.- עם זאת, כאשר נעשה שימוש באלמנטים רגילים של בלוק או אינליין, למעט אלמנטים טבלאיים, הוא מתנהג כמו
hidden
והשטח בפריסה נשמר.
inherit
- ציון
inherit
יירש את ערך תכונתvisibility
מהאלמנט ההורה.
הבדלים בין visibility
ובין display
ישנם ההבדלים הבאים בין visibility
ובין display
.
visibility: hidden
מסתיר את האלמנט אך משאיר את שטחו ואת הפריסה שלו.display: none
מסיר לחלוטין את האלמנט מהפריסה, ומאפשר לאלמנטים אחרים למלא את השטח הזה.
תוכלו לעקוב אחר המאמר שלמעלה באמצעות Visual Studio Code בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.