Smart Websites
5 טעויות ביישור כרטיסים ב-RTL (וכך CSS Subgrid פותר אותן)
למה הכרטיסים באתר שלכם עדיין נשברים בעברית, למה Flexbox ו-JavaScript חורקים, ואיך CSS Subgrid פותר את יישור הכותרות והכפתורים בשורה אחת של קוד.
TL;DR
יישור כרטיסים בעברית תמיד היה סיוט. כותרות באורכים שונים, תיאורים משתנים וכפתורים שבורחים למטה. CSS Subgrid פותר את זה מהשורש בלי JavaScript ובלי טריקים.
ראיתי שוב ושוב את אותן 5 טעויות בצוותי פיתוח ועיצוב. כולם מנסים ליישר גובה של כרטיסי שירות או מוצר, וכולם מסתבכים. הנטייה המיידית היא להעמיס קלאסים של Flexbox, להגדיר גבהים קשיחים, או גרוע מכל — לכתוב סקריפט JavaScript שמודד גובה של אלמנטים בזמן רנדור. ב-2026, אין לזה שום הצדקה.
טעות 1: ניסיון ליישר אלמנטים פנימיים בעזרת Flexbox
פלקסבוקס הוא כלי מצוין. הוא מיועד לנהל ציר אחד בלבד.
כשאתם שמים גריד של כרטיסים, כל כרטיס הוא עולם נפרד מבחינת Flexbox. הכרטיס לא יודע מה הגובה של הכותרת בכרטיס השכן.
התוצאה? כרטיס אחד מכיל כותרת בשתי שורות בעברית. הכרטיס לידו מכיל כותרת בשורה אחת. הכפתורים בתחתית מפסיקים להיות בקו ישר אחד.
- הגדרה · CSS Subgrid
מאפיין ב-CSS Grid שמאפשר לילדים של גריד לרשת את קווי הרשת (Grid Tracks) של ההורה שלהם, וכך ליישר אלמנטים פנימיים בין כרטיסים נפרדים.
התיקון פשוט. מוגדר גריד מרכזי, והכרטיסים הפנימיים משתפים את אותן השורות בדיוק בעזרת grid-template-rows: subgrid.
טעות 2: חישוב גובה כרטיסים באמצעות JavaScript
אני נתקל בזה עדיין באתרי וורדפרס וריאקט. המפתח רוצה שהכותרות יהיו באותו גובה, אז הוא כותב סקריפט שנרץ אחרי טעינת העמוד, מודד את הכותרת הגבוהה ביותר, וקובע את הגובה לכולן.
זה פתרון גרוע.
קוד JS כזה גורם לקפיצות במסך (CLS), מייצר עיכוב ברנדור ומכביד על המכשיר.
0ms
זמן עיבוד JavaScript הנדרש ליישור כרטיסים בעזרת CSS Subgrid
מחיקת הסקריפט היא הצעד הראשון. CSS נייטיב עושה את זה מהר יותר וללא השפעה על הביצועים.
טעות 3: קביעת min-height קבוע לכותרות ותיאורים
קביעת min-height: 80px לכותרת נראית כמו פתרון מהיר. עד שהמסך משתנה.
כשגודל המסך יורד, הכותרת בעברית תופסת שלוש שורות. הטקסט גולש אל מחוץ לקופסה, והעיצוב נשבר לחלוטין.
הגדרת גובה קבוע בפיקסלים לטקסט דינמי היא בעיה ידועה מראש בכל עיצוב רספונסיבי.
התיקון: מאפשרים לתבנית ה-Subgrid להגדיר את שורת הכותרת כ-auto. הדפדפן יחשב את הכותרת הגבוהה ביותר באותה שורה בגריד, וישווה את גובה כל הכותרות באותה שורה באופן אוטומטי.
טעות 4: התעלמות מהשפעת כיוון RTL על זיהוי חוסר סימטריה
בעברית, העין סורקת את המסך מימין למעלה לכיוון שמאל למטה. כשהכפתורים בתחתית הכרטיסים אינם מיושרים, חוסר הסימטריה קופץ מיד לעין.
ב-RTL, חוסר יישור בקו הכפתורים התחתון יוצר מראה לא מוקפד. העין נתקעת ברווחים הריקניים שנוצרים מתחת לתיאור הקצר.
כאשר משתמשים ב-Subgrid, מגדירים את ה-Layout של הכרטיס כך:
.card-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.card {
display: grid;
grid-row: span 4;
grid-template-rows: subgrid;
}
האייקון, הכותרת, התיאור והכפתור מסתנכרנים באופן מלא לרוחב כל השורה.
טעות 5: סרבול ה-HTML עם עטיפות (Wrappers) מיותרות
כדי לגרום ל-Flexbox לעבוד בצורה חצי-סבירה, מפתחים עוטפים כל קבוצת אלמנטים ב-div פנימי נוסף. עטיפה לכותרת, עטיפה לתוכן, עטיפה לכפתור.
מבנה הקוד הופך לעמוס ומסורבל.
מבנה HTML נקי נראה כך:
<article class="card">
<img src="/icon.svg" alt="" />
<h3>בניית אתרים ב-2026</h3>
<p>תיאור קצר של השירות בעברית בגובה משתנה.</p>
<a href="/link">קרא עוד</a>
</article>
ללא עטיפות מיותרות. ה-Subgrid מטפל ביישור ישירות מול רשת ההורה.
סיכום: המלצה אחת מתועדפת
מבחינתי, אין יותר סיבה לכתוב מעקפים או סקריפטים ליישור כרטיסים.
פתחו את קובץ ה-CSS של המערכת שלכם, חפשו את רכיבי הכרטיסים, והחליפו את מנוע היישור הפנימי ל-grid-template-rows: subgrid.
💡
בניית אתרים ב-2026 דורשת קוד נקי. CSS Subgrid מעניק יישור פיקסל-פרפקט ב-RTL ללא שורת JS אחת.
שאלות נפוצות
כל מה שעוד רצית לדעת
מה זה בעצם CSS Subgrid ואיך הוא שונה מ-Grid רגיל?
האם תמיכת הדפדפנים ב-CSS Subgrid מספיק טובה ב-2026?
איך Subgrid מתמודד עם עברית וטקסטים באורכים משתנים ב-RTL?
כתב
אדיר בן יעקב · Adir Ben Yaakov
מקים JustBetterSite, סוכנות בניית אתרים ושיווק דיגיטלי בתל אביב. מתמחה ב-GEO (Generative Engine Optimization) — בנייה של אתרים שמופיעים בתשובות של ChatGPT, Claude, Perplexity ו-Gemini, לא רק בגוגל.
עוד עליי →להמשך הקריאה
מאמרים קשורים
Smart Websites
עיצוב Sticky Headers ללא JavaScript: המדריך ל-CSS Scroll-State Queries
איך מעצבים אלמנט דביק (Sticky) ברגע שהוא נתקע למעלה, בלי אירועי scroll ב-JS ובלי להקריב ביצועים? היכרות מעשית עם CSS Scroll-State Queries.
המשךSmart Websites
5 טעויות CSS שעולות לכם בשעות פיתוח (ואיך Cascade Layers פותר את זה)
מדריך מעשי לשימוש ב-CSS Cascade Layers (@layer) ב-2026. איך לנצח את מלחמת הספציפיות, לדרוס ספריות חיצוניות בנקיון ולשמור על קוד תחזוקתי.
המשךSmart Websites
5 טעויות קריטיות בחיבור שרת MCP לאתר העסקי ב-2026
סוכני AI כבר לא מגרדים את האתר שלכם — הם מדברים איתו ישירות. למדו מאיזה 5 טעויות בהטמעת פרוטוקול MCP כדאי להימנע כדי לאפשר לסוכנים לקבוע תורים ולבצע רכישות.
המשך