איך מוסיפים קו תחתון לטקסט ב-CSS
text-decoration: underline מצייר קו מתחת לטקסט. הקו מקבל את צבע הטקסט, אלא אם נותנים לו צבע משלו.
השורה השנייה משתמשת בקיצור text-decoration לסוג הקו, לסגנון ולצבע, ואז קובעת את העובי ואת המרחק עם המאפיינים שלהם. המפרט מאפשר גם לכתוב את העובי בתוך הקיצור, אבל Safari זונח את כל ההצהרה כשמכניסים אותו, ולכן כתבו את text-decoration-thickness בנפרד.
המאפיינים של text-decoration
| מאפיין | ערכים | ברירת מחדל |
|---|---|---|
text-decoration-line | underline, overline, line-through, none (אפשר לשלב) | none |
text-decoration-style | solid, double, dotted, dashed, wavy | solid |
text-decoration-color | כל צבע | currentColor (צבע הטקסט) |
text-decoration-thickness | אורך, אחוז, auto, from-font | auto |
text-underline-offset | אורך, אחוז, auto | auto |
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, שהקישוט של ההורה לא מגיע אליו.