Menu

CSS Border: עובי, סגנון, צבע ו-Border Radius

המאפיין border מצייר קו סביב ה-padding של אלמנט. למדו את הקיצור border, את כל סגנונות הגבול, צבעים וצד בודד, פינות מעוגלות עם border-radius, ובמה גבולות שונים מ-outline.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

הקיצור border

border מצייר קו סביב אלמנט, בין ה-padding שלו ל-margin שלו. הקיצור מקבל שלושה חלקים בכל סדר: עובי, סגנון וצבע.

חלקמאפיין מלאערכיםברירת מחדל
עוביborder-width1px, 0.2em, thin, medium, thickmedium
סגנוןborder-stylesolid, dashed, dotted, double, ועודnone
צבעborder-colorכל צבעcurrentColor (צבע הטקסט)

את הסגנון אי אפשר לדלג עליו. ברירת המחדל שלו היא none, ולכן border: 2px #2563eb; לא מצייר כלום. אם משמיטים את הצבע, הגבול מקבל את צבע הטקסט של האלמנט.

סגנונות גבול

double צריך לפחות 3px כדי להציג שני קווים. groove, ridge, inset ו-outset מצללים את הצבע כדי שייראה תלת ממדי, ונראים מעט שונה בין דפדפנים. hidden נראה כמו none; ההבדל ביניהם קיים רק בטבלאות עם גבולות ממוזגים, שעליהן מסביר עמוד גבולות הטבלה ב-HTML.

צד אחד בכל פעם

לכל צד יש קיצור משלו (border-top, border-right, border-bottom, border-left), ולכל חלק יש מאפיינים מלאים לכל צד, כמו border-top-color. הגרסאות הלוגיות, border-inline-start ו-border-block-end, עוקבות אחרי כיוון הטקסט:

border-color, border-width ו-border-style מקבלים בין ערך אחד לארבעה, באותו סדר של כיוון השעון כמו ב-padding: למעלה, ימין, למטה, שמאל.

פינות מעוגלות עם border-radius

border-radius מעגל את הפינות של הגבול וגם של הרקע, כך שהוא עובד גם על אלמנטים בלי גבול בכלל.

ערךתוצאה
border-radius: 8pxכל הפינות מעוגלות ב-8px
border-radius: 50%עיגול על אלמנט ריבועי, אליפסה על מלבן
border-radius: 999pxגלולה: הצלעות הקצרות הופכות לחצאי עיגול מלאים
border-radius: 8px 0עליונה שמאלית ותחתונה ימנית 8px, השתיים האחרות ישרות
border-top-left-radius: 12pxפינה אחת בלבד
border-radius: 50% / 25%פינות אליפטיות: רדיוס אופקי / רדיוס אנכי

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

Border מול outline

Outline נראה כמו גבול, אבל מצויר מחוצה לו ולא תופס מקום, כך שהוספה שלו אף פעם לא מזיזה שום דבר. לכן דפדפנים משתמשים ב-outline לטבעות פוקוס.

BorderOutline
תופס מקוםכן, חלק מגודל התיבהלא
לכל צדכן (border-top, ...)לא, מסביב לכל התיבה
עוקב אחרי border-radiusכןכן, בדפדפנים הנוכחיים
מרחק מהתיבהלאכן, outline-offset
שימוש טיפוסיעיצובמחווני פוקוס, דיבוג

טעויות נפוצות

  • אין סגנון גבול. border: 1px #111827; ו-border-color: red; לא מציירים כלום. כללו solid (או סגנון אחר).
  • גבול שגורם לפריסה לקפוץ ב-hover. שמרו את המקום עם גבול שקוף, או השתמשו ב-outline או ב-box-shadow.
  • שכחה של הגבול בחישוב הרוחב. אלמנט עם width: 100% וגבול גולש מהמכל שלו תחת content-box. השתמשו ב-box-sizing: border-box.
  • border-radius עם ילד שבולט מהפינות. הוסיפו overflow: hidden להורה המעוגל.
  • הסרת טבעות פוקוס עם outline: none. משתמשי מקלדת צריכים אותן; עצבו את ה-outline מחדש במקום למחוק אותו.

שאלות נפוצות

איך מוסיפים גבול ב-CSS?

משתמשים בקיצור עם עובי, סגנון וצבע: border: 2px solid #2563eb;. הסגנון הוא החלק החשוב ביותר: בלעדיו, סגנון הגבול הוא none ושום גבול לא מצויר.

למה הגבול שלי ב-CSS לא מופיע?

כמעט תמיד כי לא הוגדר סגנון גבול. border: 2px #2563eb; או border-color: red; לבד לא מציירים כלום, כי ברירת המחדל של border-style היא none. הוסיפו solid, dashed או סגנון אחר.

איך יוצרים פינות מעוגלות ב-CSS?

משתמשים ב-border-radius: border-radius: 8px; מעגל את כל ארבע הפינות. border-radius: 50%; על ריבוע יוצר עיגול, וערך גדול כמו 999px יוצר צורת גלולה. הוא מעגל גם את הרקע, גם בלי גבול.

איך מוסיפים גבול רק לצד אחד?

משתמשים במאפיין של צד: border-bottom: 2px solid #e5e7eb;, או border-inline-start לצד שבו הטקסט מתחיל, שעובד גם בשפות שנכתבות מימין לשמאל.

מה ההבדל בין border ל-outline?

גבול הוא חלק מהתיבה: הוא תופס מקום ומשנה את גודל האלמנט. Outline מצויר מחוץ לגבול בלי לתפוס מקום, אי אפשר לקבוע אותו לכל צד בנפרד, ובו דפדפנים משתמשים לטבעות פוקוס. שניהם עוקבים אחרי border-radius בדפדפנים הנוכחיים.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל