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

"אני שונא CSS! שום דבר לא עובד!"
"אמת בפרסום? כן בטח... אמרו לי שהכל נפלא עם CSS, אמרו לי שזה עובד כמו קסם! איזה קסם ואיזה בטיח, אני חוזר לטבלאות!"
"זה רשמי, נמאס לי מ-CSS והתמיכה הלקויה שלו בדפדפנים המובילים אני ממש קרוב לחזור לעיצוב טבלאי לחלוטין ולשכוח מכל עניין ה-CSS הזה אחת ולתמיד!"
במהלך עבודתי בבניית אתרים נתקלתי לא מעט פעמים באמירות מסוג זה. במהלך הקורסים שהעברתי שמעתי זאת לא פעם ולא פעמיים ומסופקני אם לא אשמע זאת שוב לפחות עוד כמה פעמים.
האם זה נשמע לכם מוכר? האם אתם מזדהים עם האמור לעיל?
נחשו מה? אתם צודקים! הטעו אתכם, סימאו את עיניכם, דרשו פיצויים!
CSS היא לא טכנולוגיה שתהפוך את האתרים שלכם לנפלאים ונגישים כבמטה קסם או שיקוי פלא.
CSS היא שפה שתהפוך את האתרים שלכם לנפלאים ונגישים אחרי שתלמדו איך להשתמש בה נכון.
אז היכן ההטעיה? הרי למדנו איך לכתוב CSS ולמדנו מה כל מאפיין עושה, אז למה אנחנו נתקלים בכל כך הרבה בעיות?
ההטעיה היא בזה שאמרו לכם שזה קל בלי שנתנו לכם את הכלים להבנה הנכונה של השפה.
בלי הבנה של החוקים והמודלים זה לא קל - זה אפילו מאוד קשה.
"המקבילה הרעיונית כאן היא למישהו שמחליט ללמוד אנגלית כי אמרו לו שזו אחלה שפה ושכדי להתקדם בעולם הוא צריך ללמוד אותה. אז הוא מתחיל ללמוד כמה מילים בסיסיות ויוצא אל העולם עם הבשורות החדשות: "me, you , like fish? we, you know, but if, dog"
בקיצור, מפח נפש - כולם צוחקים עליו.
אני בטוח שבשלב הזה הוא רוצה לקבור את עצמו בחור הכי עמוק באדמה ולא להתקרב יותר בחיים לשפה הזו."
כפי שאתם רואים, אני חוזר כאן לא מעט על מילה מאוד חשובה, ובמקרה הזה המילה אינה CSS, אלא שפה.
מהי שפה?
שפה היא צורה של תקשורת.
מישהו חכם פעם אמר לי - "תקשורת היא היכולת להשיג תוצאות."
שאלה:
איך ניתן להשיג תוצאות בלי לדעת לתקשר?
תשובה:
עם הרבה מזל.
נאמר פעם שאם ניתן ל-1000 קופים 1000 מכונות כתיבה ו-1000 שנה, ישנו סיכוי שהם יכתבו את היצירות המלאות של שייקספיר באמצעות צירוף מקרים והמון מזל.
אני אומר שאם נלמד אותם אנגלית ישנו סיכוי גבוה שנזדקק להרבה פחות קופים, מכונות כתיבה ושנים כדי להשיג את אותה התוצאה.
אז מה הקשר ל-CSS?
מי מביניכם שכבר נתקל בתחביר של CSS בטח חשב לעצמו "אה! נהדר! כל כך פשוט, כל כך נוח, עכשיו אפשר לעשות הכל!".
התחביר של CSS הוא נהדר, ללא ספק. הוא גם מאוד נוח. לוגי, מסודר והגיוני. מה יכול להיות יותר הגיוני מלכתוב את הדברים הבאים?
p {color: blue;}
"היי אתה! כן, אתה... האלמנט p, אני מדבר אליך. אתה רואה את התכונה שלך, הצבע? שנה אותה לכחול!"
שאלה: האם זה כל מה שנדרש מאיתנו לדעת בכדי ליצור אתרים באמצעות CSS?
תשובה: לא. כמו שאמרתי מקודם - CSS היא שפה, לא טכנולוגיה.
כדי לשלוט בשפה צריך ללמוד אוצר מילים, חוקי יחסיות בין המילים, חוקי זמנים, הטיות, ביטויים, אנקדוטות, יוצאים מן הכלל ועוד...
לשם המחשה נמשיל את שפת ה-CSS לשפה שבה היא כתובה - אנגלית.
אם באמתחתך מילים באנגלית, האם זה אומר שאתה יודע אנגלית? מסופקני.
כדי להבין שפה עליך גם לדעת איך המילים מתייחסות זו לזו.
הבה ננתח את המשפט הבא באנגלית:
The paragraph's color is blue.
נושא - the paragraph
נשוא - color
מושא - blue
עכשיו ננתח את המשפט הבא ב- CSS:
p {color: blue;}
נושא - p
נשוא - color
מושא - blue
שמים לב להקבלה?
ומה אם נכתוב את המשפט הבא באנגלית?
Any input element within a paragraph should be colored purple
איך זה ייראה ב-CSS?
P input {color: purple;}
אז מה הנקודה?
כפי שרואות עיניכם, יש הרבה מאוד מן הדמיון בין CSS לאנגלית, לפחות בהקשר הלוגי. אמנם התחביר שונה, אך התרגום הינו אותו התרגום.
ככל שלומדים יותר מכל נושא, כך מתחזקת השליטה בשפה, וככל שמתחזקת השליטה - מתחזקת התקשורת.
שפה נועדה לתקשר בין מספר ישויות. במקרה שלנו - CSS - בין המתכנת לדפדפן.
ככל שנשלוט בשפה בצורה טובה יותר, כך תגדל התקשורת בינינו לבין הדפדפן, וככל שגדלה התקשורת - גדלות התוצאות.
אז בואו ונתחיל להשיג תוצאות.
(גירסה נוכחית למאמר - 18.08.06)