Menu

התגית div ב-HTML: מה זה, div class, פריסה ועיצוב

התגית <div> היא מכל בלוק כללי בלי משמעות משלה. למדו איך לקבץ איתה תוכן, לעצב אותה עם class, לבנות פריסות עם div ו-flexbox, ומתי תגית סמנטית או כפתור הם בחירה טובה יותר.

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

מה עושה התגית div

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

הסירו את שורת ה-border בעיצוב וה-div יהפכו לבלתי נראים: זה המראה ברירת המחדל של div. כל מה שהוא עושה ויזואלית מגיע מ-CSS.

div class ו-id

div מקבל בדרך כלל class, שהוא השם שה-CSS שלכם מכוון אליו. div שחולקים class חולקים את העיצוב:

.card מעצב את שתי התיבות, ו-.card.highlight מוסיף מסגרת כחולה ל-div שיש לו את שתי המחלקות. השתמשו ב-id כשצריך להצביע על div אחד ספציפי, למשל כיעד של קישור (href="#pro"). העמוד על מאפיינים משווה בין class ל-id בפירוט.

div זה לצד זה

מכיוון ש-div הם בלוקים, הם נערמים אנכית. כדי להציב אותם בשורה, הפכו את ההורה שלהם למכל flex:

display: flex על .row מסדר את הילדים בשורה, gap מרווח ביניהם, וערכי flex מחלקים את הרוחב (כאן 1 : 2 : 1). תבנית ההורה והילדים הזו היא השימוש הנפוץ ביותר ב-div באתרים אמיתיים. למרכוז div, ראו איך ממרכזים div.

div מקוננים

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

שמרו על קינון רדוד ככל שהפריסה מאפשרת. כל עטיפה נוספת היא עוד תיבה שצריך להבין כששוליים או רוחב לא עושים את מה שציפיתם.

div או תגית סמנטית?

div לא אומר שום דבר על התוכן שלו. ב-HTML יש תגיות שעושות את אותה עבודת קיבוץ וגם אומרות מה הקבוצה:

במקוםתגיתעבור
<div class="header"><header>פתיח או פס עליון של עמוד או קטע
<div class="nav"><nav>בלוק של קישורי ניווט
<div class="main"><main>התוכן הראשי, פעם אחת בעמוד
<div class="post"><article>פריט עצמאי: פוסט, תגובה, כרטיס מוצר
<div class="footer"><footer>כותרת תחתונה של עמוד או קטע

התגיות האלה נראות בדיוק כמו div עד שמעצבים אותן, אבל קוראי מסך מכריזים עליהן ומאפשרים למשתמשים לקפוץ ביניהן, ומנועי חיפוש קוראים את המבנה. השתמשו ב-div לתיבות שקיימות רק בשביל פריסה או עיצוב, כמו העטיפה .row שלמעלה. העמוד על HTML סמנטי מכסה את כל הסט.

div הוא לא כפתור

div עם handler של לחיצה נראה לחיץ למשתמש עכבר, אבל משתמש מקלדת לא יכול להגיע אליו עם Tab או ללחוץ עליו עם Enter, וקורא מסך לא מכריז עליו ככפתור:

השתמשו ב-<button> לפעולות וב-<a href> לניווט. שניהם ברי מיקוד ועובדים עם המקלדת בחינם.

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

  • div בתוך <p>. הפסקה נסגרת לפני ה-div. הפכו את ה-div לאלמנט החיצוני, או השתמשו ב-<span> בתוך הפסקה.
  • מרק של div. לעמוד שבנוי רק מ-div אין מבנה עבור קוראי מסך. החליפו div ב-<header>, <nav>, <main> ו-<footer> איפה שהם מתאימים.
  • div לחיצים. השתמשו ב-<button> או בקישור במקום.
  • ציפייה ש-div יהיה רחב כמו הטקסט שלו. div תופס את כל הרוחב. השתמשו ב-display: inline-block, width: fit-content או <span> אם אתם רוצים שיתכווץ.
  • שימוש חוזר באותו id בכמה div. השתמשו ב-class לכל דבר שחוזר.

שאלות נפוצות

מה זה div ב-HTML?

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

מה המשמעות של div class?

<div class="card"> הוא div עם מאפיין class. ה-class הוא שם ש-CSS משתמש בו כדי לעצב אותו (.card { ... }) ו-JavaScript משתמש בו כדי למצוא אותו. הרבה div יכולים לחלוק class, ול-div אחד יכולים להיות כמה: class="card featured".

איך שמים שני div זה לצד זה?

עטפו אותם ב-div הורה ותנו להורה display: flex. הילדים יישבו אז בשורה. הוסיפו gap לרווח ביניהם ו-flex: 1 על הילדים כדי לחלק את הרוחב שווה בשווה.

להשתמש ב-div או ב-section?

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

אפשר לשים div בתוך תגית p?

לא. פסקה יכולה להכיל רק תוכן inline. הדפדפן סוגר את ה-<p> ברגע שהוא רואה <div>, וזה שובר את העיצוב שלכם. השתמשו ב-div כאלמנט החיצוני או ב-<span> בתוך הפסקה.

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

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

להתחיל