Menu

CSS Underline: text-decoration, צבע, מרחק והסרה

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

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

איך מוסיפים קו תחתון לטקסט ב-CSS

text-decoration: underline מצייר קו מתחת לטקסט. הקו מקבל את צבע הטקסט, אלא אם נותנים לו צבע משלו.

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

המאפיינים של text-decoration

מאפייןערכיםברירת מחדל
text-decoration-lineunderline, overline, line-through, none (אפשר לשלב)none
text-decoration-stylesolid, double, dotted, dashed, wavysolid
text-decoration-colorכל צבעcurrentColor (צבע הטקסט)
text-decoration-thicknessאורך, אחוז, auto, from-fontauto
text-underline-offsetאורך, אחוז, autoauto

text-decoration הוא הקיצור של ארבעת הראשונים, אבל השאירו את העובי מחוצה לו: Safari מתעלם מהצהרת text-decoration שמכילה אותו. text-underline-offset נפרד וצריך לכתוב אותו לבד.

סגנונות, צבעים ועובי

הזזת הקו התחתון: text-underline-offset

כברירת מחדל הקו יושב קרוב לאותיות ומדלג סביב חלקים יורדים כמו g, p ו-y. text-underline-offset דוחף אותו עוד למטה, ולעתים קרובות זה נקרא נקי יותר בכותרות ובקישורים:

הרווחים סביב החלקים היורדים מגיעים מ-text-decoration-skip-ink: auto, שפועל כברירת מחדל. הגדירו אותו ל-none לקו רציף.

הסרת הקו התחתון מקישורים

גיליון הסגנונות של הדפדפן מוסיף לקישורים קו תחתון. text-decoration: none מסיר אותו. מכיוון שקוראים רבים מזהים קישורים לפי הקו התחתון, החזירו אותו ב-hover ובפוקוס מקלדת, ותנו לקישור צבע ששונה מהטקסט:

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

קו עליון וקו חוצה

text-decoration-line מצייר גם קו מעל הטקסט או דרכו, ומקבל יותר מערך אחד:

.old-price { text-decoration: line-through; }
.both      { text-decoration-line: underline overline; }

קו חוצה דרך CSS הוא ויזואלי בלבד. כשהטקסט הוא תוכן שנמחק (מחיר שהשתנה, פריט שהוסר), סמנו אותו עם <s> או <del>, כמו שמראה הדף על קו תחתון ב-HTML, כדי שהמשמעות תהיה בסימון ולא רק בעיצוב.

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

  • שימוש ב-<u> לקו תחתון לצורך עיצוב. <u> מיועד לטקסט שמסומן כשונה, כמו שגיאות כתיב. לקו תחתון מעוצב, השתמשו ב-CSS.
  • קו תחתון לטקסט שאינו קישור. קוראים ינסו ללחוץ עליו. להדגשה, השתמשו במקום זאת בהדגשה, בצבע או ברקע.
  • הסרת קווים תחתונים מקישורים בטקסט רץ בלי סימן אחר. צבע לבדו לא מספיק לקוראים שלא רואים את ההבדל.
  • לנסות להסיר את הקו התחתון של ההורה מתוך ילד. אי אפשר לבטל אותו מבפנים; שנו את ההורה או הפכו את הילד ל-inline-block.
  • לצפות ל-text-underline-offset בתוך הקיצור. זה מאפיין בפני עצמו.
  • לשים את העובי בקיצור. text-decoration: underline 2px עובד ב-Chrome וב-Firefox, אבל Safari זונח את כל ההצהרה. השתמשו ב-text-decoration-thickness.

שאלות נפוצות

איך מוסיפים קו תחתון לטקסט ב-CSS?

השתמשו ב-text-decoration: underline; על האלמנט. למראה של הקו, הוסיפו text-decoration-color, text-decoration-style, text-decoration-thickness ו-text-underline-offset.

איך מסירים את הקו התחתון מקישור?

הגדירו text-decoration: none; על האלמנט a. ודאו שהקישורים עדיין בולטים בדרך אחרת (צבע ועוד קו תחתון ב-hover או בפוקוס), כי קוראים רבים מסתמכים על הקו התחתון כדי לזהות קישורים.

איך משנים את צבע הקו התחתון?

השתמשו ב-text-decoration-color, או בקיצור: text-decoration: underline #f59e0b;. בלי זה, הקו משתמש בצבע הטקסט.

איך מוסיפים מרווח בין הטקסט לקו התחתון?

השתמשו ב-text-underline-offset, למשל text-underline-offset: 4px;. ערכים גדולים יותר מרחיקים את הקו מתחת לטקסט.

למה אי אפשר להסיר את הקו התחתון מאלמנט ילד?

קו תחתון שמצייר הורה נמתח על פני הילדים שלו ואי אפשר להסיר אותו מבפנים. הסירו אותו מהאלמנט שמגדיר אותו, או הפכו את הילד ל-display: inline-block, שהקישוט של ההורה לא מגיע אליו.

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

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

להתחיל