ABA


"לאור הבקשות הרבות איך לכתוב HTML בדרך הנכונה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11142 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11142
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   20:28   17.01.13   
אל הפורום  
  לאור הבקשות הרבות איך לכתוב HTML בדרך הנכונה  
 
   פרולוג קטן

שום מתכנת לא באמת זוכר מתי הוא התחיל לכתוב html תקני, אני לפחות זוכר את זה בתור סוג של קסם, אני זוכר שגיליתי מה float עושה, ואחר כך כשרציתי ששום אלמנט לא יפריע לי בדרך אז חיפשתי את clear לאט לאט נכנסתי פחות או יותר לקונספט מאחורי זה, זה עבד יופי...


הבהרה קטנה לפני שנתחיל, טבלאות הן חלק מהDTD של HTML5, השימוש בהן פשוט צריך להיות מתון ובמקומות הנכונים.

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

כל אלמנט בHTML יש לו תצוגה משלו, זה אומר שהדפדפן לפי זה יודע איזה פרמטרים מותר לכם לתת לו ואיזה אסור, ואיך הוא אמור לרנדר אותו בסופו של דבר, אתם מכירים את זה בCSS כ-display.

איזה סוגי תצוגה יש לנו? יש המון, אני אכסה את הmain types שהם:

1.block - האלמנט שלנו זקוק לפרמטרים של רוחב וגובה, ומתנהג כבלוק לכל דבר, כל מה שיבוא אחריו ירד שורה מתחת, כי אם לא הגדרנו floating לאותו אלמנט אנחנו לא יכולים להציב לידו אלמנטים אחרים.

2.inline - אלמנטים שמוגדרים כinline אין להם רוחב וגובה, הם פשוט יעמדו בשורה זה לצד זה עד שיגיע אלמנט מסוג block וירד שורה.

3.inline-block - נועד למצב שאנחנו רוצים לשלב בין 2 המצבים הראשונים, זאת אומרת להציב את האלמנטים באותה שורה, אבל גם לתת להם רוחב וגובה.

כמובן שגם יש לנו מצבי תצוגה של טבלאות וכדומה, אבל כשמשתמשים באלמנטים שהם לא טבלה אני לא רואה סיבה טובה להשתמש בזה, מבחינת performance זה בטח לא עושה לאף אחד טוב לתת לדפדפן לרנדר div כטבלה.

---------------------- אני עוצר כאן שניה ----------------------

מתי נכון להשתמש בטבלאות?

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

----------------------- אני ממשיך -------------------------------

Floating Elements

זה מושג קצת בעייתי "אלמנטים צפים", הוא מסבך נורא את הראש שלנו בלהבין מתי אנחנו צריכים להשתמש בו, אז אני אתן לכם 2 אופציות.

ב-CSS קיים Property שנקרא float שהערכים שלו הם נורא פשוטים:

1.right - אנחנו רוצים שהאלמנט יעוף ימינה
2.left - אנחנו רוצים שהאלמנט יעוף ______

מה זה אומר יעוף? זה אומר שהאלמנט שבא אחריו פשוט יעמוד לידו בדרך כלל כשעובדים עם RTL אז לרוב אתם תראו שם המון float: right אלא אם כן הוא משלב גם תוכן בLTR אז אתם תראו גם left פה ושם.

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

אבל אם אנחנו רוצים להמנע מלחשוב על RTL/LTR בעתיד, עדיף שנשתמש בinline-block שעושה בדיוק את מה שfloat עושה רק ברגע שנשנה את הdirection של האתר לא יהיה את הצורך לשנות floatים אולי למעט תיקונים קטנים...


אז מה למדנו עד עכשיו?

1.כל אלמנט יכול להיות מוצג כקופסא עם גובה ורוחב, יכול להיות מוצג כinline element למה שבא אחריו, יכול להיות מוצג כשניהם.

2.טבלאות זה אחלה רעיון לדוחות שאנחנו רוצים להוציא ברקע, לניהול של המון המון נתונים שאין יותר מדי מחשבה לאיך הם ייראו.

