Menu

רווח ב-HTML:  , כמה רווחים ו-white-space

דפדפנים מכווצים כל רצף של רווחים ב-HTML לרווח אחד. למדו איך להוסיף רווחים נוספים עם &nbsp;, מה עושה רווח בלתי שביר, איך לשמור רווחים וטאבים עם <pre> ו-white-space, ומתי ריווח ב-CSS הוא הכלי הטוב יותר.

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

הוספת רווחים ב-HTML

הקלידו חמישה רווחים בין שתי מילים ב-HTML והדפדפן מציג אחד. כל רצף של רווחים, טאבים וירידות שורה מתכווץ לרווח אחד. כדי להוסיף רווחים נוספים, השתמשו בישות הרווח הבלתי שביר &nbsp;, פעם אחת לכל רווח:

&nbsp; מתאים לכמה רווחים בשורת טקסט. לרווחים גדולים יותר, או לרווח בין אלמנטים, השתמשו ב-CSS, כפי שמוצג בהמשך.

מה   עושה

&nbsp; הוא הרווח הבלתי שביר (התו U+00A0). יש לו שתי השפעות:

  1. הוא אף פעם לא מתכווץ, כך ששלושה כאלה יוצרים שלושה רווחים.
  2. השורה אף פעם לא נשברת בו, כך שהמילים משני צדדיו נשארות יחד.

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

בתיבה האפורה "10" ו-"km" נוחתים בשורות שונות. בירוקה אי אפשר להפריד ביניהם. כדי לשמור קטע ארוך יותר יחד, white-space: nowrap על span קל יותר משרשור ישויות; ראו את העמוד על ירידת שורה.

ישויות רווח ברוחבים שונים

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

ישותשםרוחב
&nbsp;רווח בלתי שבירכמו רווח רגיל
&ensp;En spaceחצי em
&emsp;Em spaceem אחד (גודל הגופן)
&thinsp;רווח דקחלק מ-em, תלוי בגופן
&#8239;רווח צר בלתי שבירדק, ובלי שבירת שורה

ההדגשה הכחולה מראה את הרוחב של כל רווח. רק &nbsp; ו-&#8239; גם מונעים שבירת שורה.

לשמור כל רווח: pre ו-white-space

כשהריווח הוא חלק מהתוכן (קוד, ציורי ASCII, עמודות מיושרות, שירה), שמרו את כל הרווחים הלבנים במקום להוסיף ישויות. האלמנט <pre> עושה את זה כברירת מחדל, והמאפיין white-space של CSS עושה את זה לכל אלמנט:

ערך white-spaceרווחיםירידות שורהגלישת שורות ארוכות
normal (ברירת מחדל)מתכווציםהופכות לרווחיםכן
nowrapמתכווציםהופכות לרווחיםלא
preנשמריםנשמרותלא
pre-wrapנשמריםנשמרותכן
pre-lineמתכווציםנשמרותכן

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

גם טאבים נשמרים בתוך pre. הרוחב שלהם הוא 8 רווחים כברירת מחדל, והמאפיין tab-size משנה אותו (tab-size: 4).

ריווח עם CSS

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

margin ו-padding מרווחים אלמנטים, gap מרווח פריטים בתוך מיכל flex או grid, letter-spacing ו-word-spacing מרווחים את הטקסט עצמו. כדי להזיח את השורה הראשונה של פסקה, השתמשו ב-text-indent, שמוסבר בעמוד על מרכוז טקסט.

הרווח בין אלמנטים inline

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

לזוג הראשון יש רווח מירידת השורה בקוד המקור. במיכל flex הרווח הלבן בין הפריטים מוזנח, ולכן הזוג השני צמוד. השתמשו ב-flex וב-gap כשרוצים לשלוט ברווח במדויק.

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

  • שרשראות של &nbsp; בשביל פריסה. הן נשברות ברגע שהגופן או גודל המסך משתנים. השתמשו ב-margin, padding או gap.
  • להקליד רווחים נוספים ולצפות שיופיעו. הם מתכווצים. השתמשו ב-&nbsp; או ב-white-space: pre-wrap.
  • לכתוב &nbsp בלי נקודה-פסיק. דפדפנים בדרך כלל מקבלים את זה, אבל זה לא תקין ונכשל במקומות מסוימים. סיימו תמיד ב-;.
  • להשתמש ב-&nbsp; בכל מקום כדי למנוע גלישה. רצף ארוך של טקסט בלתי שביר גולש החוצה בטלפונים. חברו רק את מה שחייב להישאר יחד.
  • הזחת פסקאות ברווחים. השתמשו ב-text-indent ב-CSS.

שאלות נפוצות

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

רווח בודד עובד כפי שהוקלד, אבל רווחים נוספים מתכווצים לאחד. ליותר, השתמשו בישות הרווח הבלתי שביר &nbsp;, אחת לכל רווח: a&nbsp;&nbsp;&nbsp;b. לרווחים בפריסה, השתמשו ב-margin, padding או gap של CSS במקום.

מה פירוש &nbsp; ב-HTML?

&nbsp; הוא רווח בלתי שביר. הוא נראה כמו רווח רגיל, אבל הדפדפן אף פעם לא שובר בו שורה ואף פעם לא מכווץ אותו, כך שהוא שומר מילים כמו 10&nbsp;km יחד ומאפשר להוסיף רווחים נוספים.

למה HTML מתעלם מהרווחים שלי?

HTML מכווץ רווחים לבנים: כל רצף של רווחים, טאבים וירידות שורה מוצג כרווח אחד, ורווחים בתחילת שורה ובסופה מוסרים. השתמשו ב-&nbsp;, ב-<pre> או במאפיין white-space של CSS כדי לשמור אותם.

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

ל-HTML אין טאב גלוי מחוץ לטקסט מעוצב מראש. בתוך <pre> או אלמנט עם white-space: pre, תו טאב נשמר, והמאפיין tab-size של CSS קובע את הרוחב שלו. להזחת פסקה, השתמשו ב-text-indent או ב-padding-inline-start ב-CSS.

מה ההבדל בין &nbsp; ל-&emsp;?

&nbsp; רחב כמו רווח רגיל. &ensp; ברוחב חצי em ו-&emsp; ברוחב em אחד (הרוחב של גודל הגופן). &ensp; ו-&emsp; לא מתכווצים, אבל בניגוד ל-&nbsp; שורה עדיין יכולה להישבר בהם.

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

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

להתחיל