HTML5 המדריך לבניית אתרים הדור הבא יונית רושו יועץ מקצועי :זהר עמיהוד עריכה ועיצוב :שרה עמיהוד ,יצחק עמיהוד עיצוב עטיפה :אופיר ליברמן שמות מסחריים שמות המוצרים והשירותים המוזכרים בספר הינם שמות מסחריים רשומים של החברות שלהם. הוצאת הוד-עמי והמחברת עשו כמיטב יכולתם למסור מידע אודות השמות המסחריים המוזכרים בספר זה ולציין את שמות החברות ,המוצרים והשירותים .שמות מסחריים רשומים ) registered (trademarksהמוזכרים בספר צוינו בהתאמה. הודעה ספר זה מיועד לתת מידע אודות מוצרים שונים .נעשו מאמצים רבים לגרום לכך שהספר יהיה שלם ואמין ככל שניתן ,אך אין משתמעת מכך כל אחריות שהיא. המידע ניתן "כמות שהוא" )" .("as isהוצאת הוד-עמי והמחברת אינם אחראים כלפי יחיד או ארגון עבור כל אובדן או נזק אשר ייגרם ,אם ייגרם ,מהמידע שבספר זה ,או מהתקליטור/הדיסקט )אם יצורף( ,או מאתר האינטרנט המלווה את הספר. אין לעשות שימוש מסחרי ו/או להעתיק ,לשכפל ,לצלם ,לתרגם ,להקליט ,לשדר ,לקלוט ו/או לאחסן במאגר מידע בכל דרך ו/או אמצעי מכני ,דיגיטלי ,אופטי ,מגנטי ו/או אחר -בחלק כלשהו מן המידע ו/או התמונות ו/או האיורים ו/או כל תוכן אחר הכלולים ו/או שצורפו לספר זה ,בין אם לשימוש פנימי או לשימוש מסחרי .כל שימוש החורג מציטוט קטעים קצרים במסגרת של ביקורת ספרותית אסור בהחלט ,אלא ברשות מפורשת בכתב מהמוציא לאור. לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד .ספר זה מיועד לגברים ונשים כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות. )(C כל הזכויות שמורות הוצאת הוד-עמי בע"מ טלפון09-9564716 : [email protected] www.hod-ami.co.il הודפס בישראל אוקטובר 2012 מסת"ב ISBN 978-965-361-393-5 הספר מוקדש באהבה לבעלי היקר אורן ולילדים שלי - שקד ,דניאל וירין רושו ,על כך שנתתם לי את הכוח ותמכתם לכל אורך הדרך תוכן עניינים מקוצר הקדמה 19 ...................................................................................... פרק :1מבוא ומושגים באינטרנט 21 ..................................................... פרק :2יסודות ועקרונות שפת )25 ......................................... HTML(5 פרק :3תגיות המבנה החדשות 87 ........................................................ פרק :4הגדרות עיצוב על ידי 103 ................................................. CSS פרק :5מודל הקופסה ופריסות 145 ....................................................... פרק :6קוד מינימליסטי ובעל משמעות 177 ............................................ פרק :7טפסים ב183 ............................................................ HTML5- פרק :8נושאים מתקדמים 219 .................................................... CSS3 פרק Jquery :9ו255 ..................................................... Javascript- פרק :10שילוב מדיה והאובייקט 289 ........................................Canvas פרק :11נושאים מתקדמים 325 ..................................................... API אינדקס 341 ..................................................................................... אינדקס תגיות למילוי עצמי תוכן עניינים 5 HTML5 6 תוכן עניינים הקדמה 19 ...................................................................................... מבנה הספר 19 ....................................................................................................... קהל היעד 20 ......................................................................................................... קטעי הקוד20 ........................................................................................................ על יונית רושו 20 ................................................................................................... פרק :1מבוא ומושגים באינטרנט 21 ..................................................... כתובות של מחשבים ברשת האינטרנט 22 ................................................................... טכנולוגיית שרת לקוח 22 ........................................................................................ הדפדפן 22 ............................................................................................................ פרוטוקול 23 .................................................................................................HTTP פרוטוקול 23 ................................................................................................... FTP אחסון האתר 23 ..................................................................................................... דומיין 24 .............................................................................................................. תת-דומיין 24 ........................................................................................................ 24 ................................................................ (HyperText Markup Language) HTML סיכום 24 .............................................................................................................. פרק :2יסודות ועקרונות שפת )25 ......................................... HTML(5 מה זה 26 ................................................................................................. ?HTML5 במה שונה HTML5מהגרסאות הקודמות?26 ................................................................ תמיכת דפדפנים 27 ................................................................................................ דף HTML5הראשון שלך 27 ..................................................................................... תגיות ,מאפיינים ואלמנטים בסיסיים של השפה 31 ....................................................... התגית :אבן היסוד של כל דף 31 ................................................................. HTML מבנה סטנדרטי של מסמך :HTML5תגיות היסוד 32 ...................................................... :DOCTYPEהצהרה על 32 ........................................................................ HTML5 התגית >32 ............................................................................................ <html התגית >33 ............................................................................................ <head התגית >33 ............................................................................................. <title התגית >33 ............................................................................................ <body תוכן עניינים 7 התגית >34 ......................................................................................... <section תגיות נפוצות נוספות להגדרת אזורים בדף 35 ........................................................ עברית בדפי אינטרנט 35 ......................................................................................... תוכן טקסטואלי 36 ................................................................................................. הכרת המושג כותרות 36 ..................................................................................... תגיות הכותרת 37 .............................................................................................. התגית >39 .........................................................................................<hgroup תגית הפִסְקה >39 .........................................................................................<p תגיות בסיסיות לעיצוב הטקסט 39 ........................................................................ חוקיות הפתיחה והסגירה של תגית בתוך תגית 40 ........................................................ התוכן שבין התגיות 40 ............................................................................................ להיכן נעלמו הרווחים בין המילים ובין השורות? 41 ................................................. רווח בין תווים ;41 ...................................................................................  רווח בין שורות >42 .................................................................................... <br שילוב תווים מיוחדים בתוכן שבין התגיות 43 ............................ ASCII Characters - מאפיינים לתגיות 44 ............................................................................. Attributes - סיכום :התקניות הנדרשת במסמכי 45 .............................................................. HTML5 תרגיל 47 ........................................................................................................... 1 קישורים 48 ........................................................................................................... תגית הקישור 51 ............................................................................................. a המאפיין 51 ............................................................................................... href המאפיין 52 .............................................................................................target המאפיין 52 ..................................................................................................rel המאפיין 52 ............................................................................................ media קישור לדואר אלקטרוני 53 ........................................................................ mailto קישור למסמך Wordשנמצא באותה תיקייה 54 ....................................................... קישור לדף אחר באתר שלי שנמצא באותה התיקייה54 ............................................. קישור פנימי בתוך דף 54 ...................................................................... Anchors- התגית 56 ................................................................................................. base תרגיל 57 ........................................................................................................... 2 צבעים ורקע 58 ...................................................................................................... רשימות ותבליטים58 .............................................................................................. רשימות תבליטים לא ממוספרות 61 ...................................................................... רשימות תבליטים ממוספרות 62 ........................................................................... רשימת הגדרות 62 ...................................................................... Definition list - HTML5 8 מאפיינים ) (attributesשל רשימות 63 ................................................................... המאפיין 63 .................................................................................... reversed המאפיין 63 .......................................................................................... start שינוי מראה הרשימה 63 ...................................................................................... שילוב תמונות בדף 66 ............................................................................................. מידע כללי 71 ................................................................................................... 72 ............................................................................................................ JPG 72 ............................................................................................................ GIF קבצי 72 ................................................................................. GIF ANIMATION 72 ........................................................................................................... PNG התגית 72 .................................................................................................. img סידור סביבת העבודה -התיקייה 74 ......................................................... images נתיבי קבצי תמונות74 ........................................................................................ נתיב יחסי )74 ......................................................................... (Relative path נתיב מוחלט )75 ..................................................................... (Absolute path שילוב תמונה מתיקיית התמונות באתר 75 ......................................................... תמונה כקישור 75 ......................................................................................... הוספת תמונת רקע 78 .................................................................................... תרגיל 80 ........................................................................................................... 3 טבלאות 81 ........................................................................................................... תאים ריקים בטבלה 82 ....................................................................................... מרווחים בין תאים ובתוך התאים 83 ...................................................................... סיכום 85 .............................................................................................................. פרק :3תגיות המבנה החדשות 87 ........................................................ תגיות חדשות ב HTML5-ליצירת מבניות בעלת משמעות 88 ......................................... התגית >88 ......................................................................................... <header התגית >88 .......................................................................................... <footer התגית >89 ......................................................................................... <section התגית >89 .......................................................................................... <article התגית >90 .............................................................................................. <nav התגית >90 ........................................................................................... <aside אזורים יעודיים 91 .................................................................................................. תגיות חדשות נוספות 93 ......................................................................................... התגית >93 .......................................................................................... <figure תוכן עניינים 9 התגית >93 ..................................................................................... <figcaption התגית >94 ............................................................................................<mark מודל התוכן של 95 ...................................................................................... HTML5 אלמנטים מסוג Block-levelומסוג 95 ........................................................... Inline ה DOM-ומודל התוכן החדש 7 :הקטגוריות 97 ........................................................ 98 ............................................................................................... Metadata 98 ...................................................................................................... Flow 98 ................................................................................................. Heading 99 ................................................................................................ Phrasing 99 ............................................................................................. Embedded 99 ............................................................................................. Interactive 99 .............................................................................................. Sectioning אלגוריתם קווי המתאר של התוכן )99 ........................................ (Outline algorithm תמיכה בדפדפנים שאינם תומכים ב100 ......................................................... HTML5- תרגיל 101 ......................................................................................................... 4 סיכום 102 ............................................................................................................ פרק :4הגדרות עיצוב על ידי 103 ................................................. CSS מה זה 103 .................................................................................................... ?CSS גרסאות של 107 .............................................................................................. CSS היכן כותבים את הגדרות 107 ........................................................................... ?CSS הגדרת העיצוב ישירות בתגית :HTMLשיטת 108 ........................................... Inline הגדרות צבע בשיטת Inlineובאופן כללי110 ..................................................... הבעיה בשיטת 111 .............................................................................. Inline הפתרון :שיטת 111 ........................................................................... Internal הגדרת העיצוב בראש המסמך באופן גורף :התגית >112 .................................<style הבעיה בשיטת תגית >113 ................................................................... <style הפתרון 114 ................................................................................................. השיטה השלישית והנבחרת :קובץ CSSחיצוני 114 ................................................. מה עושה הדפדפן? 115 ................................................................................. דוגמאות 115 ........................................................................................ CSS הגדרות CSSשימושיות לפי נושאים 120 .................................................................... רקעים 120 ....................................................................................................... - background-colorצבע רקע 120 ................................................................. - background-imageתמונת רקע 120 ............................................................ HTML5 10 - background-positionמיקום תמונת רקע 120 ................................................. - background-repeatשכפול תמונת רקע 121 .................................................. מסגרות 121 ..................................................................................................... - border-widthעובי מסגרת 121 .................................................................... - border-styleסגנון מסגרת 122 .................................................................... - border-colorצבע מסגרת 122 ..................................................................... טיפוגרפיה :הגדרות עיצוב עבור טקסטים וגופנים 123 .............................................. שימוש בטקסט 'חי' 123 ................................................................................. - Web-safe fontsגופן מערכת 123 ................................................................ - font-size ,font-family ,colorצבע הגופן ,משפחה וגודל 124 ............................. - font-styleסגנון הגופן 124 .......................................................................... - font-weightעובי הגופן124 ........................................................................ - directionכיוון הטקסט 125 ......................................................................... - letter-spacingרווח בין אותיות 125 ............................................................. - line-heightגובה שורה 126 ......................................................................... - text-alignיישור טקסט 126 ......................................................................... - vertical-alignיישור אנכי 126 ...................................................................... - word-spacingרווח בין מילים 126 ............................................................... - @font-faceצורת הגופן 126 ....................................................................... עיצוב קישורים 127 ........................................................................................... - text-decorationקישוט הטקסט 127 ............................................................. - listsעיצוב רשימות 127 ................................................................................... שוליים 127 ...................................................................................................... - marginשוליים חיצוניים127 ....................................................................... - paddingשוליים פנימיים 128 ...................................................................... גדלים :רוחב וגובה 128 ...................................................................................... איחוד הגדרות למספר תגיות 129 .............................................................................. תרגיל 5שלב 129 ................................................................................................1 הגדרות עיצוב שאינו גורף129 ........................................................................ Class : המשך תרגיל - 5שלב 131 ....................................................................................2 סדרי עדיפויות של הגדרות עיצוב 132 ....................................................................... כוכבית 133 .......................................................................................................... שימוש בשם ,המאפיין 134 ................................................................................... id אזורים יעודיים בדף אינטרנט או ביישום 134 .............................................................. שימוש בשתי מחלקות ) (classesלאותו אלמנט 135 ...................................................... תוכן עניינים 11 קישורים אינטראקטיביים 135 ................................................................................... - Hoverשינוי עיצוב במעבר עכבר מעל קישור 135 ................................................ - Visitedשינוי עיצוב של קישור לאחר ביקור בו 136 .............................................. יעילות הכתיבה של מסמכי 136 ..........................................................................CSS שימוש ב CLASS-במידה136 ............................................................................... עמידה בשני תנאים :הגדרת סוג תגית וגם שימוש ב137 .................................. class- היררכיה ב ,CSS-או קינון תגיות 138 ......................................................................... ההבדל בין 'צאצאים' לבין 'ילדים' מדור ראשון 139 ................................................. תגית שעוקבת אחרי תגית אחרת 140 .................................................................... תגיות שנמצאות לאחר תגית מסוימת 141 .............................................................. תגיות בעלות מאפיין מסוים 141 .......................................................................... תגיות עם מאפיין בעל ערך מסוים 142 .................................................................. שימוש בהערות 143 ............................................................................................... סיכום 143 ............................................................................................................ פרק :5מודל הקופסה ופריסות 145 ....................................................... מבנה ופריסת הדף 146 ............................................................................................ מודל הקופסה 147 .............................................................................. Box model - איחוד שוליים אנכיים 150 ............................................................. Margin collapse - תגית מתחת לתגית 150 ...................................................................................... הכלת תגית בתוך תגית אחרת 152 ........................................................................ איחוד שוליים בתוך אותו האלמנט153 .................................................................. הגדרות תצוגת Inlineותצוגת 154 .................................................................... Block אלמנטים עם תצוגת 154 ............................................................................ Block אלמנטים עם תצוגת 155 ............................................................................ Inline מיקום אלמנטים 156 ............................................................................................... זרימה רגילה של הדף 156 ..............................................................Normal flow - מיקום יחסי 156 ................................................................ Relative positioning - מיקום מוחלט 158 ............................................................ Absolute positioning - דוגמה שימושית 162 ..................................................................................... מיקום מקובע 163 ................................................................. Fixed positioning - אלמנטים "צפים" 163 .............................................................................. Floating - מסך צר של מכשיר נייד165 ................................................................................ תג הפסקת ציפה 166 .............................................................................. Clear - יישור אופקי 169 .................................................................................................... HTML5 12 יישור באמצעות שוליים אוטומטיים 169 ................................................................ יישור של טקסט בתוך אלמנטים לעומת יישור של אלמנטים170 ................................ דפדפנים ישנים למישהו? 172 .............................................................................. תרגיל 172 ......................................................................................................... 6 סיכום 176 ............................................................................................................ פרק :6קוד מינימליסטי ובעל משמעות 177 ............................................ למה הכוונה קוד בעל משמעות? 177 ......................................................................... הפרדת התוכן והמשמעות מהתצוגה 180 ..................................................................... מינימליזם בקוד 180 ............................................................................................... סיכום 182 ............................................................................................................ פרק :7טפסים ב183 ............................................................ HTML5- מהו הטופס ומהי מטרתו? 184 .................................................................................. טכנולוגיה ועיצוב יד ביד 185 ................................................................................... החשיבות של תכנון ועיצוב הטפסים 187 ............................................................... השפעת התפתחות העיצוב והטכנולוגיה על טפסים ב191 ............................. HTML5- לאן נשלחים הנתונים מהטופס ,וכיצד 192 .................................................................. סדנת עבודה192 .................................................................................................... התגית > <formומבנה טופס 194 .............................................................................. מבנה הטופס196 ............................................................................................... התגית >196 .......................................................................................... <label הפקדים 197 .......................................................................................................... הפקדים הבסיסיים :פקדי תיבת טקסט ושליחת הנתונים 198 .............................. input פקדי קלט נוספים עבור טקסטים ומספרים 200 ....................................................... פקד אזור טקסט205 .......................................................................... Textarea , פקד הלחצן 206 ................................................................................... button - פקדי בחירה 206 ............................................................................................... תיבת סימון 207 ........................................................................ check box - פקדי רדיו 208 ...................................................................... radio buttons - רשימה נגללת 210 .................................................................................select - פקד להעלאת קובץ 211 ...................................................................file upload - עיצוב הפקדים והטופס בכללותו 212 ......................................................................... פקד "שלח" ) (submitמעוצב עם תמונה 212 .......................................................... התגיות > <fieldsetו212 ................................................................. <legend> - תוכן עניינים 13 התגית >213 ....................................................................................... <details ניהול המידע 214 ................................................................................................... התגית >214 ...................................................................................... <datalist התגית >214 ..................................................................................... <datagrid הקוד לבניית הטופס 215 .......................................................................................... סיכום 217 ............................................................................................................ פרק :8נושאים מתקדמים 219 .................................................... CSS3 תמונות רקע ,חזרה ודגשים 219 ................................................................................ הגדרת תמונת רקע עבור מעברי צבע 220 .............................................................. מיקום תמונת רקע 221 ....................................................................................... מיקום על פי פיקסלים 222 ............................................................................. מיקום באחוזים 223 ...................................................................................... עיצוב קישורים מתקדם 224 ..................................................................................... קו תחתון בעיצוב אישי 224 ................................................................................. טכניקות להקטנת מספר המחלקות )225 ......................................................... (classes הדגשת קישורים מסוגים שונים 225 ...................................................................... תפיסת התחלת מחרוזת הערך 226 ................................................................... תפיסת סוף מחרוזת הערך 227 ........................................................................ מעברי עכבר יעילים מעל קישורים 228 ...................................................................... מעברי עכבר פשוטים 228 ................................................................................... מעברי עכבר בשימוש תמונה אחת 230 ................................... pixy-style rollovers - תפריט אופקי 231 .............................................................................................. טכניקות חדשות ב232 .................................................................................. CSS3- הוספת צללית לטקסט חי 232 .............................................................................. עיצוב עמודות 234 ............................................................................................ מעברי צבע 237 ............................................................................... gradients - ריבוי תמונות רקע 239 ....................................................................................... פינות מעוגלות 240 ........................................................................................... יצירת לשוניות ) (tabsעם פינות מעוגלות 242 ........................................................ 243 ............................................................................................... CSS transform אנימציות ב244 ............................................................................................CSS3- שינוי מצב245 .................................................................................................. שינוי מיקום 246 ............................................................................................... טיפוגרפיה :עיצוב גופנים 248 .................................................................................. HTML5 14 הטמעת גופנים251 ............................................................................................ זכויות יוצרים 252 ........................................................................................ אופן ההטמעה252 ............................................................................................. תמיכה בדפדפן 253 ............................................................ Internet Explorer דוגמה שלמה 254 .............................................................................................. 254 ............................................................................................... Media Queries סיכום 254 ............................................................................................................ פרק Jquery :9ו255 ..................................................... Javascript- מהי 255 .............................................................................................. ?Javascript התפקיד של Javascriptבדף אינטרנט 256 .................................................................. דף Javascriptהראשון שלך 256 ............................................................................... כיצד פועלת השפה 257 ..........................................................................?Javascript תחביר השפה 257 ....................................................................................... Syntax אירועים ,פונקציות ,אובייקטים ומשתנים 258 .............................................................. מודול אובייקט המסמך 259 .......................................................................... DOM - האובייקט החשוב 260 .......................................................................... Document - תחביר הנקודה 261 ................................................................................................. קריאת נתונים והשמת נתונים 261 ............................................................................. סדר קריאת הקוד על ידי הדפדפן 261 ........................................................................ משתנים 263 ......................................................................................... variables - הגדרת והצהרת משתנים 263 ............................................................................... ערכי משתנים 264 ............................................................................................. שרשור מספרים למחרוזות 264 ................................................................................. התניות ו ַהשָמוֹת 265 ............................................................................................... ריבוי התניות 266 .............................................................................................. שיטות בדיקה 266 ............................................................................................. הוראת התנאי 266 .......................................................................................... if ההוראה - thisמי אני? 266 ...................................................................................... פונקציות מובנות שימושיות 267 ............................................................................... הפונקציה המובנית ;)""(267 ....................................................... getElementById הפונקציה המובנית 267 ........................................................................ substring הפונקציה המובנית 267 .......................................................................... indexof פונקציות ואירועים 268 ...................................................................................... תוכן עניינים 15 החלפת קובץ התמונה במעבר העכבר 269 .............................................................. שלב ראשון 269 ........................................................................................... שלב שני 269 ............................................................................................... שלב שלישי 271 ........................................................................................... שינוי טקסט בדף 273 .............................................................................................. האובייקט 273 ............................................................................................... Style הצגה והסתרה של שכבה בלחיצה על אובייקט בדף 274 ................................................ הספריה 275 ............................................................................................... Jquery התקנת הרכיב המרכזי להרצת 275 .............................................................JQuery כתיבת הקוד הראשון שלך ב276 .............................................................. JQuery- האירוע 276 ............................................................................. document.ready סימן הדולר 277 ................................................................................................ מציאת אובייקטים על המסך 277 .......................................................................... שרשרת הוראות– 278 .......................................................................... Chaining שינוי אובייקטים 278 ......................................................................................... שינוי ערכים של מאפיינים 279 ............................................................................ מניפולציות על 279 .....................................................................................CSS אירועים280 ..................................................................................................... הופעה איטית והיעלמות איטית של אובייקטים 281 ...................................... Fade - Jquery mobileלהפעלה בנייד 283 ........................................................................... 287 ........................................................................................... Jquery mobile סיכום 287 ............................................................................................................ פרק :10שילוב מדיה והאובייקט 289 ........................................Canvas שילוב סרטונים ב289 ................................................................................. HTML5- שליטה על אובייקט videoבאמצעות 292 .................................................... Javascript שילוב שמע ב293 ......................................................................................HTML5- אפשרות ראשונה :התגית 293 ................................................................... embed אפשרות שנייה :תגית קישור 293 ......................................................................... אפשרות שלישית :קובץ פלאש 294 ...................................................................... אפשרות רביעית :תגית audioב294 ......................................................... HTML5- התגית 295 ................................................................................................ Canvas הכרת התגית ,דפדפנים תומכים ,מטרה 295 ............................................................ מערכת הקואורדינטות 295 .................................................................................. הוספת התגית למסמך 296 .................................................................................. HTML5 16 שינוי גודל הקנבס 297 ....................................................................................... כתיבת הקוד הראשון בקנבס298 ........................................................ hello world : תכנות בסיסי של התגית >298 ............................................................... <canvas המאפיינים של 299 ................................................................................. canvas הפונקציות של 299 ................................................................................. canvas הכרת APIלציור 2Dשל הקנבס 300 ............................ HTML Canvas 2D Context - זיהוי תמיכה בקנבס 300 ..................................................................................... תכנות בתוך הקוד שתומך בקנבס 301 ................................................................... מהו הציור על הקנבס? 302 ................................................................................. אפשרויות הצביעה ב302 ........................................................................ API- ציור מלבנים 304 ............................................................................................... ציור קווים 305 ................................................................................................. ציור משולשים על הקנבס 306 ............................................................................. הכרת המצב ) (stateשל משטח העבודה 308 ........................................................... צורות מורכבות :קשתות ונתיבים 311 .................................................................... ציור עיגולים על משטח העבודה 313 ......................................................... canvas עקומות 314 ..................................................................................................... ציור טקסטים 314 .............................................................................................. יצירת צל 314 ................................................................................................... הצגת תמונות בקנבס315 .................................................................................... מסכות 315 .............................................................................. clipping paths - טרנספורמציות 317 ................................................................. transformations - שינוי גודל הצורה 317 .............................................................................scale - סיבוב הצורה 318 .................................................................................. rotate - שקיפויות ושכבות 319 ....................................................................................... אנימציות 319 ................................................................................................... אנימציות יעילות עם 322 ........................................................... double buffering סיכום 323 ............................................................................................................ פרק :11נושאים מתקדמים 325 ..................................................... API מה הקשר בין APIלבין 325 ......................................................................... ?HTML5 מיקום גיאוגרפי 326 ........................................................................... Geolocation - כיצד פועלת התכונה 326 ................................................................ ?Geolocation קוד בסיסי ליצירת תוכנית משולבת 328 ..........................................Geolocation תוכן עניינים 17 אחסון מקומי 331 ............................................................................Local storage - לשם מה לשמור את הנתונים בדפדפן? 332 ............................................................ דוגמאות למשתמשים בשמירה מקומית 332 ........................................................... דוגמה 332 .................................................................................................. הלוגיקה לשמירת מצב 333 ................................................................................. החלק המרכזי של הקוד 334 ................................................................................ סיכום335 ........................................................................................................ File API – drag and dropגרירת קבצים מהמחשב האישי אל חלון הדפדפן 336 ............... תמיכת דפדפנים 337 .......................................................................................... ההסבר הטכני337 ................................................................................ File API : דוגמה לקוד שעושה שימוש ב338 .......................................................... File API - סיכום 340 ............................................................................................................ אינדקס 341 ..................................................................................... אינדקס תגיות למילוי עצמי HTML5 18 הקדמה ספר זה נכתב על ידי רושו יונית ,בעלת ניסיון של מספר שנות הוראה בנושא XHTMLו- HTML5במסלול לעיצוב אינטראקטיבי בשנקר .הצלחת הסטודנטים על פי שיטת לימוד מוגדרת היטב ועקבית ,תרמה ליוזמה לריכוז החומר וכתיבת הספר הזה. במהלך הלימוד בספר מנסה יונית להקפיד ,עד כמה שניתן ,על תהליכים מוגדרים וברורים, עבודה יעילה וקוד איכותי ,ולהדגיש גם את החשיבות של יעילות הקוד .הרי לא די בכך שהאתר פועל או "עובד" -הוא צריך לשרת באופן מקצועי ,יעיל ולהיות בעל משמעות. הספר מצייד אותך בכלים תיאורטיים ומעשיים להבנת רשת האינטרנט ,לתכנון ולבנייה של אתרי אינטרנט בשפה ,HTML5ולעבודה עצמאית ,החל בשלב הגדרת הצרכים ועד להגשת המוצר הסופי .אתה תכיר וגם תבין את הטכנולוגיה במהלך הלימוד של הטקסט והדוגמאות, ולא פחות חשוב -תוך כדי התנסות בפתרון תרגילים. עם סיום הלימוד בספר תוכל לבנות אתרי אינטרנט ויישומים למכשירים ניידים )מובייל( בשפת ,HTML5תוך שימוש בטכנולוגיות מתקדמות ,לצורך בנייה מקצועית ונקייה ,משולבת מדיה ,אינטראקטיב וקוד .הספר מתייחס הן למסך הרחב והן למסך הצר של מובייל. מבנה הספר לאורך הספר תמצא תרגילים ברמות שונות .לכל התרגילים יש פתרונות .שים לב ,לכל תרגיל יש דרכי פתרון שונות .בפתרונות יש גיוון בבחירות הדרכים ואופני הפתרון ,כדי לספק לך דוגמאות מגוונות ,אולם זכור שיש פתרונות נוספים שיכולים להיות טובים גם הם. בפתרונות יש הקפדה על מינימליזם בקוד ,ועל קוד יעיל ואפקטיבי. הפרק העוסק בטפסים משמש כסדנת עבודה ,בה בכל שלב של הלמידה מרחיבים את הטופס שבונים ביחד. הספר מחולק לשני חלקים עיקריים :פרקים 1עד 7מכסים את כל הנושאים הרלוונטיים להעלאת אתר מקצועי לאוויר .פרקים 8ואילך עוסקים בנושאים מורכבים שיאפשרו לך לשדרג את הידע שלך ולהפוך את האתר לאינטראקטיבי בעזרת מדיה ,קוד ,איתור מיקום הגולש ,מתן אפשרות לגרירת קבצים לחלון הדפדפן ועוד. הקדמה 19 קהל היעד בין אם אתה שואף לדעת לבנות אתר והנך ללא ניסיון או ידע בתחום ,ובין אם אתה מנוסה ובקיא בגרסאות קודמות של שפת בניית האתרים ,HTMLתוכל למצוא בספר זה את התשובות שחיפשת .הספר כולל פרק מבוא המתאר מושגים בסיסיים הכרחיים להבנה, ובמהלך הספר טיפים למי שעבד בגרסאות קודמות .הספר מסיים ברמה מאוד גבוהה של התממשקות ל API-מורכבים ,מדיה ותגית הקנבס המפורסמת. קטעי הקוד ניתן להוריד את כל קבצי הקוד ב html -ו css-והפתרונות הקיימים מאתר האינטרנט של הוצאת הוד עמיwww.hod-ami.co.il : בנוסף לקטעי הקוד תמצא בקובץ שייפתח גם קבצי תמונות של מסכים שנמצאים בספר. מכיוון שהספר מודפס ללא צבעים תוכל להיעזר במסך המקורי כדי לראות כיצד הוא נראה עם צבע. מצא את הספר באתר ואת הלינק "קוד מקור" להורדת הקבצים .לחץ עליו ועקוב אחר ההוראות .אם לא תגדיר אחרת ,יועתקו הקבצים אוטומטית לדיסק שלך ,לתיקייה זו: \C:\HodAmiBooks\59458 תוכל לבחור בעת ההתקנה בכל תיקייה אחרת .לאחר שתוריד את הקבצים מאתר הוד-עמי הם יימצאו )אם לא שינית( בתיקיה 59458שנמצאת תחת HodAmiBooksשנמצאת בכונן .C בספר נתייחס לתיקיית ברירת המחדל הזו. בדרך כלל הפעולות שיש לבצע לאחר הלחיצה על הלינק :לחיצה על הפעל ,לחיצה על ,UnZipלחיצה על OKו.Close- על יונית רושו מהנדסת תוכנה בעלת ניסיון מעשי רב שנים בבניית אתרים לחברות הייטק בארץ .מרצה ל- HTML5במחלקות לתקשורת חזותית ולהנדסת תוכנה ב'שנקר' ובמכון הטכנולוגי חולון. כתבה את מדור ידיעות באתר 'נענע '10וכותבת את מדור 'ניצוצות' ברשת בעיתון 'הארץ', על מגמות בעיצוב ובטכנולוגיה ברשת .מנהלת את 'דיינמיק-ווב' מקבוצת 'אולביז' ,אפיון, עיצוב ובניית אתרי פרימיום ואפליקציות ווב. אני מעודדת אותך לקרוא ,להתנסות ולחקור מתוך מטרה להגיע לרמה בינלאומית מקצועית. יונית. HTML5 20 מאפיינים לתגיות - Attributes עד כה למדת לשלב תגיות במסמך HTML5שלך .בתחילת הפרק עמדנו על החשיבות של תגיות ושל מאפיינים ) .(attributesכעת נעבור לשלב הבא :הכרת המאפיינים. כמו שלכל אדם יש שם ומאפיינים מסוימים כמו צבע עיניים )כחול( ,גובה ) 1.45ס"מ( ,גיל ) (6ועוד ,כך גם לתגית ניתן להגדיר מאפיינים מסוימים. לרוב התגיות ניתן להגדיר מאפיינים שמעשירים את התצוגה ,את היכולות או את הפונקציונליות שלהן .דוגמה למאפיינים :נתיב אל תמונה ,נתיב אל דף אינטרנט אחר ,שם התגית ועוד ,כפי שתראה בהמשך. הבה נמשיך בדוגמה הקודמת" :צבע העיניים" הוא המאפיין ו"כחול" הוא הערך של המאפיין הזה .גם "גיל" הינו מאפיין ו "6"-היה הערך שלו .לרוב המאפיינים ב HTML-יש ערך כלשהו ,כפי שתוכל לראות להלן. כתיבת מאפיין והערך שלו נעשית באופן הבא.src="face.jpg" : הבא נבחן זאת :המאפיין הוא ,srcוהערך שלו הוא face.jpgשרשום בין גרשיים. ייתכן שלא ברורה לך עדיין המשמעות של הכתיבה הזו ,אולם מייד הדברים יובהרו .תחילה צריך לדעת היכן וכיצד מגדירים את המאפיינים ואת הערכים שלהם .המאפיינים מופיעים לרוב בצורת "רווח 'שם' שווה 'ערך' שרשום בין גרשיים" .זו למעשה נוסחה .נחזור אליה שוב במהלך הלימוד ,כדי לא לטעות באופן כתיבת המאפיינים. ניתן גם לכתוב מאפיין שאינו שווה לערך כלשהו ,אבל אלה מקרים בודדים ,כפי שנלמד בשלב מתקדם יותר. מנוסה בגרסאות קודמות של ?HTML ב HTML5-לא חייב להיות ערך לכל מאפיין .על החוקיות תלמד בהמשך. מאפיינים ) (attributesמוגדרים תמיד בתגית הפתיחה בלבד .אם צריך להגדיר יותר ממאפיין אחד ,הם יוגדרו זה אחר זה ,ללא חשיבות לסדר הכתיבה שלהם .כמובן ,לפי הנוסחה שלמעלה ,יש לזכור שלפני כל מאפיין יש לכתוב את התו 'רווח'. התבונן בקוד ,exercise_2.8.htmlעל אף שאינך מכיר עדיין את התגיות ולא יודע מה משמעותן ,תוכל לזהות את המאפיינים ,אשר מודגשים ברקע אפור: ><!DOCTYPE html ><html ><head ><title>Attributes</title ></head HTML5 44 ><body ><section >"<img src="logo.jpg" alt="cats" title="cats ><br ><a href="about.html">about us</a ></section ></body ></html בהמשך הלימוד תכיר ותבין את משמעות המאפיינים הללו .התוצאה אינה מוצגת כי עכשיו חשוב להבין מה מאפיין וכיצד כותבים אותו. תוכל לראות שלפני כל מאפיין יש רווח ,לאחריו יש סימן שוויון )=( ,ולאחריו רשום הערך שלו כשהוא תחום בגרשיים. כך תוכל לראות שהנוסחה תמיד מתקיימת :רווח 'שם' שווה 'ערך' שרשום בין גרשיים. סיכום :התקניות הנדרשת במסמכי HTML5 בכתיבת קוד HTML5חשוב להקפיד על החוקים ולפעול על פי התקנים שנקבעו ,למניעת תצוגה שונה על מסכים שונים ,דפדפנים שונים ומערכות הפעלה שונות .גרסאות שונות של דפדפנים שונים מחמירות באופן שונה בכתיבת התגיות והמאפיינים ,ועל כן התצוגה הסופית משתנה מדפדפן לדפדפן .הקפדה על התקניות המומלצת בספר זה תסייע למניעת פערי תצוגה בין דפדפנים שונים .בנוסף לקריאה נוחה וכמובן ,למען הסדר הטוב .יש סיבות נוספות לצורך בהקפדה על "החוקים" או לפחות לשמירה על כללים עקביים ומסודרים בעת כתיבה של מסמך .HTML5 שפת ,HTML5כלומר הגרסה החדשה ,אינה נוקשה בכלליה כפי שהיה בגרסאות קודמות. להלן נלמד על כמה מהחוקים החשובים ונחשף להמלצות לשמירה על סדר וחוקיות. אם יש לך ידע קודם ב ,XHTML-אתה ודאי מקפיד על כך שתהיינה תגיות > <headו- > ,<bodyוכל תגית חייבת להיסגר .שפת HTML5אינה מקפידה על חוקיות זו .למעשה, HTML5מאפשרת להשאיר חלק מהתגיות פתוחות ולא לסגור אותן ,כמו למשל תגית הפִ ְסקה .גם אין חובה להשתמש בתגיות >.<body> ,<head> ,<html מנוסה בגרסאות קודמות של ?HTML מי שרגיל לשמור על התקניות של XHTMLיתקשה מאוד לקבל את השינויים בתקניות הנדרשת במסמכי .HTML5קח נשימה ,תתרגל. כדי לבדוק אם הקוד שאתה כותב חוקי ותקני ,אתה מוזמן להעלות את הקובץ שכתבת ושמרת אל אתר בכתובת.http://validator.w3.org : פרק :2יסודות ועקרונות שפת )45 HTML(5 התבונן בקוד .exercise_2.9.htmlשים לב לתגיות החסרות בו ,לערבוב בין האותיות רגילות ורישיות ,לכך שאין גרשיים סביב הערך של המאפיין ,ועוד .קוד exercise_2.9.htmlנמצא תקני בבדיקת התקינות של :HTML5 ><!DOCTYPE html ><heaD ><title>Attributes</TITLE ><meta charset=utf-8 ><bOdy ><SECTION This is what it is. ></section תודה לכולכם><p ></body למרות כל "השגיאות" כביכול האלו ,הקוד תקין! תרשים 2.12 עם זאת ,על אף העובדה ש HTML5-אינה מחייבת להקפיד על כללי הכתיבה ,לשם האחידות אני מדגישה את החוקיות שרצוי לקיים: .1מבניות .Structure -רצוי לחלק את המסמך לשני חלקים :לכותרת ) (headולגוף ) ,(bodyולהכיל את שניהם בין תגית הפתיחה > <htmlלבין תגית הסגירה >,</html שנכתבות לאחר שורת ההצהרה .doctype .2עריכה נכונה :Well-formed - תגיות שבאופן אינטואיטיבי אמורות להיסגר ,רצוי לסגור ,ולא להשאיר פתוחות. כגון p ,body ,head :ואחרות. קינון נכון .Properly nested -יש להקפיד על כך שתגיות הסגירה תיסגרנה כמו בחוקיות הסוגריים במשוואה מתמטית ,בהתאמה לפי סדר פתיחתן. .3סוגי אותיות .Case sensitive -מומלץ להקפיד על שימוש באותיות רגילות )"קטנות"( בלבד ,ולא לערבב אותיות רגילות ואותיות רישיות )"גדולות"(. HTML5 46 .4רצוי לתחום כל תכונה של מאפיין בגרשיים ולהקפיד שכל התכונות תיכתבנה באותיות רגילות .אם יש ערך זהה לשם המאפיין ,כדוגמת המאפיין החדש " hidden="hiddenאפשר לכתוב > <section hiddenבלבד. גם אם לא כל החוקים הרשומים בסעיף זה ברורים לך בשלב זה ,אני בטוחה שעם ההתקדמות שלך בלימוד זה תכיר אותם ואת חשיבות השמירה עליהם. מנוסה בגרסאות קודמות של ?HTML במהלך הלימוד בספר לא אסגור תגיות ריקות .כלומר, > <meta charset="utf-8" /או > <br /יוצגו ללא לוכסן בסוף תגית הסגירה ,וזה בסדר. תרגיל 1 צור דף HTMLהכולל את השלד ,טקסטים ותווים מיוחדים כפי שלמדת ,הכן מסמך HTML5 שייראה כפי שמוצג בתרשים :2.13 תרשים 2.13 הפתרון נמצא בקוד .solution_2.1.html פרק :2יסודות ועקרונות שפת )47 HTML(5 נתיב מוחלט )(Absolute path נתיב מוחלט מציג את הנתיב אל התמונה bgr1.jpgבאופן מפורט ,כולל שם האתר והתיקייה ,כמו לדוגמה: "<img src="http://www.somedomain.co.il/images/bgr1.jpg >"title="circle" alt="circle זו יכולה להיות תמונה השמורה בשרת של האתר שלך או לחילופין ,תמונה שנמצאת באתר אחר ואתה רוצה להציג אותה בדף האינטרנט שלך. היתרון של השימוש בנתיב מוחלט הוא בכך שהתמונה אינה תופסת מקום בשרת שלנו. החיסרון הוא בכך שאם ימחקו את התמונה מהשרת שבו היא נמצאת כעת וממנו מציגים אותה ,עדיין יהיה לנו דף אינטרנט אבל ללא תמונה .כמו כן ,יש לשקול את נושא זכויות היוצרים בדבר איסור הצגת תמונה מאתר של מישהו אחר. שילוב תמונה מתיקיית התמונות באתר כך תוצג תמונה ששמורה בתיקיית תמונות באתר שלנו: >"<img src="images/bgr1.jpg" title="circle" alt="circle תמונה כקישור עד כאן למדת ליצור קישור ולמדת להציג תמונה .כעת תוכל לשלב את שני הנושאים האלה ולהציג תמונה במקום הטקסט של הקישור. באתר הבא ,תמונות הסמלים של הרשתות החברתיות מהוות למעשה קישורים לאתרים אלה: פרק :2יסודות ועקרונות שפת )75 HTML(5 באתרים רבים הלוגו הוא הקישור אל דף הבית של האתר: מעניינים בעיקר סמלי לוגו שמשתנים כשחולפים מעליהם עם העכבר: HTML5 76 הדבר אינו שונה באתרים בעברית ,כמובן: באתר של הכללית סימנתי במסגרת שחורה את התמונות המהוות קישורים לעמודים אחרים. כדי לעבור לכתובת קישור ,אפשר ללחוץ על סמל או על כיתוב האומר "לחץ כאן" .בדוגמה שלמטה ,נעבור אל כתובת הקישור על ידי לחיצה על תמונת העיגול ,כפי שתוכל לראות בקוד :exercise_2.12.html "<a href="contact.html"><img src="bgr1.jpg" title="circle >alt="circle"></a התוצאה בדפדפן היא ,שבעת מעבר של העכבר מעל התמונה ,סמן העכבר יהפוך לצורת כף יד ואצבע המסמלת קישור .שים לב למסגרת שהופיעה סביב התמונה בדפדפנים מסוימים )כגון .IEתרשים .(2.21בפרק 4תלמד כיצד לבטל אותה. פרק :2יסודות ועקרונות שפת )77 HTML(5 במכשירים הניידים ,או כשהדף מודפס .תוכל לעשות זאת בקלות יחסית ללא צורך לשנות דבר בקוד HTMLהמקורי שהכנת. להבדיל מ HTML-שהיא שפה מבוססת תגיות CSS ,היא שפה שמוכוונת על ידי רשימה של הגדרות עיצוב. תוכל להבחין בין תגיות HTMLשונות על ידי סימני >…< שנרשמים סביב שם של כל תגית, ואילו ב CSS-אין קודי סימון כלל. כל הגדרת עיצוב מורכבת משני חלקים :ההגדרה והערך שלה .להלן מספר דוגמאות של הגדרות .את ההגדרות צריך לכתוב באנגלית .כאן הן נכתבו בעברית לשם הנוחות וההסבר בלבד ,ולצורך ההבנה של נושא "הזוגות": צבע רקע :כחול; היישוםbackground-color:blue : צבע גופן :אדום; היישוםcolor:red : גודל אות 12 :פיקסלים; היישוםfont-size:12px; : רווח מלמעלה 56 :פיקסלים; היישוםpadding-top:56px; : סוג גופן :אריאל ) ;(Arialהיישוםfont-family:Arial : שים לב שבאנגלית הפרמטר ,כמו בדוגמה הראשונה ,blueנכתב צמוד לנקודתיים .יש עשרות הגדרות שונות ולכל אחת מהן ניתן לקבוע מספר ערכים .מספר האפשרויות גדול מאוד ,כפי שתראה בהמשך הלימוד בפרק זה. כרגע חשוב שתדע שההגדרות נעשות בזוגות :הגדרה וערך. גרסאות של CSS כמו ,HTML5כך גם שפת ההגדרות CSSמשתנה ומתפתחת ללא הרף .חלק מהגדרות העיצוב כבר קיימות משנות ה ,90-החל בגרסה הראשונה .הגדרות העיצוב העדכניות נמצאות במסמכי המפרטים של .CSS3היכולות שמאפשרות הגדרות העיצוב של CSS3התפתחו באופן משמעותי בעשור האחרון ,והן ממשיכות להתפתח גם בעת כתיבת שורות אלו. היכן כותבים את הגדרות ?CSS יש שלוש אפשרויות לכתוב את הגדרות העיצוב של האלמנטים בדף .מתוכ ַן ,מומלצת האפשרות השלישית בלבד ,אך כדאי להכיר גם את שתי האחרות ,כי לפעמים יש צורך להיעזר בהן. פרק :4הגדרות עיצוב על ידי 107 CSS הגדרת העיצוב ישירות בתגית :HTMLשיטת Inline שיטת הגדרת עיצוב זו היא הבסיסית והקלה ביותר .לשיטה קוראים ,Inlineכי כל הגדרה מתבצעת "בתוך השורה" של התגית. את שיטת ההגדרה Inlineכבר ראית בפרק ,2אך היא לא הוסברה .ההגדרה מתבצעת בדרך זו -קוד :exercise_4.1.html ><h1 style="color:red;">Profile Company</h1 בתחילת הלימוד בפרק 2הקפדנו להבחין בין התגיות לבין המאפיינים ) .(attributesבכל הפרק הודגשה החשיבות של ההבנה וההפנמה של מושגים אלה .התגיות מרכיבות את דף האינטרנט שלך וכל אחת מהן רשומה בין הסימנים >…< .המאפיינים קובעים הגדרות מסוימות ומוגדרים בתגית הפתיחה .המאפיינים מופיעים לרוב בצורת הנוסחה שהקפדנו לחזור ולהדגיש בפרק " :2רווח 'שם' שווה 'ערך' שרשום בין גרשיים" כאשר כותבים מאפיינים אחדים יש ביניהם רווחים ,ולאחר כל המאפיינים נרשם התו נקודה-פסיק );(. בדוגמת קוד exercise_4.1.htmlהסגנון ) (styleהינו המאפיין .הוא מוצג בתגית >,<h1 והערך שלו הינו הביטוי שנמצא בין הגרשיים .ראינו איפוא שהגדרת סגנון לתגית הפתיחה מתבצעת בצורה של מאפיין וערך ,כפי שלמדת בפרק .2בדוגמה זו הערך בהגדרות הסגנון מורכב מזוג נתונים .החלק הראשון הוא למעשה סוג המאפיין והחלק השני של זוג הנתונים מציין ערך .זוג הנתונים מופרדים ביניהם בנקודתיים וצמודים ללא רווח. הבה נתבונן בדוגמה נוספת :נכתוב את המאפיין styleואת סימן השוויון ואחר כך את הערך שלו "") "color:redצבע:אדום"( .שים לב שגם colorוגם redהם חלקים של הגדרת המאפיין .הגדרה זו גרמה לכך שצבע הגופן בשורה הראשונה הוא אדום ,כפי שתוכל לראות בתרשים .4.1הגופן בשורה השנייה הוא שחור .הספר מודפס בשחור/לבן ,ולכן אין בו הבחנה של צבעים ,אך תוכל לראות זאת במסך ,כאשר תפתור את התרגיל! תרשים 4.1 HTML5 108 בדרך דומה ניתן להגדיר צבע רקע ,סוג גופן ,רוחב שורה ועוד .ניתן לקבוע הגדרות לתגיות שונות ,לתגית כותרת ,לתגית קישור ועוד ,כפי שתוכל לראות בקוד .exercise_4.2.html הסברים מפורטים ורשימות ערכים אפשריים מופיעים בהמשך הפרק .הצלליות באפור מדגישות את המאפיינים" :רווח 'שם' שווה 'ערך' שרשום בין גרשיים" .בסוף רשימת המאפיינים שבתגית כותבים נקודה-פסיק );( ,ראה את התגית האחרונה >.<a ><section style="background-color:blue;">Profile Company</section ><h2 style="font-family:Arial;">Goals</h2 ><aside style="width:200px;">Vision</aside ><a href="about.html" style="color:green;">Vision</a תרשים 4.2 בתרשים 4.2תוכל לראות את התוצאה המתקבלת בדפדפן כרום ,ובו לא ניתן להבחין באותיות השחורות של הכותרת על צבע הרקע הכחול .על כן נוסיף את ההגדרה "צבע:לבן", כדי שהאותיות תהיינה לבנות על רקע כחול )שים לב :המראה יהיה ברור יותר על המסך, לאחר שתפתור את התרגיל( -קוד :exercise_4.3.html ;<section style="background-color:blue >color:white;">Profile Company</section שים לב שבין ערך אחד של המאפיין לערך אחר מפרידים על ידי נקודה-פסיק );(. פרק :4הגדרות עיצוב על ידי 109 CSS בתרשים 4.3תוכל לראות את התוצאה בדפדפן: תרשים 4.3 הגדרות צבע בשיטת Inlineובאופן כללי כפי שראית בקוד ,exercise_4.2.htmlניתן לשנות צבע אותיות וצבע רקע על ידי הגדרת שם של צבע ,מספר הקסדצימלי של צבע או הגדרה של רמות הכחול ,האדום והירוק במידת שקיפות רצויה. להלן חלק מרשימת הצבעים המוגדרים מראש ,אשר מוכרים על ידי הדפדפנים: aqua, black, blue, fuchsia, grey, green, lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow. לחילופין ,תוכל לציין את מספר הצבע במספר בן שש ספרות לאחר הסימן סולמית .# לדוגמה #000000 ,מציין שחור ,ו #ffffff -מציין לבן .את המספר ניתן לדגום בתוכנה פוטושופ ואחרות. אפשרות נוספת היא להגדיר את רמות הכחול ,ירוק ואדום של הצבע ,עם ציון אחוזי השקיפות. כדי להציג דף בצבע רקע שחור ,תוכל לכתוב את אחד הקודים הבאים בשורת התגית ,כולם כתובים בשיטת :Inline >";<body style="background-color:#000000 >";<body style="background-color:black >";)<body style="background-color:rgba(0,0,0,0.5 בדוגמה האחרונה ברשימה שלעיל ,הצבע יהיה חצי שקוף ).(0.5 HTML5 110 מנוסה בגרסאות קודמות של ?HTML בספר זה לא נשתמש בתגית > <tableליצירת פריסות .שיטת השימוש בטבלה לעימוד הדף הינה מיושנת כי היא אינה מפרידה כראוי בין התוכן לבין העיצוב .לפיכך ,כדי ליצור את הפריסה המוצגת בתרשים 5.2מומלץ להשתמש בשיטות חדשות לעימוד פריסות. מודל הקופסה Box model - "מודל הקופסה" קובע כיצד והיכן יוצגו אלמנטים בדף ומה יהיו יחסי הגומלין ביניהם. כאשר אנו מתייחסים לאלמנט או לאובייקט כלשהו ,אנו מתכוונים למעשה לתגית שהוגדרה בדף .תגיות כמו > <nav> ,<header> ,<section> ,<h1ותגיות נוספות שלמדת בפרקים הקודמים ,הן אובייקטים בדף האתר ומרכיבות את המבנה ואת המראה שלו .על פי מודל זה, כל אלמנט בדף מוגדר כקופסה ,המורכבת מהחלקים הבאים: - Content areaאזור התוכן .משמש לטקסטים ,תמונות ושאר מרכיבי התוכן שבתגית. - Paddingשוליים פנימיים .משמשים בעיקר לציון הרווח שבין הטקסט לבין שולי אזור התוכן .שוליים פנימיים אינם יכולים להיות מוגדרים כמספר שלילי. - Borderמסגרת .המסגרת הינה חלק מהעיצוב ,אך לרוב מבטלים את קיומה בCSS- על ידי ההגדרה 0) border:0pxפיקסלים(. - Marginשוליים חיצוניים .שוליים אלה תמיד שקופים ולא ניתן לראותם .השוליים החיצוניים משמשים ליצירת רווח בין אלמנטים .שוליים חיצוניים יכולים להיות מוגדרים כמספר שלילי )מיקום יחסית למיקום המקורי(. תרשים 5.3 פרק :5מודל הקופסה ופריסות 147 כשתגדיר רקע לאלמנט ,הוא יכלול את אזור התוכן ואת אזור השוליים הפנימיים ,עד קו המסגרת. התבונן בתרשים .5.3זוהי דוגמה לתגית המקטע > <sectionשבהגדרות העיצוב שלה ב CSS-נקבעו רוחב וגובה מסוימים .הגדרות אלו מתייחסות לרוחב ולגובה של אזור התוכן בלבד .אם תוסיף את ההגדרות border ,paddingו ,margin-הממדים של הקופסה יגדלו ,אך הדבר לא ישפיע על אזור התוכן שלה. נמחיש זאת על ידי הדוגמה הבאה :נניח שעל פי העיצוב הרצוי ,עליך ליצור תגית שהמקום הכולל שמוגדר לה ,כולל הרווחים מכל צדדיה ,הוא 200פיקסלים .השוליים החיצוניים צריכים להיות 25פיקסלים ,ויציגו את הרווח בינה לבין תגיות אחרות .בנוסף ,בעיצוב יש לאזור זה מסגרת ברוחב 3פיקסלים ושוליים פנימיים של 5פיקסלים. תרשים 5.4מסכם את הנתונים: תרשים 5.4 נשאלת השאלה :מהו הרוחב של אזור התוכן? אם השוליים החיצוניים הינם 25פיקסלים מכל צד ,ורוחב המסגרת הוא 3פיקסלים מכל צד והשוליים הפנימיים הינם 5פיקסלים מכל צד ,אז מימין ומשמאל דרושים יחד 66פיקסלים. הרוחב הכללי על פי העיצוב שיש למקטע > <sectionהוא 200פיקסלים ,ומכאן שרוחב אזור תוכן הוא 134פיקסלים ,וכך יש להגדיר אותו .בהגדרות של #box_exampleבקוד exercise_5.1.htmlתוכל לראות את הגדרות העיצוב האלו. שים לב שההגדרות ב #box_example2 -מבטלות לחלוטין את השוליים הפנימיים ,את השוליים החיצוניים ואת המסגרת. HTML5 148 תרשים 7.12מציג את התוצאה הסופית במכשיר הנייד: תרשים 7.12 שים לב ,שאנו כלל לא עוסקים בפרק זה בעיצוב הטפסים .את העיצוב יש לעשות לפי ההנחיות והכללים שנלמדו בפרק .4 תרגול :7-1צור מסמך HTML5כפי שלמדת .השאר את התגית > <bodyריקה. התגית > <formומבנה טופס התגית > <formלהגדרת טופס כוללת תגית פתיחה ותגית סגירה .בין תגיות אלו מוגדרים הפקדים שנלמד בפרק זה. כאשר יש בטופס פקד "שלח" ,כפי שתלמד ליצור בהמשך -לחיצה עליו תשלח אל השרת את כל הנתונים שהגולש מילא בטופס .כך כותבים את התגיות להגדרת טופס: "<form action="http://www.designers.com/members.aspx >method="get" autocomplete ></form 194 HTML5 לתגית > <formיש מאפיינים אחדים: המאפיין - actionהכתובת שאליה נשלחים הנתונים<form action> : הנתונים שהגולש ממלא בטופס צריכים להישלח אל השרת כדי שיעבד אותם ויגיב בהתאם .הערך של המאפיין actionהינו הכתובת שאליה ישלחו הנתונים .הכתובת יכולה להיות אתר באינטרנט ,דף מסוים באתר ,ועוד .אם לא מגדירים מאפיין זה, הנתונים יישלחו אל הדף הנוכחי. המאפיין - methodאופן שליחת הנתונים אל השרת<form method> : יש שתי שיטות לשליחת נתונים method="get"> :או >"method="post :getזו ברירת המחדל .באופן זה נשלחים הנתונים באופן גלוי לעיני הגולש בזוגות "שם פרמטר"/ערך ,כלומר ,הנתונים מוצגים בשורת הכתובת של הדפדפן .ניתן לראות זאת לדוגמה באתר של גוגל .היכנס ,חפש והסתכל בשורת הכתובת. בתרשים הבא מחפשים את המילה .HTML5כפי שתוכל לראות ,הביטוי שמחפשים מוצג בשורת הכתובת של הדפדפן: תרשים 7.13 שיטה זו מומלצת כאשר הנתונים אינם רגישים ,סודיים ,או אישיים .מספר התווים שניתן לשלוח ב get-מוגבלת למספר מסוים ,תלוי בדפדפן ,ולכן יכול להיות שלא כל המידע יועבר כראוי. :postהנתונים נשלחים באופן שאינו גלוי לעיני הגולש .אין זה אומר שאם הנתונים אינם גלויים ,הם מאובטחים .בשיטה זו אין הגבלה על כמות הנתונים שאפשר לשלוח. דוגמה למשלוח כזה :סיסמה. המאפיין <form autocomplete> :autocomplete מאפיין זה יכול לקבל שני ערכים on :או .offאם הוא דולק ) ,(onאזי הדפדפן שומר בזיכרון את הערכים המוזנים לו עבור השדות ובפעם הבאה הוא יציע למשתמש להשתמש בהם .ברירת מחדל היא .on פרק :7טפסים ב195 HTML5 - 8 נושאים מתקדמים CSS3 בשלב זה של הלימוד ,אתה כבר מוכן לככב בעולם האמיתי ברשת .למדת לבנות דפי HTML5באופן מקצועי ויעיל .למדת לעצב את הדפים ואת הגדרות העיצוב הרלוונטיות. לפניך אפשרויות רבות להגדרות עיצוב ב .CSS-בפרק זה תכיר יותר את CSSבכלל ואת CSS3בפרט ,ותרחיב את ידיעותיך על שימוש בסוגי גופנים. בפרק זה נבחן את הנושאים הבאים: טכניקות מתקדמות בCSS- CSS3 הטמעת גופנים תמונות רקע ,חזרה ודגשים על הוספת רקע פשוטה לאתר למדת בפרק .4כידוע ,לתמונות יש משקל )נפח( ובעת טעינת עמוד אינטרנט ככל שיהיו בו יותר תמונות )תוכן או רקע( ,כך משקלו וזמן טעינתו יהיו ארוכים יותר .לכן ,מומלץ לייעל על ידי הפחתת השימוש בתמונות רקע ,כאשר זה אפשרי. כדי שתוכל לייעל את הגדרת תמונת הרקע ואת הפחתת השימוש בתמונת רקע לאפקט של מעברי צבע ,הבה ניזכר בהגדרת תמונת רקע רגילה: body { ;)background:url(some_pattern.jpg } כברירת מחדל ,הדפדפנים משכפלים את תמונת הרקע לאורך ולגובה השטח שמוגדר עבור התגית שתמונת הרקע מוגדרת כרקע שלה. פרק :8נושאים מתקדמים 219 CSS3 הגדרת תמונת רקע עבור מעברי צבע מה פירוש הדבר תמונת רקע לכל רוחב הדף? ראה את תרשים ,8.1שבה ניתן להבחין במעברי צבע מראש התמונה ועד תחתיתה ,מצבע כהה למעלה ועד בהיר למטה ,לכל רוחב הדף: תרשים 8.1 יש שתי אפשרויות להגדיר את מעברי הצבע. בגרסאות קודמות של ,CSSכאשר היה צורך ליצור גרדיאנט ) ,gradientשינוי צבע הדרגתי( אופקי ,כמו בתרשים ,8.2היית צריך לחתוך תמונה ברוחב 1פיקסל ולכתוב את הגדרת העיצוב הבאה: ;background: #999999 url(some_pattern.jpg) repeat-x שורה זו הינה למעשה קיצור של אוסף ההגדרות הבא: ;background-color: #999999 ;)background-image: url(some_pattern.jpg ;background-repeat: repeat-x 220 HTML5 9 JQueryוJavascript- מקובל לומר שמעצב אתרים מקצועי צריך להכיר טכנולוגיות ,ושבונה אתרים מקצועי צריך להבין עיצוב .בימינו ,כדי להצליח לאפיין ,לעצב ולבנות אתר אינטרנט מוצלח ,צריך להכיר הן את היכולות שמאפשרת לך הטכנולוגיה והן את המגמות ,הכיוונים או הטרנדים ,ואת האינטראקטיביות שהמעצב חולם עליהן .שפת HTML5מצפה ממך להיעזר בכתיבת קוד Javascriptכדי לשלוט על סרטונים ,צלילים ,ציורים על הקנבס ) ,(Canvasגרירת קבצים לתוך חלון הדפדפן ועוד .את כל אלה תכיר בפרקים הבאים ,אולם כדי שתוכל להבין ולבצע ,עליך להכיר תחילה את השפה .Javascript בפרק זה תלמד היכן לשלב קוד Javascriptבמסמכי HTML5שלך ,כיצד קוד Javascript נראה ומתי משתמשים ב .Javascript-תראה דוגמאות ותכיר את הספריה JQuery העוצמתית .בפרק זה תלמד את הבסיס של השפה ומראה כמה מההיבטים החשובים שלה. בפרק זה נבחן את הנושאים הבאים: מהי ?Javascript סדר קריאת קוד Javascriptע"י הדפדפן דף Javascriptהראשון שלך דוגמאות תחביר השפה Jquery על משתנים ,פונקציות ,אובייקטים ואירועים Mobile jquery מהי ?Javascript Javascriptהינה שפת תכנות לכל דבר ,ומשמשת כשפה העיקרית לכתיבת קוד באתרי אינטרנט .היא נוחה ,קלה ללימוד וליישום ,כפי שמייד תראה ,היא גם משתלבת כראוי בקוד HTML5ובהוראות .CSSשפת תכנות זו מבוססת עצמים ) ,Object Orientedכפי שתלמד בהמשך( ,ומספקת יכולות של פעולה הידודית )אינטראקטיבית( בין הגולש לבין האתר. פרק JQuery :9ו255 Javascript- השפה משתלבת באופן נוח עם רכיבי תכנות ומידע מורכבים .מכיוון שקוד Javascriptנקרא ומבוצע על ידי הדפדפן ,הוא נקרא שפת קוד לקוח ) Client Side Programming .(Languageקוד Javascriptפועל בתוך יישום אחר ,בדפדפן .בדפדפנים אינטרנט אקספלורר ,כרום ,פיירפוקס ,ספארי ואופרה יש "מנוע" Javascriptמובנה אשר מפענח את הקוד .מערכת ההפעלה מריצה את תוכנת הדפדפן ,שמציג את דף האינטרנט ,שבתוכו כתוב קוד בשפת .Javascript הדפדפן ,כפי שלמדנו בפרק הראשון ,מקבל מידע מהשרת ומציג אותו באמצעות תגיות .HTMLהמידע כולל תמונות ,תוכן מילולי )טקסט( ,סרטונים ,קישורים ועוד .חלק מהמידע מחייב חישובים ,הקצאת משאבים ,טעינת נתונים מאתרים אחרים או מבסיסי נתונים למיניהם, פעולות אינטראקטיביות שונות ,ועוד .בכל הפעולות מסוג זה יכולה שפת Javascriptלטפל. התפקיד של Javascriptבדף אינטרנט בפרק 6למדת על ההפרדה בין תוכן לבין תצוגה. קוד HTMLמגדיר את התוכן בתוך תגיות בעלות משמעות. קוד CSSמגדיר את התצוגה על ידי הגדרות העיצוב. קוד Javascriptמאפשר את ההתנהגות ואת האינטראקטיביות. דף Javascriptהראשון שלך הבה נתחיל עם קוד פשוט וקל ,כדי "לחוש" את השפה. הדפדפן מצפה לקרוא תגיות במסמך HTML5שלך ולהציג לגולש את התוכן ש ָתחום בתגיות .אולם ,קוד Javascriptאינו צריך להיות מוצג לגולש ,אלא אמור להתבצע ברקע על ידי הדפדפן .אם כן ,הדפדפן צריך לזהות את קוד Javascriptולא להתבלבל בינו לבין תגיות .HTML5הגדרת אזור Javascriptבקוד HTMLנעשית על ידי התגית > <scriptבדרך זו: ><script type="text/Javascript"></script את פקודות Javascriptניתן לשלב במספר מקומות במסמך HTML5שלך .בדרך כלל ,נשלב בתגית >.<head הבה נתחיל :צור דף HTML5כפי שאתה כבר יודע לעשות ,והוסף לו את הקוד המוצג בקוד ,exercise_9.1.htmlבתוך תגית >:<head >"<script type="text/Javascript ;)"!alert("Hello World ></script HTML5 256 10 שילוב מדיה והאובייקט Canvas האם אתה יכול לדמיין איך היו נראים אתרי אינטרנט או יישומים ללא שימוש בסרטונים? ללא שמע וצלילים? ללא משחקים ,אינטראקציות ואנימציות? סביר להניח שלא .שפת HTML5לוקחת בחשבון את הטכנולוגיה העשירה ואת התפתחות עולם המדיה בעולם האינטרנט ומאפשרת ניצול ויישום של עולם המדיה ללא שימוש ברכיבים חיצוניים כפלאש ) ,(Flashוללא טריקים מוזרים כמו שילוב שמע ממקור פלאש ברקע של הצגת אתר .HTML בפרק זה נבחן את הנושאים הבאים: שמע סרטונים ) Canvasקנבס( שילוב סרטונים בHTML5- עד לאחרונה הצגת סרטונים באתר אינטרנט הייתה נעשית בדרך כלל על ידי התוכנה Flash )פלאש( .זו תוכנה חיצונית ,המחייבת את התקנת Flash playerבדפדפן של הגולש כדי שיוכל לצפות בסרטון .אחת השאיפות של HTML5הייתה להוריד את כמות התוספים ) ,(pluginsרכיבי תוכנה שמתקינים בדפדפן ,כדי להריץ את האתר. כדי למלא דרישה זו פוּתחה התגית > <videoלהפעלת סרטונים .התגית כוללת תגית פתיחה וסגירה ואת המאפיין המרכזי ,scr :שמאפשר להגדיר את קובץ הסרטון שרוצים להפעיל, להריץ או לנגן. ><video autoplay controls src="videos/birthday.mp4"></video פרק :10שילוב מדיה והאובייקט 289 Canvas מומלץ לשים את קבצי הווידאו בתיקייה המיועדת לכך .כפי ששמנו את קבצי התמונות בתיקייה imagesכך נשים את קבצי הווידאו בתיקייה .videos המאפיין autoplayגורם לסרטון להתחיל אוטומטית .המאפיין controlsמציג את שורת הפקדים של הסרטון ,הכוללים בין השאר את play ,stopועוד .אם לא תכתוב מאפיין זה ,לא יהיה ניתן לעצור את הסרטון. תוכל להגדיר טקסט שיופיע במקום הסרטון ,כאשר הגולש מפעיל דפדפן שאינו תומך בתגית זו .טקסט זה נקרא fallback contentומוגדר בין תגית הפתיחה לבין תגית הסגירה של האובייקט: ><video autoplay controls src="videos/1.mp4">Not Supported</video בתרשים 10.1תוכל לראות את הסרטון מתנגן ואת הפקדים מוצגים למטה .אלה פקדי ברירת המחדל של דפדפן כרום .לכל דפדפן יש פקדי ברירת מחדל בתצוגה שונה. תרשים 10.1 כרגע הגדרת דף אינטרנט שבו הוראת HTMLשמציגה נגן ,שניתן להפעיל בדפדפנים שונים, וביניהם כרום ואינטרנט אקספלורר .אין אחידות בסוג קובץ הווידאו שניתן לצפייה בדפדפנים השונים ,מכיוון שהדפדפנים תומכים בשיטות קידוד שונות עבור הסרטונים. בתרשים 10.2תוכל לראות את החלון של דפדפן פיירפוקס ,שאינו תומך בסוג קובץ .mp4 HTML5 290 11 נושאים מתקדמים API שפת HTML5הינה אחד השמות המדוברים בעולם האינטרנט ,ולא לחינם .אתרי אינטרנט, יישומים ,ממשקי תוכנה ורכיבים אחרים שואפים לתמוך ביכולות של HTML5מתוך הכרה ביתרונות שהשפה מספקת .המהפכה שמתרחשת בעולם מאז שנת 2010לערך מתחילה לתפוס תאוצה גם בישראל .הקרב בין הדפדפנים להוכיח מי הדפדפן הכי טוב קיבל תפנית: אם בעבר ניסו הדפדפנים להמציא יכולות משל עצמם כדי להוכיח את בידולם ,כעת הקרב מתמקד ביכולת תמיכה טובה יותר בתכונות של .HTML5 היכולת לזהות היכן נמצא הגולש בכל רגע נתון ,שמירת נתונים מאתר או מיישום שפועל בדפדפן לשם שימוש עתידי ללא עזרה מרכיבים חיצוניים וגרירת קבצים מהמחשב האישי אל חלון הדפדפן -אלה הם רק חלק מהאפשרויות שמציעה לנו .HTML5נושאים אלה ואחרים נסקור בפרק זה. בפרק זה נבחן את הנושאים הבאים: ) Geolocationמיקום גיאוגרפי( ) Local storageזיכרון מקומי ,פנימי( ) File APIגרירת קבצים מהמחשב האישי לחלון האתר( מה הקשר בין APIלבין ?HTML5 עד ליציאת HTML5לשוק היו מסמכי הגדרות נפרדים עבור HTMLועבור רכיבים חיצוניים או משלימים ,כמו DOMלמשל ,שהזכרנו בפרקים קודמים .אחד השינויים שכלולים בפיתוח של HTML5הוא בכך שכיום אין הפרדה בין אוסף ההגדרות והחוקים של HTML5לבין מודלים של התקשרות עם רכיבים וממשקים ,או במילים אחרות .API ,נוצרו מספר רכיבים מובנים בתוך ההגדרות ,HTML5כדי לייעל את הדפדפן ולמזער את השימוש ברכיבים חיצוניים .במילים אחרות ,כדי לייעל את הדפדפן וכדי ליצור אחידות בין המכשירים )ההתקנים( השונים שהוא משרת ,כמו טלפונים סלולריים ,ניידים ) ,(mobileמחשבי לוח פרק :11נושאים מתקדמים 325 API ) (tabletsאו מחשבים .למעשה ,נוצרה שפת התקשרות אחידה בקוד עם פונקציות פנימיות שאינן מחייבות התקנות של תוספים ) (pluginsחיצוניים ,כמו למשל התוכנה פלאש. מיקום גיאוגרפי Geolocation - בעבר ,כאשר אתר האינטרנט היה צריך לדעת היכן הגולש נמצא ,הגולש היה צריך להזין את המיקום שלו .כלומר ,להזין ידנית את שם המדינה והעיר .כעת יש אפשרות בHTML5- לזהות באופן אוטומטי את מיקום הגולש )לאחר אישורו המוקדם( באופן פשוט וקל ,הן עבור הגולש והן עבור המפתח. הכלי הזה ידוע בשמו המקצועי ) Geoloationמיקום גיאוגרפי( והוא כיום חלק מהמפרט של .HTML5לפני שנרחיב את הדיון במושגים הטכניים ,ננסה להבין מדוע כדאי לשלב אפשרות של זיהוי מקום באתר או ביישום אינטרנט. כיצד יכול זיהוי מקום לתרום לאתר או ליישום ?HTML5 גולשים יכולים לשתף במיקום שלהם את חבריהם ברשתות חברתיות. פרסומות שמופיעות באתר יכולות להיות מבוססות מקום ולהיות רלוונטיות עבור הגולש ,כמו למשל פרסומות של בתי קולנוע בת"א כאשר הגולש נמצא בת"א ולא בחיפה. הצגה אוטומטית של מזג האוויר על כל הפרמטרים הכרוכים בו ,בהתאמה למקום שהגולש נמצא בו. אתרי קטלוגים של חנויות פיזיות אשר מוצעים לגולש על פי המקום שהוא נמצא בו. אתרי אינטרנט או יישומי רשת של חברות תחבורה ,כמו אוטובוסים ,רכבות או מוניות .יש גם יכולת להציע תחנות קרובות או למשל ,מוניות פנויות. אתרי "דרושים" יכולים להציג אוטומטית מודעות דרושים על פי מיקום. אלו הן רק חלק מהאפשרויות כשהאתר או היישום תומכים בזיהוי מיקום של הגולש. למעשה ,לכל פרסום או מידע תלוי-מקום פיזי יש משמעות וצורך לדעת את המיקום של הגולש .ללא ספק ,אפשר להעלות רעיונות נוספים או לשלב דוגמאות שנובעות מגלישה באתרי האינטרנט הרבים שבהם יש שימוש הולך וגובר בכלי זה. כיצד פועלת התכונה ?Geolocation הבה נבחן מהי התכונה Geolocationוכיצד היא פועלת .אחד הרכיבים החשובים והמשמעותיים ביותר הוא ,Geolocation APIשאינו רכיב מובנה ,אלא רכיב מקושר .כיצד הוא פועל? הרכיב Geolocationהוא אוסף של חוקים והגדרות שמאפשרים לדפדפן לדעת HTML5 326 היכן נמצא הגולש מבחינת קווי רוחב ואורך גיאוגרפיים ,בהתאם ליכולות של הדפדפן לספק מידע זה ובהתאם להסכמת הגולש לחשוף נתונים אלה. חלק מהמידע מבוסס על רכיב GPSמובנה ,בעיקר בטלפון הנייד ,חלק מהמידע מבוסס על כתובת IPשל המחשב ,על נתונים שנשלחו מהגולש ,נתונים שמוגדרים לרשת שבה נעשית הגלישה ) ,(SSIDועוד. השימוש ב Geolocation-מיועד בעיקר למכשירים הניידים ,והדבר מאוד הגיוני .יש לקחת בחשבון שבנייד השימוש ב GPS-יכול לצרוך באופן מוגבר את הסוללה .בנוסף ,אסור לפגוע בפרטיות הגולש ,ולכן יש לקחת נתונים אלה בחשבון וצריך לקבל את אישורו לביצוע מעקב המיקום ) (GPSולספק לו מידע מתאים. בתרשים 11.1תוכל לראות את נוהל בקשת הרשות על דפדפנים פיירפוקס וכרום: תרשים 11.1 האתר שמוצג כדוגמה בתרשים 11.1מאפשר לחפש אופניים ציבוריים להשכרה .כדי למצוא אופניים ,היישום צריך לדעת תחילה היכן הגולש נמצא ולכוון אותו למקום הקרוב ביותר. פרק :11נושאים מתקדמים 327 API
© Copyright 2024