3.יש 2 דרכים עיקריות להציב אלמנטים אחד ליד השני:
א.להשתמש בfloating elements
ב.להשתמש בinline-block


עכשיו בואו נדבר קצת על אלמנטים בסיסיים בHTML ומה מצב התצוגה שלהם:

1.div - הוא אלמנט שבדרך כלל תשתמשו בו כדי לייצג בלוק של תוכן באתר שלכם, מצב התצוגה שלו הוא block element.
2.span - הוא אלמנט שמייצג טקסט בדרך כלל, סוג התצוגה שלו הוא inline-element אבל אל תהיו מקובעים על מה שאני אומר פה, להגדיל ראש זה הכי כיף שיש ואם יש לכם רעיונות אחרים תזרמו.
3.p - היא פסקה, היא כמובן inline-element.
4.h1,h2,h3,h4,h5,h6,h7 - כותרות כולן הן block elements


נוסיף קצת תגיות חדשות של HTML5

header - אמור לייצג את כל החלק העליון של האתר שלכם
footer - אמור לייצג את כל החלק התחתון של האתר שלכם
section - אמור לעטוף תת תוכן באתר, אם יש לכם שאלה ותת שאלה, אז בשביל התת שאלה אתם תייצרו section לא עולה לי דוגמא טובה יותר, כמובן שsection הוא לא נועד להיות wrapper שמקבל CSS ועוטף את כל האתר שלכם, הוא נועד לייצר הפרדה בתוכן, בשביל wrappers יש divים.
video - מייצג וידאו
audio - מייצג סאונד
nav - הוא מעטפת לnavigation links באתר שלכם, תחתיו סביר להניח שתכניס קישורים.

מי שרוצה לקרוא עוד מוזמן פה

http://www.w3schools.com/html/html5_new_elements.asp

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


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תודה Zvikadori 17.01.13 21:51 1
  תודה רבה כמה עוד 19.01.13 13:09 2
  תודה רבה! אעבור על זה הלילה באדיקות :) sza  20.01.13 00:04 3
     עברתי על זה ולצערי לא הצלחתי להבין לעומק sza  20.01.13 04:37 4
         זה לא קסם זה בטוח, יוחאי 20.01.13 20:51 7
             שיטה הכי טובה. גם אני הייתי נוהג לעשות זאת. dvir8 23.01.13 17:07 10
  תודה, יש פה כמה דברים שאני לא מסכים איתם כמו טבלאות, sharkk 20.01.13 18:58 5
     כתבתי בדיוק מה המטרה של טבלאות היום, יוחאי 20.01.13 20:48 6
         ועוד מאמר שאני נורא אוהב :) יוחאי 20.01.13 20:54 8
         הבעיה עם טבלאות היא בעיקר בתכנים גדולים בתוך טבלה. מכיוון ש-HTML היא כמובן Ice Cold  23.01.13 16:05 9
  תותח אתה! MrSus 25.01.13 04:53 11
     יש לי כבר 3 עמודים של אקוקא לקרוא במועדפים כמה עוד 26.01.13 17:12 12
         איזה עוד? sza  26.01.13 23:51 14
  יפה, תודה רבה asco88  26.01.13 22:58 13

       
Zvikadori
חבר מתאריך 3.8.02
5369 הודעות
   21:51   17.01.13   
אל הפורום  
  1. תודה  
בתגובה להודעה מספר 0
 
   בדיוק אני מחפש דרך לכתוב בצורה נכונה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק
   13:09   19.01.13   
אל הפורום  
  2. תודה רבה  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   00:04   20.01.13   
אל הפורום  
  3. תודה רבה! אעבור על זה הלילה באדיקות :)  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   04:37   20.01.13   
אל הפורום  
  4. עברתי על זה ולצערי לא הצלחתי להבין לעומק  
בתגובה להודעה מספר 3
 

אנסה לחפש על זה עוד, לפחות עכשיו אני יודע יותר ספציפית מה לחפש


--
צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   20:51   20.01.13   
אל הפורום  
  7. זה לא קסם זה בטוח,  
