0.4 הקדמה ל HTML הרצאה
הקדמה ל-HTML¶
עכשיו שסביבת העבודה מוכנה, הגיע הזמן ללמוד את הטכנולוגיה הראשונה - HTML. כל אתר אינטרנט בעולם בנוי על HTML, וזה הדבר הראשון שצריך להבין כדי לבנות אתרים.
מה זה HTML¶
HTML זה קיצור של HyperText Markup Language - שפת סימון של היפרטקסט.
נקודה חשובה: HTML היא לא שפת תכנות. היא שפת סימון (markup language). מה ההבדל?
- שפת תכנות (כמו Python, JavaScript) - כוללת לוגיקה: תנאים, לולאות, פונקציות, משתנים.
- שפת סימון (כמו HTML) - מגדירה מבנה ותוכן. היא אומרת "כאן יש כותרת", "כאן יש פסקה", "כאן יש תמונה" - אבל אין בה לוגיקה.
HTML מגדירה את המבנה של דף אינטרנט. היא אומרת לדפדפן מה יש בדף - אבל לא איך זה נראה (זה CSS) ולא מה קורה כשלוחצים על משהו (זה JavaScript).
היסטוריה קצרה¶
- 1991 - טים ברנרס-לי (Tim Berners-Lee) המציא את HTML ב-CERN (מעבדת פיזיקה בשוויץ). הוא רצה דרך לשתף מסמכים מדעיים עם קישורים ביניהם.
- 1995 - HTML 2.0 - הגרסה הראשונה הרשמית.
- 1997 - HTML 3.2 ו-4.0 - נוספו טבלאות, טפסים ועוד.
- 2014 - HTML5 - הגרסה הנוכחית. הוסיפה תמיכה בווידאו, אודיו, canvas, אלמנטים סמנטיים ועוד.
כיום כולם משתמשים ב-HTML5, וכשאנחנו אומרים "HTML" אנחנו מתכוונים ל-HTML5.
תגיות - tags¶
HTML בנוי מתגיות (tags). כל תגית מוקפת בסוגריים זוויתיים < > ומגדירה סוג של תוכן.
תגית פותחת וסוגרת¶
רוב התגיות בנויות מתגית פותחת ותגית סוגרת:
<p>- תגית פותחת (opening tag)</p>- תגית סוגרת (closing tag) - שימו לב לסלאש/לפני שם התגיתThis is a paragraph- התוכן שבין התגיות
יחד, התגית הפותחת + התוכן + התגית הסוגרת נקראים אלמנט (element).
עוד דוגמאות:
תגיות עצמיות סגירה - self-closing tags¶
חלק מהתגיות לא צריכות תגית סוגרת כי אין להן תוכן בפנים:
<br>
<hr>
<img src="photo.jpg" alt="A photo">
<input type="text">
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
<br>- שבירת שורה (line break)<hr>- קו אופקי (horizontal rule)<img>- תמונה<input>- שדה קלט
תגיות אלה נקראות self-closing כי הן סוגרות את עצמן. לפעמים תראו אותן כתובות עם סלאש בסוף כמו <br /> - זה אותו הדבר, שתי הצורות תקינות.
תכונות - attributes¶
לתגיות HTML אפשר להוסיף תכונות (attributes) שנותנות מידע נוסף על האלמנט. תכונות נכתבות בתוך התגית הפותחת:
הנה תכונות נפוצות:
תכונת id¶
מזהה ייחודי לאלמנט. כל id חייב להיות ייחודי בדף - לא יכולים להיות שני אלמנטים עם אותו id.
תכונת class¶
שם קבוצה שאפשר לתת לכמה אלמנטים. בניגוד ל-id, אותו class יכול להופיע על הרבה אלמנטים.
<p class="highlight">This is important</p>
<p class="highlight">This is also important</p>
<p>This is regular</p>
אלמנט יכול לקבל כמה classes, מופרדים ברווח:
תכונת style¶
מאפשרת להוסיף CSS ישירות על אלמנט (inline style):
בדרך כלל לא נשתמש ב-style ישירות - נעדיף לכתוב CSS בקובץ נפרד. אבל טוב להכיר.
תכונת src¶
מציינת מקור (source) של משאב חיצוני, כמו תמונה:
תכונת href¶
מציינת כתובת יעד של קישור:
נכיר עוד תכונות רבות בהמשך. העיקרון תמיד אותו הדבר - שם התכונה, סימן שווה, וערך במירכאות.
מבנה מסמך HTML¶
כל מסמך HTML בנוי לפי מבנה קבוע. בואו נראה דוגמה מלאה ונפרק אותה:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First Page</title>
</head>
<body>
<h1>Hello World!</h1>
<p>Welcome to my website.</p>
</body>
</html>
הצהרת DOCTYPE¶
השורה הראשונה בכל מסמך HTML. היא אומרת לדפדפן שמדובר במסמך HTML5. זו לא תגית רגילה - היא הצהרה (declaration). תמיד שמים אותה בשורה הראשונה.
תגית html¶
התגית הראשית שעוטפת את כל התוכן. התכונה lang="en" מציינת את שפת הדף (אנגלית במקרה הזה, he לעברית). כל שאר התגיות נמצאות בתוכה.
חלק ה-head¶
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First Page</title>
</head>
ה-head מכיל מידע על הדף - מידע שהמשתמש לא רואה ישירות על המסך, אבל הדפדפן צריך אותו. בואו נפרק:
-
<meta charset="UTF-8">- מגדיר את קידוד התווים. UTF-8 תומך בכמעט כל השפות בעולם, כולל עברית, ערבית, סינית ועוד. תמיד שמים את זה. -
<meta name="viewport" content="width=device-width, initial-scale=1.0">- מגדיר שהדף יתאים את עצמו לרוחב המסך של המכשיר. בלי השורה הזו, אתרים נראים מוזר בטלפונים. תמיד שמים את זה. -
<title>My First Page</title>- הכותרת של הדף שמופיעה בלשונית של הדפדפן (tab). גם מופיעה בתוצאות חיפוש של גוגל.
עוד דברים שיכולים להיות ב-head:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Page</title>
<!-- link to external CSS file -->
<link rel="stylesheet" href="style.css">
<!-- link to external JavaScript file -->
<script src="app.js"></script>
<!-- favicon - the small icon in the browser tab -->
<link rel="icon" href="favicon.ico">
<!-- description for search engines -->
<meta name="description" content="This is my awesome website">
</head>
חלק ה-body¶
ה-body מכיל את כל התוכן שהמשתמש רואה על המסך. כל כותרת, פסקה, תמונה, כפתור, טופס - הכל נמצא בתוך ה-body.
הכלל פשוט:
- head = מידע על הדף (metadata) שהמשתמש לא רואה
- body = התוכן שהמשתמש רואה
הזחה ופורמט - indentation¶
הזחה (indentation) היא הרווחים שמוסיפים בתחילת שורה כדי להראות מבנה היררכי. ב-HTML הנוהג הוא להזיח כל אלמנט שנמצא בתוך אלמנט אחר.
דוגמה לקוד עם הזחה נכונה:
דוגמה לקוד בלי הזחה (קשה לקריאה):
שני הקודים עובדים בדיוק אותו הדבר - הדפדפן לא מתעניין בהזחות. אבל בשביל קריאות הקוד, הזחה נכונה היא הכרחית. שמרו על הזחה של 4 רווחים (או 2 רווחים - העיקר שזה עקבי) לכל רמה של קינון.
Prettier (התוסף שהתקנו) יסדר לכם את ההזחות אוטומטית כששומרים את הקובץ.
הערות - comments¶
לפעמים רוצים להוסיף הערות בקוד - טקסט שהדפדפן מתעלם ממנו. זה שימושי כדי:
- להסביר חלקים מורכבים בקוד
- לסמן אזורים בקוד ("כאן מתחיל הheader", "כאן נגמר הfooter")
- לבטל זמנית אלמנט בלי למחוק אותו
תחביר הערה ב-HTML:
<!-- This is a comment -->
<!--
This is a multi-line comment.
The browser ignores everything between the markers.
-->
<h1>Visible heading</h1>
<!-- <p>This paragraph is hidden</p> -->
<p>Visible paragraph</p>
הדפדפן לא מציג את מה שבתוך ההערה. בדוגמה למעלה, הפסקה השנייה לא תופיע בדף כי היא בתוך הערה.
ב-VS Code אפשר להפוך שורה להערה עם Ctrl+/ (במקום לכתוב ידנית את <!-- ו--->).
הדף הראשון שלנו - דוגמה מלאה¶
בואו נבנה דף HTML שלם עם כל מה שלמדנו:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First HTML Page</title>
</head>
<body>
<!-- Main heading -->
<h1>Welcome to My First Page</h1>
<!-- Introduction paragraph -->
<p>This is my first HTML page. I am learning web development.</p>
<!-- A second heading -->
<h2>About Me</h2>
<p>I am a student learning frontend development.</p>
<!-- A horizontal line -->
<hr>
<!-- Another section -->
<h2>My Skills</h2>
<p>I know Python and now I am learning HTML.</p>
<!-- A button -->
<button>Click Me</button>
</body>
</html>
צרו קובץ חדש, העתיקו את הקוד, שמרו אותו בתור index.html ופתחו עם Live Server. תראו דף עם כותרות, פסקאות, קו אופקי וכפתור.
בואו נסתכל מה כל חלק עושה:
- <h1> ו-<h2> - כותרות. h1 היא הכותרת הכי גדולה, h2 קצת יותר קטנה. קיימים h1 עד h6.
- <p> - פסקה (paragraph). טקסט רגיל.
- <hr> - קו אופקי שמפריד בין חלקים.
- <button> - כפתור. כרגע הוא לא עושה כלום כשלוחצים - נצטרך JavaScript בשביל זה.
- <!-- ... --> - הערות שהדפדפן מתעלם מהן.
שימו לב שהדף נראה מאוד בסיסי - בלי צבעים, בלי עיצוב מיוחד. זה כי עדיין לא הוספנו CSS. ה-HTML לבד מגדיר רק מבנה, וכל מה שאתם רואים הוא הסטיילינג של ברירת המחדל של הדפדפן.
סיכום¶
- HTML היא שפת סימון (לא תכנות) שמגדירה את המבנה של דפי אינטרנט.
- HTML בנוי מתגיות (tags) - פותחת וסוגרת, או עצמיות סגירה.
- לתגיות יש תכונות (attributes) כמו id, class, src, href.
- מסמך HTML בנוי מ-DOCTYPE, תגית html, חלק head (מידע על הדף) וחלק body (התוכן הנראה).
- ב-head שמים meta charset, meta viewport, title, קישורים ל-CSS ו-JS.
- ב-body שמים את כל התוכן שהמשתמש רואה.
- הזחה נכונה חשובה לקריאות הקוד.
- הערות ב-HTML נכתבות עם
<!-- comment -->.