גישור על הפער

אנחנו מקלים על פיתוח לאינטרנט.

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

Flexbox gap

לדוגמה, המאפיין gap מאפשר ליצור רווחים בין פריטים ב-grid או ב-flex, או בין עמודות בקונטיינר multicol. המאפיין column-gap קיים ב-multicol כבר הרבה זמן, אבל הוא הופיע לראשונה בפריסת grid בתור grid-gap, יחד עם grid-column-gap ו-grid-row-gap.

מיד אחרי שפריסת הרשת הגיעה לדפדפנים, שם המאפיין שונה ל-gap, יחד עם row-gap ו-column-gap. לאחר מכן, הוגדר שהיא תפעל גם בפריסת Flex. השינוי בשם נועד למנוע מצב שבו יש כמה נכסים שמבצעים את אותה פעולה.

.box {
  display: flex;
  gap: 1em;
}

המאפיין נשלח ב-Firefox עבור פריסות גמישות באוקטובר 2018. הוא לא הופיע ב-Chrome עד יולי 2020, ואחר כך ב-Safari באפריל 2021. כלומר, היה פער של שנתיים וחצי לפני שיכולנו להשתמש ב-gap בצורה בטוחה. בפועל, רוב המפתחים נאלצו להמתין הרבה יותר זמן, כי הם נדרשו לתמוך בגרסאות דפדפן ישנות יותר מהגרסה האחרונה. התמיכה ב-gap בפריסת flex הייתה בעייתית יותר בגלל שלא יכולנו להשתמש בשאילתות של תכונות כדי לזהות תמיכה במרווחים בפריסת flex. מכיוון שהמאפיין gap נתמך בפריסה, הפונקציה @supports (gap:1em) תחזיר את הערך True.

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

למה יש פערים בתמיכה?

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

רוב התכונות יאבטחו בדפדפן אחד. לדוגמה, המפרט של פריסת הרשת נוצר לראשונה על ידי מיקרוסופט והוטמע בטופס ראשוני ב-Internet Explorer 10. מהנדס ב-Mozilla השקיע מאמצים רבים כדי להבין איך צריך להתנהג subgrid, ולכן התכונה הזו הופיעה קודם ב-Firefox. אנחנו רואים ש-Safari מוביל בכמה פונקציות חדשות ומלהיבות של צבעים.

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

עם זאת, כשמיישמים תכונה, צריך לתת לה עדיפות לצד כל התכונות האפשריות האחרות בדפדפן. לפעמים יש עיכובים בגלל עבודות אחרות שצריך לבצע כדי לשפר את הדפדפן. דוגמה מצוינת לכך היא העבודה על RenderingNG ב-Chromium. הפער הארוך בין ההשקה של subgrid ב-Firefox לבין ההשקה ב-Chromium נובע מהצורך להטמיע מחדש את פריסת ה-grid במנוע הרינדור החדש.

הבעיות

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

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

יכולת פעולה הדדית

דפדפנים כבר פועלים יחד כדי לפתור את בעיית יכולת הפעולה ההדדית. בשנה שעברה, Compat 2021 עזר לצמצם את הפער בתמיכה במספר תכונות, כולל מאפיין המרווח בפריסת flex. השנה, במסגרת המאמץ Interop 2022, מתמקדים ב-15 תכונות, וכבר חלה התקדמות בחלק מהן.

אפשר לעקוב אחר ההתקדמות בלוח הבקרה של Interop 2022.

העברת הודעות

הבעיה השנייה היא משהו שאשמח לעזור בו כשנדבר על תכונות כאן ב-web.dev וב-developer.chrome.com. אני רוצה שהסטטוס של התכונות יהיה ברור מאוד כשקוראים את התוכן שלנו, ושאנחנו נספק דרכים מעשיות לפתרון בעיות תמיכה.

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

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

אנחנו גם תורמים לתיעוד של האינטרנט הפתוח באמצעות התמיכה שלנו בפרויקט Open Web Docs. כך אנחנו יכולים לוודא שיש לנו תיעוד ברמה גבוהה ב-MDN, וגם נתוני תאימות עדכניים לדפדפנים. לאחר מכן אנחנו משתמשים בנתונים האלה באתר web.dev כדי להציג תמיכה בתכונות. זוהי התמיכה הנוכחית ב-gap בפריסה גמישה.

Browser Support

  • Chrome: 84.
  • Edge: 84.
  • Firefox: 63.
  • Safari: 14.1.

אם אתם רוצים לקבל מידע נוסף על החזון של Chrome לגבי האינטרנט, על הדברים שאנחנו בודקים בניסויים של מקור ושל מפתחים, תוכלו למצוא יותר ויותר תוכן באתר האחות שלנו – developer.chrome.com. יכול להיות שהתוכן שם יהיה ניסיוני, או שכרגע הוא נתמך רק ב-Chrome, אבל נשמח אם תעיינו בו ותשלחו לנו משוב.

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

צילום מאת Cristofer Maximilian.