# פרויקט טרריום חלק 1: מבוא ל-HTML ```mermaid journey title Your HTML Learning Journey section Foundation Create HTML file: 3: Student Add DOCTYPE: 4: Student Structure document: 5: Student section Content Add metadata: 4: Student Include images: 5: Student Organize layout: 5: Student section Semantics Use proper tags: 4: Student Enhance accessibility: 5: Student Build terrarium: 5: Student ``` ![מבוא ל-HTML](../../../../translated_images/webdev101-html.4389c2067af68e98280c1bde52b6c6269f399eaae3659b7c846018d8a7b0bbd9.he.png) > סקיצה מאת [Tomomi Imura](https://twitter.com/girlie_mac) HTML, או HyperText Markup Language, הוא הבסיס לכל אתר שביקרת בו אי פעם. חשבו על HTML כשלד שמעניק מבנה לדפי אינטרנט – הוא מגדיר היכן התוכן נמצא, איך הוא מאורגן ומה כל חלק מייצג. בעוד ש-CSS "ילביש" את ה-HTML בצבעים ובפריסות, ו-JavaScript יעניק לו חיים עם אינטראקטיביות, HTML מספק את המבנה הבסיסי שמאפשר את כל השאר. בשיעור הזה, תיצרו את מבנה ה-HTML לממשק טרריום וירטואלי. הפרויקט המעשי הזה ילמד אתכם מושגי HTML בסיסיים תוך כדי בניית משהו חזותי ומעניין. תלמדו איך לארגן תוכן באמצעות אלמנטים סמנטיים, לעבוד עם תמונות וליצור את הבסיס ליישום אינטרנט אינטראקטיבי. בסוף השיעור, יהיה לכם דף HTML עובד שמציג תמונות של צמחים בעמודות מאורגנות, מוכן לעיצוב בשיעור הבא. אל תדאגו אם זה נראה בסיסי בהתחלה – זה בדיוק מה ש-HTML אמור לעשות לפני ש-CSS מוסיף את הליטוש החזותי. ```mermaid mindmap root((HTML Fundamentals)) Structure DOCTYPE Declaration HTML Element Head Section Body Content Elements Tags & Attributes Self-closing Tags Nested Elements Block vs Inline Content Text Elements Images Containers (div) Lists Semantics Meaningful Tags Accessibility Screen Readers SEO Benefits Best Practices Proper Nesting Valid Markup Descriptive Alt Text Organized Structure ``` ## שאלון לפני השיעור [שאלון לפני השיעור](https://ff-quizzes.netlify.app/web/quiz/15) > 📺 **צפו ולמדו**: צפו בסרטון סקירה מועיל > > [![סרטון יסודות HTML](https://img.youtube.com/vi/1TvxJKBzhyQ/0.jpg)](https://www.youtube.com/watch?v=1TvxJKBzhyQ) ## הכנת הפרויקט שלכם לפני שנצלול לקוד HTML, בואו נכין סביבת עבודה מסודרת לפרויקט הטרריום שלכם. יצירת מבנה קבצים מאורגן מההתחלה היא הרגל חשוב שישרת אתכם לאורך כל מסע פיתוח האינטרנט שלכם. ### משימה: יצירת מבנה הפרויקט שלכם תיצרו תיקייה ייעודית לפרויקט הטרריום שלכם ותוסיפו את קובץ ה-HTML הראשון שלכם. הנה שתי גישות שתוכלו להשתמש בהן: **אפשרות 1: שימוש ב-Visual Studio Code** 1. פתחו את Visual Studio Code 2. לחצו על "File" → "Open Folder" או השתמשו ב-`Ctrl+K, Ctrl+O` (Windows/Linux) או `Cmd+K, Cmd+O` (Mac) 3. צרו תיקייה חדשה בשם `terrarium` ובחרו אותה 4. בלוח ה-Explorer, לחצו על אייקון "New File" 5. תנו לקובץ את השם `index.html` ![VS Code Explorer מציג יצירת קובץ חדש](../../../../translated_images/vs-code-index.e2986cf919471eb984a0afef231380c8b132b000635105f2397bd2754d1b689c.he.png) **אפשרות 2: שימוש בפקודות טרמינל** ```bash mkdir terrarium cd terrarium touch index.html code index.html ``` **מה הפקודות הללו מבצעות:** - **יוצרות** תיקייה חדשה בשם `terrarium` לפרויקט שלכם - **מנווטות** לתוך תיקיית הטרריום - **יוצרות** קובץ `index.html` ריק - **פותחות** את הקובץ ב-Visual Studio Code לעריכה > 💡 **טיפ מקצועי**: שם הקובץ `index.html` הוא מיוחד בפיתוח אתרים. כאשר מישהו מבקר באתר, דפדפנים מחפשים אוטומטית את `index.html` כדף ברירת המחדל להצגה. זה אומר שכתובת כמו `https://mysite.com/projects/` תציג אוטומטית את קובץ `index.html` מתוך תיקיית `projects` מבלי צורך לציין את שם הקובץ בכתובת. ## הבנת מבנה מסמך HTML כל מסמך HTML עוקב אחר מבנה ספציפי שהדפדפנים צריכים להבין ולהציג בצורה נכונה. חשבו על מבנה זה כמו מכתב רשמי – יש לו אלמנטים נדרשים בסדר מסוים שעוזרים למקבל (במקרה הזה, הדפדפן) לעבד את התוכן בצורה נכונה. ```mermaid flowchart TD A[""] --> B[""] B --> C[""] C --> D[""] C --> E["<meta charset>"] C --> F["<meta viewport>"] B --> G["<body>"] G --> H["<h1> Heading"] G --> I["<div> Containers"] G --> J["<img> Images"] style A fill:#e1f5fe style B fill:#f3e5f5 style C fill:#fff3e0 style G fill:#e8f5e8 ``` בואו נתחיל בהוספת הבסיס החיוני שכל מסמך HTML צריך. ### הצהרת DOCTYPE ואלמנט השורש שני השורות הראשונות של כל קובץ HTML משמשות כ"הקדמה" של המסמך לדפדפן: ```html <!DOCTYPE html> <html></html> ``` **הבנת מה הקוד הזה עושה:** - **מצהיר** על סוג המסמך כ-HTML5 באמצעות `<!DOCTYPE html>` - **יוצר** את אלמנט השורש `<html>` שיכיל את כל תוכן הדף - **מבסס** סטנדרטים מודרניים של אינטרנט להצגה נכונה בדפדפנים - **מבטיח** תצוגה עקבית בין דפדפנים ומכשירים שונים > 💡 **טיפ VS Code**: רחפו מעל כל תג HTML ב-VS Code כדי לראות מידע מועיל מ-MDN Web Docs, כולל דוגמאות שימוש ופרטי תאימות לדפדפנים. > 📚 **למדו עוד**: הצהרת DOCTYPE מונעת מדפדפנים להיכנס ל"מצב quirks", ששימש לתמיכה באתרים ישנים מאוד. פיתוח אינטרנט מודרני משתמש בהצהרה הפשוטה `<!DOCTYPE html>` כדי להבטיח [תצוגה תואמת סטנדרטים](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). ### 🔄 **בדיקה פדגוגית** **עצירה והרהור**: לפני שתמשיכו, ודאו שאתם מבינים: - ✅ למה כל מסמך HTML צריך הצהרת DOCTYPE - ✅ מה מכיל אלמנט השורש `<html>` - ✅ איך מבנה זה עוזר לדפדפנים להציג דפים בצורה נכונה **מבחן עצמי מהיר**: האם תוכלו להסביר במילים שלכם מה משמעות "תצוגה תואמת סטנדרטים"? ## הוספת מטא-נתונים חיוניים למסמך החלק `<head>` של מסמך HTML מכיל מידע חיוני שדפדפנים ומנועי חיפוש צריכים, אך המבקרים לא רואים ישירות בדף. חשבו על זה כמידע "מאחורי הקלעים" שעוזר לדף האינטרנט שלכם לעבוד בצורה נכונה ולהופיע בצורה נכונה במכשירים ופלטפורמות שונות. מטא-נתונים אלו אומרים לדפדפנים איך להציג את הדף שלכם, איזה קידוד תווים להשתמש, ואיך להתמודד עם גדלי מסך שונים – הכל חיוני ליצירת דפי אינטרנט מקצועיים ונגישים. ### משימה: הוסיפו את החלק הראשי של המסמך הכניסו את החלק `<head>` הזה בין תגי הפתיחה והסגירה של `<html>`: ```html <head> <title>Welcome to my Virtual Terrarium ``` **פירוט מה כל אלמנט מבצע:** - **מגדיר** את כותרת הדף שמופיעה בלשוניות הדפדפן ובתוצאות חיפוש - **מציין** קידוד תווים UTF-8 להצגת טקסט בצורה נכונה ברחבי העולם - **מבטיח** תאימות עם גרסאות מודרניות של Internet Explorer - **מגדיר** עיצוב רספונסיבי על ידי התאמת ה-viewport לרוחב המכשיר - **שולט** ברמת הזום ההתחלתית להצגת תוכן בגודל טבעי > 🤔 **חשבו על זה**: מה יקרה אם תגדירו תג מטא viewport כמו זה: ``? זה יגרום לדף להיות תמיד ברוחב של 600 פיקסלים, מה שישבור את העיצוב הרספונסיבי! למדו עוד על [הגדרת viewport נכונה](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag). ## בניית גוף המסמך האלמנט `` מכיל את כל התוכן הנראה של דף האינטרנט שלכם – כל מה שהמשתמשים יראו ויתקשרו איתו. בעוד שהחלק `` סיפק הוראות לדפדפן, החלק `` מכיל את התוכן עצמו: טקסט, תמונות, כפתורים ואלמנטים אחרים שיוצרים את ממשק המשתמש שלכם. בואו נוסיף את מבנה הגוף ונבין איך תגי HTML עובדים יחד כדי ליצור תוכן משמעותי. ### הבנת מבנה תגי HTML HTML משתמש בתגים זוגיים כדי להגדיר אלמנטים. לרוב התגים יש תג פתיחה כמו `