בתגובה להודעה מספר 4
 
   קח פרוייקט של כמה שעות בזמנך החופשי, ותייצר template שמשתמש בכל היכולות שהסברתי כאן + בתגובה האחרונה הסברתי קצת על position בcss אז זה גם אולי יעזור.

אני הייתי אוהב להסתכל על אתרים כמו נענע וWALLA הקוד שלהם לא היה כזה טוב פעם לפחות הmarkup היום אני יודע שגם הbackend שלהם די גרוע.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   17:07   23.01.13   
אל הפורום  
  10. שיטה הכי טובה. גם אני הייתי נוהג לעשות זאת.  
בתגובה להודעה מספר 7
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sharkk
חבר מתאריך 2.9.02
1306 הודעות
   18:58   20.01.13   
אל הפורום  
  5. תודה, יש פה כמה דברים שאני לא מסכים איתם כמו טבלאות,  
בתגובה להודעה מספר 0
 
   לדוגמא grid ב- DOJO רשומים בטבלאות ואפשר לעשות איתם דברים מאוד מעניינים.

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

אגב לא התייחסת ל- position שזה ללא ספק property אחד החשובים ב- CSS.

תודה על ההסבר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   20:48   20.01.13   
אל הפורום  
  6. כתבתי בדיוק מה המטרה של טבלאות היום,  
בתגובה להודעה מספר 5
 
   גם מבחינת performance זה פשוט לא נכון להשתמש בהן, עזוב את היכולות שלהן שאפשר להשיג אותן בדרכים הרבה יותר קצרות ונחמדות באמצעות CSS וכתיבה נכונה של הmarkup שלך.

לגבי position צודק ברח לי מהראש

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

לגבי Position

אפשר למקם את האלמנט בשלוש מצבים:

static - הברירת מחדל של כל אלמנט הוא static וממוקם ב(0,0) של האבא שלו.
relative - יעבוד בדיוק כמו static רק שכאן אנחנו יכולים לשחק עם הx והy של האלמנט ולמקם אותו מהנקודות שהוא נמצא בהן והלאה.
absolute - מיקום אבסולוטי ביחס לאבא של אותו אלמנט.

יש המון משחקים של absolute בתוך relative או relative בתוך absolute וכן הלאה, מציע לכם לשחק עם זה ולהבין את הקונספט מתוך ניסיון וטעייה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   20:54   20.01.13   
אל הפורום  
  8. ועוד מאמר שאני נורא אוהב :)  
בתגובה להודעה מספר 6
 
   http://coding.smashingmagazine.com/2009/04/08/from-table-hell-to-div-hell/

כמובן שהגיהנום של divים מבחינתו זה הre-use שלהם בתוך template כשאין בהם באמת צורך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   16:05   23.01.13   
אל הפורום  
  9. הבעיה עם טבלאות היא בעיקר בתכנים גדולים בתוך טבלה. מכיוון ש-HTML היא כמובן  
בתגובה להודעה מספר 6
 
MARKUP LANGUAGE, ז"א שבמהות שלה ביא תואמת XML (במצב תקני) האלמנט לא יוצג על המסך עד שלא התקבל תג סגירה של TABLE מהשרת. בתכנים גודלים זה יכול להיות בעייתי כי תקבל דף לבן ואז הכל במכה. בנייה עם DIV לכל שורה לצורך העניין תשפוך את המידע החוצה בחלקים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   04:53   25.01.13   
אל הפורום  
  11. תותח אתה!  
בתגובה להודעה מספר 0
 
   שמתי לי במועדפים לקריאה בעתיד כשיהיה לי זמן לחזור להתעסק בזה זה ב- TODO LIST שלי... כל הכבוד ותודה רבה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק
   17:12   26.01.13   
אל הפורום  
  12. יש לי כבר 3 עמודים של אקוקא לקרוא במועדפים  
בתגובה להודעה מספר 11
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   23:51   26.01.13   
אל הפורום  
  14. איזה עוד?  
בתגובה להודעה מספר 12
 


--
צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות
   22:58   26.01.13   
אל הפורום  
  13. יפה, תודה רבה  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net