Menu

HTML header: התגית header, דוגמאות ו-header דביק

האלמנט <header> מכיל את הפתיחה של עמוד או של קטע: לוגו, כותרת, ניווט, שם הכותב. למדו איך לבנות header לאתר, במה <header> שונה מ-<head> ומכותרות, איך משתמשים בו בתוך מאמרים, ואיך הופכים אותו לדביק.

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

איך יוצרים header ב-HTML

עטפו את החלק העליון של העמוד (לוגו, שם האתר, תפריט ראשי) באלמנט <header>. זו תיבת בלוק בלי מראה ברירת מחדל, כך שכמה שורות CSS הופכות אותה לפס:

margin-inline-end: auto על הלוגו דוחף את התפריט ואת הכפתור לקצה השני של הפס. הסירו את האלמנט <style> ועדיין יהיה לכם header: התגית היא מה שהופך אותו ל-header, לא הרקע הכהה.

header מול head מול h1

שלושה שמות שנשמעים דומים ועושים עבודות שונות:

אלמנטאיפהגלויכמה
<head>ישירות בתוך <html>, לפני <body>לא: מכיל <title>, <meta>, <link>בדיוק אחד
<header>בתוך <body>כן: תוכן פתיחה של עמוד או קטעכל מספר
<h1> עד <h6>בכל מקום ב-<body>כן: כותרתכל מספר

ה-<head> שלמטה קובע את כותרת העמוד שהדפדפן מציג בלשונית. כל מה שאפשר לראות בתצוגה המקדימה מגיע מ-<body>:

header מכיל לעיתים קרובות כותרת, אבל הוא לא חייב, וכותרת לא צריכה header סביבה.

header בתוך מאמרים

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

עבור קוראי מסך, רק ה-header ברמת העמוד (כזה שלא נמצא בתוך article, aside, main, nav או section) הופך ל-landmark מסוג banner. ה-header של המאמרים הם קבוצות רגילות, כך שלא יוצא שיש כמה banners.

header דביק

position: sticky משאיר את ה-header למעלה בזמן שהתוכן מתחתיו נגלל. גללו בתוך התיבה שלמטה:

שלושה פרטים גורמים לזה לעבוד: top: 0 (sticky לא עושה כלום בלי היסט), צבע רקע (אחרת השורות נראות דרכו), ו-z-index כדי שתוכן ממוקם לא יצויר מעליו. בעמוד אמיתי תיבת הגלילה היא העמוד עצמו, ולכן ה-header יושב ישירות ב-<body>.

גם header עם position: fixed נשאר במקום, אבל הוא יוצא מזרימת העמוד, כך שהתוכן מחליק מתחתיו וצריך ריפוד למעלה. sticky שומר על המקום שלו בפריסה.

מה יכול להיכנס ל-header

header יכול להכיל כמעט כל תוכן: כותרות, תמונת לוגו, <nav>, טופס חיפוש, כפתור. הוא לא יכול להכיל <header> נוסף או <footer>, והוא לא יכול לשבת בתוך <footer>, <address> או <header> אחר.

<header>
  <a href="/"><img src="logo.svg" alt="Acme home"></a>
  <nav aria-label="Main">...</nav>
  <form role="search">...</form>
</header>

כשהלוגו הוא קישור לעמוד הבית, טקסט ה-alt שלו צריך לומר לאן הקישור מוביל ("Acme home"), כי זה מה שקורא מסך מכריז.

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

  • בלבול בין <header> ל-<head>. מטא דאטה נכנס ל-<head>; תוכן גלוי אף פעם לא.
  • שימוש ב-<header> לכל כותרת. כותרת לבדה לא צריכה עטיפת header. השתמשו ב-<header> כשיש קבוצה של תוכן פתיחה.
  • header דביק בלי רקע. טקסט העמוד נגלל ונראה דרכו. הגדירו background.
  • sticky שלא נדבק. אב קדמון עם overflow: hidden או overflow: auto הופך לתיבת הגלילה של sticky, כך שה-header נדבק בתוך התיבה הזו (או בכלל לא). בדקו את האבות הקדמונים.
  • שימת תפריט האתר ב-<div> בתוך ה-header. השתמשו ב-<nav> כדי שמשתמשי קוראי מסך יוכלו לקפוץ אליו.

שאלות נפוצות

מה זו התגית header ב-HTML?

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

מה ההבדל בין head ל-header ב-HTML?

<head> הוא החלק הבלתי נראה של המסמך עם ה-<title>, תגיות ה-<meta> והקישורים לגיליונות סגנון, ויש בדיוק אחד כזה. <header> הוא תוכן גלוי בתוך <body>, ובעמוד יכולים להיות כמה.

יכול להיות בעמוד יותר מאלמנט header אחד?

כן. לעמוד יש בדרך כלל header אחד של האתר, ולכל <article> או <section> יכול להיות <header> משלו לכותרת ולמידע הנלווה. רק header שלא נמצא בתוך article, aside, main, nav או section נחשב ל-banner של העמוד עבור קוראי מסך.

האם ה-nav צריך להיות בתוך ה-header?

הוא יכול, ולעיתים קרובות הוא נמצא שם כשהתפריט הראשי יושב בראש העמוד. גם שימת <nav> מחוץ ל-<header> תקינה; בחרו מה שמתאים לפריסה שלכם.

איך גורמים ל-header להישאר למעלה בזמן גלילה?

תנו לו position: sticky; top: 0; ועוד צבע רקע ו-z-index, כך שהתוכן נגלל מתחתיו. sticky עובד רק כל עוד ההורה של ה-header גבוה יותר מה-header, ואב קדמון עם overflow: hidden מונע ממנו להידבק לעמוד.

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

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

להתחיל