איך ממרכזים טקסט ב-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. - מרכוז של פסקאות ארוכות. מרכזו כותרות ושורות קצרות; השאירו את טקסט הגוף מיושר להתחלה.
- הזחה עם
או רווחים. השתמשו ב-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 מזיחים את כל הבלוק. רווחים או בטקסט אינם הזחה אמינה.