בונים את השלד והתוכן של דף הנחיתה: Header, Hero, יתרונות וטופס הרשמה שמוכן ל-JavaScript.
מה נבנה היום?
דף נחיתה אמיתי
כותרת עליונה עם ניווט.
אזור Hero שמציג את המסר המרכזי.
אזור יתרונות שמסביר למה המוצר כדאי.
טופס הרשמה או יצירת קשר.
הכנה ל-JavaScript
נשתמש ב-id לשדות שנרצה לתפוס בהמשך.
נשתמש ב-class לסידור ועיצוב עתידי.
נבנה טופס תקין עם label לכל שדה.
נשמור על מבנה ברור שקל לקרוא בקוד.
מטרה: בסוף השיעור יש לנו דף נחיתה עם HTML תקני ויחד עם זה מתרגלים מה נכנס כבר עכשיו ל-css/style.css: אחרי כל שלב בהוראות נראה איך הדף נראה עם HTML בלבד ובשקופית המשך איך נראית תוספת ה-CSS.
מערך השיעור
שעה 1 - סמנטיקה וחלוקה
נבין למה לא כל דבר צריך להיות div, ונשתמש ב-header, main, section ו-footer.
שעה 2 - מדיה ותוכן
נוסיף Hero, תמונה מרכזית, רשימת יתרונות ותוכן שמתאים לדף נחיתה.
שעה 3 - טפסים והכנה ל-JS
נבנה טופס הרשמה עם label, input, button ו-id לכל שדה חשוב.
תצוגה מקדימה בשקופיות
בכל אזור (שלד, Header, Hero, תמונה, יתרונות, תהליך, Footer, טופס) יש טור קוד משמאל ותצוגה מקדימה מימין. כך רואים בדיוק איך הצטבר הקוד ובאיזה מראה בסיום השלב.
נקודת פתיחה: מבנה הפרויקט
נמשיך לעבוד מתוך תיקיית פרויקט מסודרת. בכל תרגיל פותחים את התיקייה הראשית ב-VS Code, לא קובץ בודד.
במאגר של הקורס קיימת גרסת דף מלאה בקבצים index.html, css/style.css ו-js/script.js. קטעי הקוד בשקופיות מוצגים כמו בקבצים האלה; אפשר לפתוח את דף הנחיתה בנפרד ובלשונית חדשה מהקישור בשקופית הצגת הדף המלא. מומלץ לפתוח את התיקייה עם Live Server מתוך שרשור התיקיות הראשית במחשב שלכם, לא מתוך המצגת.
דגש למדריך
לפני שמתחילים לכתוב, לבדוק אצל כולם ש-VS Code פתוח על התיקייה הראשית ושכל הקבצים נמצאים במקום הנכון.
למה סמנטיקה חשובה?
סמנטיקה היא שימוש בתגיות שמתארות את המשמעות של האזור בדף, לא רק את המראה שלו.
הדפדפן, קוראי מסך, מנועי חיפוש ומפתחים אחרים מבינים טוב יותר את הדף כשהתגיות מתארות את התפקיד שלהן.
התגיות הסמנטיות של היום + div ו-span
<header>
האזור העליון של הדף. בדרך כלל כולל לוגו, שם אתר ותפריט ניווט.
<main>
התוכן המרכזי והייחודי של הדף. בדרך כלל מופיע פעם אחת בעמוד.
<section>
חלק בתוך התוכן המרכזי, למשל Hero, יתרונות, טופס או המלצות.
<footer>
האזור התחתון של הדף. כולל זכויות יוצרים, קישורים או פרטי קשר.
מתי משתמשים ב-div?
מה הוא עושה?
<div> הוא קופסת מבנה בשורה משל עצמו (ברירת מחדל: display: block). הוא לא מתאר מה יש בתוך הקופסה, ולכן אין משמעות סמנטית לדפדפן או לקוראי מסך.
למה משתמשים בו בעולם האמיתי?
לקבץ כמה אלמנטים שנרצה לעצב יחד (למשל שורת לוגו + תפריט).
לפתוח תבנית פריסה (בשיעורים הבאים הרבה פריסות נשענות על div בשילוב עם CSS).
להוסיף class אחד משותף למספר פריטים.
ומה עם span?
בלי שבירת שורה
<span> הוא קופסה בתוך שורה (ברירת מחדל: לא שובר תיבה משל עצמו). מתאים לטקסט קטן שרוצים להדגיש, לצבוע או למקד בלי לשנות את המבנה.
דוגמה טיפוסית בדף הנחיתה
למשל בשם האתר: <span class="logo-accent">Prime</span>Landing. שניהם יושבים באותה שורת טקסט בלוגו, אך אפשר לתת למילה ראשונה צבע אחר ב-CSS בעזרת logo-accent.
הכלל מהניסיון
אם התגית מתארת תפקיד בתמונה המלאה — נעדיף header, nav, section. אם רק צריך צעד ארגון או עיצוב — div ו-span. בפרויקט landing-page/ משתמשים ב-div בתוך ה-Hero ל-hero-content וב-cta-row, וב-span בלוגו ובשורות עזר.
חשוב: מתחילים מסמנטיקה מתאימה (header, nav, main…) ומשתמשים ב-div בעיקר לקיבוץ או לפריסה כשלא קיימת תגית שמתארת טוב את האזור.
כבר עכשיו רואים איך רק השדה הנכון בוחר מה לעצב: class בשם מתפקיד וכללים מתאימים ב-CSS.
ניווט עם רשימה וקישורים
למה ul ו-li?
תפריט הוא בעצם רשימת קישורים. לכן הגיוני לבנות אותו כרשימה.
למה a?
כל פריט בתפריט הוא קישור למקום אחר בדף או לעמוד אחר.
<a class="primary-link" href="#signup">להרשמה</a>
מה עושה הסולמית?
#signup אומר לדפדפן: עבור לאלמנט שיש לו id="signup".
Hero: המסר המרכזי של הדף
Hero הוא האזור הראשון והבולט בדף נחיתה. הוא עונה מהר על השאלה: מה מציעים לי ולמה כדאי לי להמשיך?
מתווסף ל-index.html בתוך <main>
<section id="hero" class="hero-section">
<div class="hero-content">
<p class="eyebrow"><span aria-hidden="true">●</span> פרויקט HTML ראשון</p>
<h1>דף נחיתה שמוכן לשלב הבא</h1>
<p>
נבנה מבנה ברור עם <code>header</code>, <code>main</code>,
<code>section</code> ו-<code>footer</code>, ובמקביל CSS חיצוני בקובץ
נפרד — מתאים להמשך עם JavaScript.
</p>
<div class="cta-row">
<a class="primary-link" href="#signup">להרשמה</a>
<span class="cta-hint span-muted">לא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.</span>
</div>
</div>
</section>
רק HTML: אחרי הוספת טקסט ה-Hero מתחת ל-Header שכבר שניהם בסיסיים
נבנה מבנה ברור עם header, main, section ו-footer, ובמקביל CSS חיצוני בקובץ נפרד — מתאים להמשך עם JavaScript.
להרשמהלא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.
הוספת תמונת Hero (<img>)
מה מוסיפים ל-index.html מתחת/alongside טקסט ה-Hero
<img
class="hero-image"
src="https://images.unsplash.com/photo-1498050108023-c5249f4df085"
alt="מסך מחשב עם קוד פתוח בעורך קוד"
width="800"
height="533"
>
לא לוותר על alt
הטקסט החלופי חשוב לנגישות, למקרה שהתמונה לא נטענת ולכלים סמנטיים נוספים.
רק עם HTML חדש על גבי עיצוב כבר מהשלב הקודם לתמונה אין משבצת — היא מתנפחת ובולטת מתוך כרטיס ה-Hero
נבנה מבנה ברור עם header, main, section ו-footer, ובמקביל CSS חיצוני בקובץ נפרד — מתאים להמשך עם JavaScript.
להרשמהלא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.
למה הבעיה הזו מתכווננת בשקופית הבאה עם CSS? בלי חוק למשקל ולפינות, תמונה אופיינית אל תיכנס יפה לקומפוזיציה.
Hero מלא בתוך הקובץ: תוכן + תמונה
בלוק מלא שנשמר ב-index.html
<section id="hero" class="hero-section">
<div class="hero-content">
<p class="eyebrow"><span aria-hidden="true">●</span> פרויקט HTML ראשון</p>
<h1>דף נחיתה שמוכן לשלב הבא</h1>
<p>
נבנה מבנה ברור עם <code>header</code>, <code>main</code>,
<code>section</code> ו-<code>footer</code>, ובמקביל CSS חיצוני בקובץ
נפרד — מתאים להמשך עם JavaScript.
</p>
<div class="cta-row">
<a class="primary-link" href="#signup">להרשמה</a>
<span class="cta-hint span-muted">לא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.</span>
</div>
</div>
<img
class="hero-image"
src="https://images.unsplash.com/photo-1498050108023-c5249f4df085"
alt="מסך מחשב עם קוד פתוח בעורך קוד"
width="800"
height="533"
>
</section>
אותה רמת עיצוב כמו בשקופית הקודמת (לפני הגבלות לתמונה)
📄 Hero שלם עם <img>
● פרויקט HTML ראשון
דף נחיתה שמוכן לשלב הבא
נבנה מבנה ברור עם header, main, section ו-footer, ובמקביל CSS חיצוני בקובץ נפרד — מתאים להמשך עם JavaScript.
להרשמהלא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.
מה מוסיפים ל-css/style.css? תמונת Hero מתאימה לכרטיס
נבנה מבנה ברור עם header, main, section ו-footer, ובמקביל CSS חיצוני בקובץ נפרד — מתאים להמשך עם JavaScript.
להרשמהלא חייבים להבין הכל בשיעור הראשון — רק למקם נכון.
השכבות עד כאן ברצף הקורס
Header → ניווט → תיבת טקסט של Hero → עכשיו משבצת לתמונה. כך כל החלקים של המסלול העליון מוכנים לפני שנורדים ליתרון ולהרשמה.
אזור יתרונות המוצר (index.html)
מתווסף מתחת ל-Hero בתוך <main>
<section id="benefits" class="benefits-section">
<h2>למה ללמוד דרך פרויקט?</h2>
<div class="benefits-intro">
<p>כל שורת קוד מתחברת לתוצאה שאפשר לראות ב‑Live Server.</p>
</div>
<ul class="benefits-list">
<li>רואים תוצאה אמיתית בדפדפן.</li>
<li>מבינים למה כל תגית קיימת.</li>
<li>מתכוננים לעבודה עם JavaScript.</li>
</ul>
</section>
מרכיב חדש עם HTML בלבד — הרקע המקווקו מסמן מה נוסף בשלב הזה לפני שנכתוב CSS ייעודי
השאירו פרטים — בשיעורי JavaScript נחבר התנהגות אמיתית לשדות האלה.
js/script.js בפרויקט
בסוף landing-page/index.html מצורף הקובץ עם <script src="js/script.js"></script>.
קובץ js/script.js — זהה לפרויקט
const form = document.getElementById("signupForm");
if (form) {
form.addEventListener("submit", function (event) {
event.preventDefault();
const nameInput = document.getElementById("fullName");
const emailInput = document.getElementById("email");
const name = nameInput ? nameInput.value.trim() : "";
const email = emailInput ? emailInput.value.trim() : "";
if (!name || !email) {
alert("נא למלא שם ואימייל — בהמשך נלמד לבדוק את זה בצורה מקצועית יותר.");
return;
}
alert("תודה " + name + "! בשיעורי JavaScript נחבר שליחה אמיתית.");
});
}
תצוגה מקומית: הסדר המלא בסוף שיעור 2
כאן מופיע הצירוף של כל מה שבנינו בצורה מכווצת בתוך המצגת. בפרויקט האמיתי אותן שכבות מתווספות בסדר ברור: כותרת → Hero → תמונה → יתרונות → תהליך → Footer → הרשמה.
דף הנחיתה המלא בפרויקט
המצגת הזאת לא מחליפה תצוגה של דף אמיתי. לחצו למטה על הקישור — ייפתח landing-page/index.html בלשונית חדשה, עם קבצים נפרדים ל-HTML (index.html) ול-CSS (css/style.css), וכל קשר ל-JavaScript בקובץ js/script.js בשלב דמו בלבד.
כן. זה חשוב לנגישות, לשימושיות ולהרגלי עבודה טובים.
3. האם לכל שדה בטופס יש id ברור?
כן. בהמשך נשתמש ב-id כדי לקרוא את הערכים עם JavaScript.
סיכום ושיעורי בית
מה למדנו?
מבנה סמנטי לדף.
תפריט, Hero, תמונה, יתרונות, תהליך, Footer.
טופס עם label ו-id.
מתרגלים מתי כותבים רק HTML ומתי מתווספת שכבת CSS ראשונית (css/style.css).
שיעורי בית
להשלים דף נחיתה עם כל האזורים.
לגרום למצבי "רק HTML" ו"עם מה שכיסינו בשיעור 2 של CSS".
לוודא שכל input מקבל label ו-id משמעותי.
בשיעור 3 צריכים הרחבות עיצוב — תשמשו בשיעור 2 בסיס הגיוני.
בשיעור הבא
העשרה ובידוד של כל מה שלמדנו כאן מתוך style.css.
Box Model, צבעים וגרידים מתקדמים יותר.
סיום שיעור 2
לא רק מה מקומן כל אלמנט ב-HTML ידוע, גם ההבנה הראשונה של ההשפעה של קבצים חיצוניים של CSS על אותן תגיות מתחילה בשיעור הזה: כך המעבר לשיעור 3 ובהמשך ל-JavaScript נשאר מתמשך.