קובצי CSS יציבים ועוצמתיים שמתאימים לשימוש מיידי.
לדעתי, כל מפתח חזיתי צריך לדעת איך להשתמש בשאילתות של רכיבי container, ליצור חוויית הצמדה לגלילה, להימנע מposition: absolute באמצעות grid, ליצור במהירות עיגול, להשתמש בשכבות מדורגות ולהגיע ליותר משתמשים עם פחות מאמץ באמצעות מאפיינים לוגיים. לפניכם סקירה מהירה של כל אחת מהציפיות האלה.
1. שאילתת מאגר
התכונה הכי מבוקשת ב-CSS במשך 10 שנים רצופות, יציבה עכשיו בדפדפנים וזמינה לשימוש בשאילתות רוחב בשנת 2023.
.panel {
container: layers-panel / inline-size;
}
.card {
padding: 1rem;
}
@container layers-panel (min-width: 20rem) {
.card {
padding: 2rem;
}
}
2. גלילה עם נקודות עצירה
חוויית גלילה מתוזמנת היטב תייחד את חוויית המשתמש שלכם, והצמדת הגלילה היא הדרך המושלמת להתאים את חוויית המשתמש של הגלילה במערכת תוך מתן נקודות עצירה משמעותיות.
.snaps {
overflow-x: scroll;
scroll-snap-type: x mandatory;
overscroll-behavior-x: contain;
}
.snap-target {
scroll-snap-align: center;
}
.snap-force-stop {
scroll-snap-stop: always;
}
באוסף הענק והמעורר השראה הזה ב-Codepen יש כ-25 הדגמות שמאפשרות ללמוד עוד על הפוטנציאל של תכונת ה-CSS הזו.
scroll-snap-typescroll-snap-alignscroll-snap-stopoverscroll-behavior3. ערימת תמונות ברשת
עדיף להימנע משימוש ב-position absolute עם רשת CSS של תא יחיד. אחרי שהתאים נערמים אחד על השני, צריך להשתמש במאפייני justify ו-align כדי למקם אותם.
.pile {
display: grid;
place-content: center;
}
.pile > * {
grid-area: 1/1;
}
grid4. מעגל מהיר
יש הרבה דרכים ליצור עיגולים ב-CSS, אבל זו ללא ספק הדרך המינימלית ביותר.
.circle { inline-size: 25ch; aspect-ratio: 1; border-radius: 50%; }
aspect-ratio5. שליטה בווריאציות באמצעות @layer
שכבות מדורגות יכולות לעזור להוסיף וריאציות שמתגלות או נוצרות בשלב מאוחר יותר, למקום הנכון בשרשור עם קבוצת הווריאציות המקורית.
/* file buttons.css */ @layer components.buttons { .btn.primary { … } }
לאחר מכן, בקובץ אחר לגמרי, שנטען בזמן אקראי אחר, מוסיפים וריאציה חדשה לשכבת הלחצן כאילו היא הייתה שם עם כל השאר כל הזמן הזה.
/* file video-player.css */ @layer components.buttons { .btn.player-icon { … } }
@layer6. משננים פחות ומגיעים ליותר תוצאות עם מאפיינים לוגיים
צריך לזכור את מודל התיבה החדש הזה, ולא תצטרכו יותר לדאוג לגבי שינוי של שוליים פנימיים או שוליים חיצוניים בצד ימין ובצד שמאל עבור מצבי כתיבה וכיווני מסמך בינלאומיים.
כדאי לשנות את הסגנונות ממאפיינים פיזיים למאפיינים לוגיים כמו padding-inline, margin-inline, inset-inline, ואז הדפדפן יבצע את ההתאמות.
button { padding-inline: 2ch; padding-block: 1ch; } article > p { text-align: start; margin-block: 2ch; } .something::before { inset-inline: auto 0; }