רשתות מרומזות, דפוסי פריסה ניתנים לחזרה, ומודיעין נתונים Danglers PlatoBlockchain. חיפוש אנכי. איי.

רשתות מרומזות, דפוסי פריסה הניתנים לחזרה, ודגלרים

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

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

הוא מושיט יד ל :has() כדי לכתוב בורר נחמד שמרחרח את הפריט האחרון ברשת המכילה מספר אי זוגי של פריטים:

.items:has(.item:last-of-type:nth-of-type(odd)) .item:first-of-type { }

מפרקים את זה:

  • יש לנו מיכל הורה של .items.
  • אם המיכל :has() an .item ילד שהוא האחרון מסוגו,
  • …וזה .item במקרה זה מופע אי-זוגי,
  • ...ואז בחר את הראשון .item אלמנט מהסוג הזה וסגנון אותו!

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

אם... אז... ל-CSS יש כוחות לוגיקה מותנים! אנחנו מדברים רק על תמיכה ב-Safari TP ו-Edge/Chrome Canary כרגע, אבל זה די מדהים.

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

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

בול זמן:

עוד מ טריקים של CSS