` ותג סגירה כמו `

`, עם תוכן ביניהם: `

Hello, world!

`. זה יוצר אלמנט פסקה שמכיל את הטקסט "Hello, world!". ### משימה: הוסיפו את אלמנט הגוף עדכנו את קובץ ה-HTML שלכם כדי לכלול את האלמנט ``: ```html Welcome to my Virtual Terrarium ``` **מה המבנה המלא הזה מספק:** - **מבסס** את מסגרת המסמך הבסיסית של HTML5 - **כולל** מטא-נתונים חיוניים להצגה נכונה בדפדפנים - **יוצר** גוף ריק מוכן לתוכן הנראה שלכם - **עוקב** אחרי שיטות עבודה מומלצות בפיתוח אינטרנט מודרני עכשיו אתם מוכנים להוסיף את האלמנטים הנראים של הטרריום שלכם. נשתמש באלמנטים `
` כקונטיינרים לארגון חלקים שונים של תוכן, ובאלמנטים `` להצגת תמונות הצמחים. ### עבודה עם תמונות וקונטיינרים לפריסה תמונות הן מיוחדות ב-HTML כי הן משתמשות בתגים "סוגרים עצמם". בניגוד לאלמנטים כמו `

` שעוטפים תוכן, תג `` מכיל את כל המידע שהוא צריך בתוך התג עצמו באמצעות מאפיינים כמו `src` לנתיב קובץ התמונה ו-`alt` לנגישות. לפני שתוסיפו תמונות ל-HTML שלכם, תצטרכו לארגן את קבצי הפרויקט שלכם בצורה נכונה על ידי יצירת תיקיית תמונות והוספת גרפיקות הצמחים. **ראשית, הכינו את התמונות שלכם:** 1. צרו תיקייה בשם `images` בתוך תיקיית פרויקט הטרריום שלכם 2. הורידו את תמונות הצמחים מתיקיית [הפתרון](../../../../3-terrarium/solution/images) (14 תמונות צמחים בסך הכל) 3. העתיקו את כל תמונות הצמחים לתוך תיקיית `images` החדשה שלכם ### משימה: צרו את פריסת תצוגת הצמחים עכשיו הוסיפו את תמונות הצמחים מאורגנות בשתי עמודות בין תגי ``: ```html
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
``` **שלב אחר שלב, מה קורה בקוד הזה:** - **יוצר** קונטיינר עמוד ראשי עם `id="page"` שמחזיק את כל התוכן - **מבסס** שני קונטיינרים לעמודות: `left-container` ו-`right-container` - **מארגן** 7 צמחים בעמודה השמאלית ו-7 צמחים בעמודה הימנית - **עוטף** כל תמונת צמח ב-div `plant-holder` למיקום אישי - **מיישם** שמות מחלקה עקביים לעיצוב CSS בשיעור הבא - **מעניק** מזהים ייחודיים לכל תמונת צמח לאינטראקציה עם JavaScript בהמשך - **כולל** נתיבי קבצים נכונים שמצביעים על תיקיית התמונות > 🤔 **חשבו על זה**: שימו לב שכל התמונות כרגע מכילות את אותו טקסט alt "plant". זה לא אידיאלי לנגישות. משתמשי קוראי מסך ישמעו "plant" חוזר 14 פעמים מבלי לדעת איזה צמח כל תמונה מציגה. האם תוכלו לחשוב על טקסט alt טוב יותר, יותר תיאורי, לכל תמונה? > 📝 **סוגי אלמנטים HTML**: אלמנטים `
` הם "ברמת בלוק" ותופסים רוחב מלא, בעוד שאלמנטים `` הם "בקו" ותופסים רק את הרוחב הנדרש. מה לדעתכם יקרה אם תשנו את כל תגי `
` הללו לתגי ``? ### 🔄 **בדיקה פדגוגית** **הבנת מבנה**: קחו רגע לסקור את מבנה ה-HTML שלכם: - ✅ האם אתם יכולים לזהות את הקונטיינרים הראשיים בפריסה שלכם? - ✅ האם אתם מבינים למה לכל תמונה יש מזהה ייחודי? - ✅ איך הייתם מתארים את מטרת ה-divs `plant-holder`? **בדיקה חזותית**: פתחו את קובץ ה-HTML שלכם בדפדפן. אתם אמורים לראות: - רשימה בסיסית של תמונות צמחים - תמונות מאורגנות בשתי עמודות - פריסה פשוטה ולא מעוצבת **זכרו**: המראה הפשוט הזה הוא בדיוק איך ש-HTML אמור להיראות לפני עיצוב CSS! עם סימון זה שנוסף, הצמחים יופיעו על המסך, למרות שהם עדיין לא ייראו מלוטשים – זה מה ש-CSS נועד לעשות בשיעור הבא! לעת עתה, יש לכם בסיס HTML מוצק שמארגן את התוכן שלכם בצורה נכונה ועוקב אחרי שיטות עבודה מומלצות לנגישות. ## שימוש ב-HTML סמנטי לנגישות HTML סמנטי פירושו בחירת אלמנטים HTML על בסיס משמעותם ומטרתם, לא רק על בסיס המראה שלהם. כשאתם משתמשים בסימון סמנטי, אתם מתקשרים את המבנה והמשמעות של התוכן שלכם לדפדפנים, מנועי חיפוש וטכנולוגיות מסייעות כמו קוראי מסך. ```mermaid flowchart TD A[Need to add content?] --> B{What type?} B -->|Main heading| C["

"] B -->|Subheading| D["

,

, etc."] B -->|Paragraph| E["

"] B -->|List| F["

    ,
      "] B -->|Navigation| G["