Menu

HTML center text: text-align, מרכוז אנכי והזחה

מרכזו טקסט ב-HTML עם מאפיין ה-CSS text-align: center. למדו איפה לשים אותו, למה הוא לא עובד על span, איך למרכז טקסט אנכית בתוך תיבה, איך ליישר טקסט להתחלה, לסוף או לשני הצדדים, ואיך להזיח פסקאות.

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

איך ממרכזים טקסט ב-HTML

השתמשו במאפיין ה-CSS text-align: center על האלמנט שמחזיק את הטקסט:

text-align ממרכז כל שורה בתוך האלמנט, כולל דברים inline כמו קישורים, תמונות וכפתורים. הוא עובר בירושה, כך שהגדרה שלו על מכל ממרכזת את הטקסט בכל מה שבתוכו.

שימו אותו על הבלוק, לא על ה-span

text-align עובד על מכלי בלוק: <p>, <div>, כותרות, תאי טבלה. על <span> או <a> הוא לא עושה כלום, כי אלמנט inline רחב רק כמו הטקסט שלו ואין מקום למרכז בתוכו:

התיקון תמיד זהה: העבירו את text-align: center לבלוק ההורה.

למרכז את הבלוק, ליישר את השורות להתחלה

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

margin-inline: auto ממרכז בלוק שיש לו רוחב, ו-text-align ממרכז את השורות שבתוכו. מרכוז של תיבות (עם flexbox, grid או שוליים) מוסבר בעמוד מרכוז div.

מרכוז טקסט אנכית

text-align עובד רק אופקית. כדי למרכז טקסט אנכית בתוך תיבה, הפכו את התיבה למכל flex:

align-items: center ממרכז אנכית, justify-content: center ממרכז אופקית, ו-text-align: center עדיין ממרכז את השורות זו ביחס לזו כשיש כמה. הטריק של line-height עובד רק לשורת טקסט אחת בתיבה בגובה ידוע.

כל הערכים של text-align

ערךתוצאה
start (ברירת מחדל)השורות מתחילות בקצה ההתחלה: שמאל באנגלית, ימין בערבית ובעברית
endהשורות מסתיימות בקצה הסוף
centerהשורות ממורכזות
justifyהשורות נמתחות עד שני הקצוות (חוץ מהשורה האחרונה)
left, rightתמיד שמאל או תמיד ימין, בלי קשר לשפה

העדיפו start ו-end על פני left ו-right: הם מתהפכים אוטומטית בשפות מימין לשמאל, כפי שהתיבה האחרונה מראה.

התגית center הישנה

עמודים ישנים ממרכזים טקסט עם <center> או עם מאפיין align:

<center>Old way</center>
<p align="center">Also old</p>

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

הזחת טקסט

ב-HTML אין תגית הזחה, ורווחים שמוקלדים מתכווצים (ראו רווחים ב-HTML). הזחות הן CSS:

הזחהCSS
רק השורה הראשונהtext-indent: 2em
כל הבלוקpadding-inline-start: 2em או margin-inline-start: 2em
הזחה תלויה (השורה הראשונה בולטת החוצה)padding-inline-start: 2em; text-indent: -2em

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

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

  • text-align על אלמנט inline. שימו אותו על הבלוק ההורה.
  • ציפייה ש-text-align ימרכז תיבה. הוא ממרכז טקסט ותוכן inline, לא בלוק עם רוחב. השתמשו ב-margin-inline: auto או ב-flexbox לתיבות.
  • שימוש ב-<center> או align="center". מיושן. השתמשו ב-CSS.
  • מרכוז של פסקאות ארוכות. מרכזו כותרות ושורות קצרות; השאירו את טקסט הגוף מיושר להתחלה.
  • הזחה עם &nbsp; או רווחים. השתמשו ב-text-indent או בריפוד.

שאלות נפוצות

איך ממרכזים טקסט ב-HTML?

הוסיפו text-align: center לאלמנט שמכיל את הטקסט, למשל <p style="text-align: center"> או כלל CSS כמו h1 { text-align: center; }. הוא ממרכז כל שורת טקסט וכל תוכן inline בתוך האלמנט.

למה text-align: center לא עובד על ה-span שלי?

span הוא אלמנט inline, ולכן הוא רחב רק כמו הטקסט שלו ואין מקום למרכז בתוכו. שימו את text-align: center על הבלוק ההורה (ה-<p> או ה-<div> שסביבו), או הפכו את ה-span ל-display: block.

איך ממרכזים טקסט אנכית?

הפכו את המכל ל-flex: display: flex; align-items: center; (הוסיפו justify-content: center כדי למרכז גם אופקית). לשורה אחת בתיבה בגובה קבוע, line-height ששווה לגובה גם עובד.

האם התגית <center> עדיין תקינה?

לא. <center> והמאפיין align="center" מיושנים. דפדפנים עדיין מציגים אותם בשביל עמודים ישנים, אבל קוד חדש צריך להשתמש ב-text-align: center ב-CSS.

איך מזיחים טקסט ב-HTML?

השתמשו ב-CSS. text-indent: 2em מזיח את השורה הראשונה של פסקה, ו-padding-inline-start: 2em או margin-inline-start: 2em מזיחים את כל הבלוק. רווחים או &nbsp; בטקסט אינם הזחה אמינה.

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

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

להתחיל