Menu

CSS Padding: קיצור, צדדים, אחוזים ודוגמאות

Padding הוא המרווח בתוך אלמנט, בין התוכן שלו לגבול שלו. למדו את הקיצור padding עם 1 עד 4 ערכים, את המאפיינים של צד אחד, padding לוגי, אחוזים, ואיך padding משנה את גודל האלמנט.

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

מה זה padding

Padding הוא המרווח בתוך אלמנט, בין התוכן שלו לגבול שלו. הוא מקבל את הרקע של האלמנט, ולכן זה המאפיין שנותן לכפתור, לכרטיס או לתג מקום לנשום.

האזור הכחול הוא התוכן. הרצועה הירוקה סביבו היא 24px של padding בכל צד, והגבול יושב מחוץ לה.

הקיצור padding: 1, 2, 3 או 4 ערכים

padding קובע את כל ארבעת הצדדים בהצהרה אחת. מספר הערכים קובע איזה צד מקבל מה, עם כיוון השעון מלמעלה:

הצהרהלמעלהימיןלמטהשמאל
padding: 10px;10101010
padding: 10px 20px;10201020
padding: 10px 20px 30px;10203020
padding: 10px 20px 30px 40px;10203040

שני ערכים פירושם "אנכי, אופקי". שלושה ערכים פירושם "למעלה, אופקי, למטה". ארבעה הולכים סביב השעון: למעלה, ימין, למטה, שמאל (טריק זיכרון נפוץ באנגלית הוא TRouBLe).

הקלידו כל קיצור למטה. הקופסה מצוירת מחדש והדפדפן מדווח מה כל צד קיבל:

נסו 8px, 8px 24px, 0 0 40px ו-1em 5%. ערך לא תקין, כמו -10px, נזנח והקופסה שומרת את ה-padding התקין האחרון.

צד אחד בכל פעם

לכל צד יש מאפיין משלו, שברור יותר מקיצור של ארבעה ערכים כשרוצים לשנות רק צד אחד:

.card {
  padding-top: 16px;
  padding-right: 24px;
  padding-bottom: 16px;
  padding-left: 24px;
}

קיצור ואחריו צד אחד הוא תבנית נפוצה: קובעים הכול, ואז מתקנים צד אחד.

.card {
  padding: 16px;
  padding-bottom: 32px; /* only the bottom changes */
}

הסדר חשוב כאן: קיצור padding שנכתב אחרי padding-bottom היה מאפס את הצד התחתון חזרה ל-16px.

padding לוגי: padding-inline ו-padding-block

padding-left ו-padding-right הם פיזיים: הם נשארים באותו צד בכל שפה. המאפיינים הלוגיים עוקבים במקום זאת אחרי כיוון הכתיבה, וזה מה שרוצים באתר שמוצג גם מימין לשמאל:

מאפיין לוגיבאנגלית (משמאל לימין)בערבית (מימין לשמאל)
padding-inline-startשמאלימין
padding-inline-endימיןשמאל
padding-inlineשמאל וימיןימין ושמאל
padding-blockלמעלה ולמטהלמעלה ולמטה

padding מגדיל את הקופסה (אלא אם יש border-box)

כברירת מחדל, width הוא רוחב התוכן בלבד, וה-padding מתווסף מעליו. קופסה עם width: 200px ו-padding: 20px רחבה 240px:

box-sizing: border-box שומר את הקופסה ב-200px ולוקח את ה-padding מבפנים. הדף על box model מכסה את החישוב המלא.

padding באחוזים

padding באחוזים נמדד ביחס לרוחב של ההורה, בכל ארבעת הצדדים, כולל למעלה ולמטה:

מכאן הגיע הטריק הישן "padding-top: 56.25%" לקופסאות וידאו ביחס 16:9. היום aspect-ratio: 16 / 9 עושה את אותה עבודה ישירות.

padding על כפתורים וקישורים

padding הוא הדרך הנכונה להגדיל קישור או כפתור, כי padding הוא חלק מהאלמנט ולכן חלק ממה שאפשר ללחוץ או להקיש עליו. margin היה מוסיף מרווח, אבל לא מטרה גדולה יותר.

.btn {
  display: inline-block; /* lets vertical padding take space in the line */
  padding: 10px 18px;    /* a comfortable touch target */
}

ערכים ש-padding מקבל

ערךדוגמההערות
אורך12px, 1rem, 0.5emem משתנה לפי גודל הגופן של האלמנט
אחוז5%מרוחב הבלוק המכיל
0padding: 0לא צריך יחידה
שלילי-10pxלא תקין, נזנח
autoautoלא תקין ל-padding (עובד ל-margin)

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

  • סדר שגוי בקיצור של ארבעה ערכים. הסדר הוא למעלה, ימין, למטה, שמאל, עם כיוון השעון.
  • קופסה שגדלה כשמוסיפים padding. הגדירו box-sizing: border-box.
  • שימוש ב-padding כדי להפריד בין שני אלמנטים. מרווח בין אלמנטים הוא margin; padding הוא מרווח בתוך אלמנט אחד. ראו margin מול padding.
  • padding אנכי על קישור inline שחופף שורות אחרות. הפכו אותו ל-inline-block.
  • padding שלילי או padding: auto. שניהם לא תקינים ונזנחים בשקט.

שאלות נפוצות

מה זה padding ב-CSS?

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

באיזה סדר נכתבים הערכים בקיצור padding?

עם כיוון השעון מלמעלה: padding: top right bottom left;. עם שלושה ערכים הסדר הוא למעלה, שמאל וימין, למטה; עם שני ערכים, למעלה ולמטה ואז שמאל וימין; עם ערך אחד, כל ארבעת הצדדים.

האם padding מגדיל את גודל האלמנט?

עם ברירת המחדל box-sizing: content-box, כן: ה-padding מתווסף ל-width ול-height. עם box-sizing: border-box, ה-padding נלקח מתוך הרוחב, כך שהאלמנט שומר על הגודל שהגדרתם.

ביחס למה מחושב padding באחוזים?

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

האם padding יכול להיות שלילי?

לא. ערך padding שלילי לא תקין וההצהרה נזנחת. כדי למשוך תוכן החוצה, השתמשו במקום זאת ב-margin שלילי.

איך מוסיפים padding ב-HTML?

עם CSS, בגיליון סגנונות או במאפיין style: <div style="padding: 16px;">. ל-HTML אין מאפיין padding לאלמנטים רגילים; המאפיין הישן cellpadding של טבלאות מיושן והוחלף ב-padding על td ו-th.

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

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

להתחיל