מאפייני CSS הקשורים לעיצוב מודל התיבה
מאמר זה מסביר את מאפייני ה-CSS הקשורים לעיצוב מודל התיבה.
תוכלו ללמוד כיצד לכתוב מאפיינים כמו גבולות וצללים.
YouTube Video
HTML לתצוגה מקדימה
css-decoration.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>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-decoration.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Box Decoration Related CSS Properties Example</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Box Decoration</h2>
20 </header>
21 <article>
22 <h3>border</h3>
23 <section>
24 <header><h4>border: 3px solid #333</h4></header>
25 <section class="sample-view">
26 <div class="border-solid">Solid Border</div>
27 </section>
28 <header><h4>border: 3px dashed #666</h4></header>
29 <section class="sample-view">
30 <div class="border-dashed">Dashed Border</div>
31 </section>
32 <header><h4>border: 5px double #999</h4></header>
33 <section class="sample-view">
34 <div class="border-double">Double Border</div>
35 </section>
36 <header><h4>border: 2px solid #000; border-radius: 15px;</h4></header>
37 <section class="sample-view">
38 <div class="border-rounded">Rounded Border</div>
39 </section>
40 </section>
41 </article>
42
43 <article>
44 <h3>border-radius</h3>
45 <section>
46 <header><h4>border-radius: 20px</h4></header>
47 <section class="sample-view">
48 <div class="border-radius-all-rounded">All corners rounded</div>
49 </section>
50 <header><h4>border-top-left-radius: 20px</h4></header>
51 <section class="sample-view">
52 <div class="border-radius-top-left-rounded">Top-left rounded</div>
53 </section>
54 <header><h4>border-radius: 50px / 25px</h4></header>
55 <section class="sample-view">
56 <div class="border-radius-ellipse-corners">Ellipse corners</div>
57 </section>
58 </section>
59 </article>
60
61 <article>
62 <h3>outline</h3>
63 <section>
64 <h4>Outline Examples</h4>
65 <header><h4>outline: 2px solid red</h4></header>
66 <section class="sample-view">
67 <div class="outline-solid">Solid Red Outline</div>
68 </section>
69 <header><h4>outline: 3px dashed blue</h4></header>
70 <section class="sample-view">
71 <div class="outline-dashed">Dashed Blue Outline</div>
72 </section>
73 <header><h4>outline: 4px double green</h4></header>
74 <section class="sample-view">
75 <div class="outline-double">Double Green Outline</div>
76 </section>
77 <header><h4>outline: 2px solid purple; outline-offset: 10px;</h4></header>
78 <section class="sample-view">
79 <div class="outline-offset">Outline with Offset</div>
80 </section>
81 </section>
82 </article>
83
84 <article>
85 <h3>box-shadow</h3>
86 <section>
87 <h4>Box Shadow Examples</h4>
88 <header><h4>box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.5)</h4></header>
89 <section class="sample-view">
90 <div class="box-shadow-basic-shadow">Basic Shadow</div>
91 </section>
92 <header><h4>box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.3)</h4></header>
93 <section class="sample-view">
94 <div class="box-shadow-inset-shadow">Inset Shadow</div>
95 </section>
96 <header><h4>box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5), -5px -5px 10px rgba(255, 0, 0, 0.5);</h4></header>
97 <section class="sample-view">
98 <div class="box-shadow-multiple-shadow">Multiple Shadows</div>
99 </section>
100 </section>
101 </article>
102 </main>
103</body>
104</html>
עיצוב
מאפיין border
1.border-solid, .border-dashed, .border-double, .border-rounded {
2 background-color: lightsteelblue;
3}
4
5.border-solid {
6 border: 3px solid #333;
7}
8
9.border-dashed {
10 border: 3px dashed #666;
11}
12
13.border-double {
14 border: 5px double #999;
15}
16
17.border-rounded {
18 border: 2px solid #000;
19 border-radius: 15px;
20}
מאפיין ה-border
משמש ב-CSS כדי לקבוע את המסגרת של אלמנט. border
מורכב משלושה אלמנטים: רוחב, סגנון וצבע, והם משולבים כדי לקבוע את המסגרת של האלמנט.
מבנה בסיסי של ה-border
1/* Shorthand syntax */
2border: [border-width] [border-style] [border-color];
3
4/* Example of border property */
5border: 5px solid white;
6
7/* Example of individual properties */
8border-width: 5px;
9border-style: solid;
10border-color: black;
-
השתמשו ב-
border-width
כדי לציין את עובי המסגרת. יחידות נמדדות ב-px
,em
,%
, וכדומה. -
ציינו את סוג המסגרת באמצעות
border-style
. ניתן לציין את הערכים הבאים.- ערכי סגנון:
none
(ללא מסגרת)solid
(קו רציף)dotted
(קו מנוקד)dashed
(קו מקווקו)double
(קו כפול)groove
(קו מחורץ)ridge
(קו מובלט)inset
(קו צל פנימי)outset
(קו צל חיצוני)
- ערכי סגנון:
ציינו את צבע המסגרת באמצעות border-color
. ניתן לציין צבע באמצעות שמות צבעים, rgb()
, rgba()
, hex
, וכדומה.
הגדרות נפרדות לכל צד
1.box {
2 border-top: 3px solid red; /* Top border: 3px solid red */
3 border-right: 5px dashed blue; /* Right border: 5px dashed blue */
4 border-bottom: 2px double green; /* Bottom border: 2px double green */
5 border-left: 1px dotted black; /* Left border: 1px dotted black */
6}
אתה יכול גם להגדיר סגנונות שונים לכל צד כך.
הגדרות נפרדות עבור רוחב, סגנון וצבע
1.box {
2 /* Specify border width for top, right, bottom, and left */
3 border-width: 2px 4px 6px 8px;
4
5 /* Specify border style for top, right, bottom, and left */
6 border-style: solid dotted dashed double;
7
8 /* Specify border color for top, right, bottom, and left */
9 border-color: red green blue yellow;
10}
תוכל גם להגדיר כל מאפיין בנפרד באמצעות border-width
, border-style
, ו-border-color
.
שילוב עם border-radius
1.box-rounded {
2 border: 2px solid #000;
3 border-radius: 10px; /* Round corners by 10px */
4}
על ידי שימוש במאפיין border-radius
, ניתן לעגל את פינות המסגרת.
מאפיין border-radius
1.border-radius-all-rounded, .border-radius-top-left-rounded, .border-radius-ellipse-corners {
2 background-color: lightsteelblue;
3}
4
5/* Round all corners */
6.border-radius-all-rounded {
7 border-radius: 20px;
8}
9
10/* Round only the top-left corner */
11.border-radius-top-left-rounded {
12 border-top-left-radius: 20px;
13}
14
15/* Elliptical corners */
16.border-radius-ellipse-corners {
17 border-radius: 50px / 25px;
18}
מאפיין ה-border-radius
משמש לעיגול הפינות של אלמנט. ניתן לעגל בצורה חלקה את ארבעת הפינות של אלמנט HTML, ולהפוך מלבנים או ריבועים לעיצוב מעוגל.
הסבר:
- המחלקה
border-radius-all-rounded
מעגלת את כל הפינות ב-20 פיקסלים, ויוצרת תיבה מעוגלת בצורה חלקה. - המחלקה
border-radius-top-left-rounded
מעגלת רק את הפינה השמאלית העליונה ב-20 פיקסלים, ושומרת על הפינות האחרות כמלבניות. - המחלקה
border-radius-ellipse-corners
יוצרת פינות אליפטיות, מה שמוביל לתיבה עם צורה מעוגלת שמתוחה אופקית.
הפורמט של מאפיין ה-border-radius
1border-radius: value;
2border-radius: top-left-and-bottom-right top-right-and-bottom-left;
3border-radius: top-left top-right bottom-right bottom-left;
4border-top-left-radius: value;
5border-top-right-radius: value;
6border-bottom-right-radius: value;
7border-bottom-left-radius: value;
- ערך מאפיין ה-
border-radius
בדרך כלל נקבע בפיקסלים או באחוזים. כמו כן, ניתן להגדיר ערכים מ-1 עד 4.- הגדרת ערך אחד מעגלת את כל הפינות באופן אחיד.
- הגדרת שני ערכים מחילה את הערך הראשון על הפינות השמאלית העליונה והתחתונה הימנית, ואת הערך השני על הפינות הימנית העליונה והשמאלית התחתונה.
- על ידי הגדרת ארבעה ערכים, ניתן לקבוע רדיוסים שונים עבור כל פינה. הערכים מוחלים בכיוון השעון מפינה שמאלית עליונה.
- ניתן גם להגדיר בנפרד כמו
border-top-left-radius
.
1border-radius: 50px / 25px;
- מאפיין ה-
border-radius
יכול גם להגדיר רדיוסים אנכיים ואופקיים בנפרד כדי ליצור פינות אליפטיות. במקרה זה, יש להפריד עם/
.- לדוגמה, הגדרת
50px / 25px
יוצרת רדיוס אופקי של 50 פיקסלים ורדיוס אנכי של 25 פיקסלים.
- לדוגמה, הגדרת
סיכום
border-radius
הוא מאפיין לעיגול הפינות של אלמנט.- ניתן להגדיר את עגלוליות הפינות בפיקסלים או באחוזים, להחיל זאת על כל הפינות, על פינות מסוימות, או להפוך אותן לאליפטיות.
- זה שימושי לעיצובים גמישים ולהתאמה אישית של ממשקי משתמש.
מאפיין outline
1.outline-solid, .outline-dashed, .outline-double, .outline-offset {
2 background-color: lightsteelblue;
3}
4
5.outline-solid {
6 outline: 2px solid red;
7}
8
9.outline-dashed {
10 outline: 3px dashed blue;
11}
12
13.outline-double {
14 outline: 4px double green;
15}
16
17.outline-offset {
18 outline: 2px solid purple;
19 outline-offset: 10px;
20}
מאפיין ה-outline
הוא מאפיין CSS המשמש לקביעת הקו הנמשך סביב אלמנט.
ה-outline
דומה ל-border
, אך ישנם הבדלים בנקודות הבאות:.
- ה-
outline
אינו משפיע על מודל התיבה של האלמנט, ולכן אינו משפיע על עיצוב האלמנט. - מכיוון שה-
outline
נמשך מחוץ לאלמנט, הוא מופיע מחוץ ל-border
. - ה-
border
נמשך בתוך האלמנט ולכן הוא עשוי להשפיע על גודל ועיצוב האלמנט.
בדוגמה זו, מאפיין ה-outline
מוגדר באופן הבא:.
- המחלקה
outline-solid
קובעת מסגרת מלאה בעובי 2px בצבע אדום. - המחלקה
outline-dashed
קובעת מסגרת מקווקו בעובי 3px בצבע כחול. - המחלקה
outline-double
קובעת מסגרת כפולה בעובי 4px בצבע ירוק. - המחלקה
outline-offset
קובעת רווח של 10px בין המסגרת לאלמנט.
תחביר בסיסי
1element {
2 outline: outline-width outline-style outline-color;
3 outline-offset: 10px;
4}
outline-width
- המאפיין
outline-width
מציין את עובי המסגרת. - ניתן לציין ערכים ספציפיים כמו
thin
,medium
,thick
, או ביחידות כמוpx
,em
.
outline-style
- המאפיין
outline-style
מציין את הסגנון של המסגרת. - ניתן לציין סגנונות כמו
solid
,dotted
,dashed
,double
,groove
,ridge
,inset
,outset
,none
וכו׳.
outline-color
- המאפיין
outline-color
מציין את הצבע של המסגרת. - ניתן לציין כל צבע באמצעות שמות, HEX, RGB, וכו׳.
outline-offset
- המאפיין
outline-offset
מציין את המרחק בין המסגרת לאלמנט. - ניתן לציין ערכים מדויקים ביחידות כמו
px
,em
וכו׳.
מאפיין box-shadow
1.box-shadow-basic-shadow, .box-shadow-inset-shadow, .box-shadow-multiple-shadow {
2 background-color: lightsteelblue;
3}
4
5/* Basic shadow */
6.box-shadow-basic-shadow {
7 box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.5);
8}
9
10/* Inner shadow */
11.box-shadow-inset-shadow {
12 box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.3);
13}
14
15/* Multiple shadows */
16.box-shadow-multiple-shadow {
17 box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5),
18 -5px -5px 10px rgba(255, 0, 0, 0.5);
19}
מאפיין ה-box-shadow
משמש להוספת צללים לאלמנטים. באמצעות מאפיין זה, ניתן ליצור צללים סביב אלמנטים כדי להעניק תחושת ממדיות ועומק.
הסבר:
-
במחלקה
box-shadow-basic-shadow
, צל שחור מטושטש מוצג בפינה הימנית התחתונה של האלמנט. -
במחלקה
box-shadow-inset-shadow
, צל מטושטש מוצג בתוך האלמנט. עם הצל שנכנס פנימה, ניתן להשיג עיצוב שקוע. -
במחלקה
box-shadow-multiple-shadow
, שני צללים, שחור ואדום, מוחלים על האלמנט. מאחר שהם מוצגים במיקומים שונים, נוצר אפקט תלת-ממדי.
פורמט של מאפיין box-shadow
1box-shadow: [1:horizontal offset] [2:vertical offset] [3:blur radius] [4:spread radius] [5:color];
2box-shadow: inset [1:horizontal offset] [2:vertical offset] [3:blur radius] [4:spread radius] [5:color];
משמעות של כל ערך
הערך הראשון horizontal offset
הוא ההיסט האופקי, שמגדיר את המיקום של הצל מהצד השמאלי של האלמנט. הגדרת ערך חיובי ממקמת את הצל מימין, וערך שלילי ממקם אותו משמאל.
הערך השני vertical offset
הוא ההיסט האנכי, שמגדיר את מיקום הצל מהצד העליון של האלמנט. הגדרת ערך חיובי ממקמת את הצל מתחת, וערך שלילי ממקם אותו מעל.
הערך השלישי blur radius
מגדיר את מידת הטשטוש וקובע עד כמה הצל מטושטש. ככל שהערך גדול יותר, הצל מתפשט יותר ונעשה מטושטש יותר. הגדרת ערך חיובי ממקמת את הצל מתחת, וערך שלילי ממקם אותו מעל. ערך זה הוא אופציונלי, והברירת מחדל היא 0
, כלומר ללא טשטוש לצל.
הערך הרביעי spread radius
מגדיר את טווח התפשטות הצל וקובע כמה הוא יגדל או יתכווץ. הגדרת ערך חיובי תגדיל את הצל, בעוד שערך שלילי תקטין אותו. גם ערך זה הוא אופציונלי.
הערך החמישי color
הוא ערך הצבע, שמגדיר את צבע הצל. ניתן להגדיר צבעים באמצעות שמות צבעים, RGB, HEX, HSL ומודלי צבע נוספים הזמינים ב-CSS. אם הערך לא נקבע, צבע הטקסט ברירת המחדל של האלמנט (ערך של תכונת color
) יחול.
ניתן גם להגדיר תחילה את מילת המפתח inset
. הגדרת מילת המפתח inset
מציירת את הצל בתוך האלמנט ולא מחוצה לו. ניתן גם להגדיר מספר צללים מופרדים באמצעות פסיקים.
דוגמה של box-shadow
דוגמה לצל בסיסי
1div {
2 box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.5);
3}
- ההיסט האופקי הוא
10px
, מה שיוצר צל 10 פיקסלים ימינה. - ההיסט האנכי הוא
10px
, מה שיוצר צל 10 פיקסלים למטה. - רדיוס הטשטוש הוא
5px
, מה שמייצר טשטוש צל של 5 פיקסלים. - הצבע הוא
rgba(0, 0, 0, 0.5)
, מה שיוצר שחור חצי-שקוף.
דוגמה לצל פנימי
1div {
2 box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.3);
3}
- שימוש ב-
inset
מצייר את הצל בתוך האלמנט.
דוגמה לצללים מרובים
1div {
2 box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5), -5px -5px 10px rgba(255, 0, 0, 0.5);
3}
- אפשר גם להגדיר צללים מרובים המופרדים בפסיקים. בדוגמה זו, מוחלים שני צללים: צל שחור וצל אדום.
סיכום
box-shadow
היא תכונה המשמשת להוספת צללים לאלמנטים כדי ליצור תחושת עומק.- על ידי שילוב של היסטים אופקיים ואנכיים, טשטוש, רדיוס התפשטות וצבע, ניתן להשיג מגוון אפקטים.
- ניתן לצייר צללים פנימיים עם
inset
, וגם להגדיר צללים מרובים בו זמנית.
תוכלו לעקוב אחר המאמר שלמעלה באמצעות Visual Studio Code בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.