W siatce CSS właściwości grid-template-columns i grid-template-rows umożliwiają definiowanie nazw linii i rozmiarów ścieżek odpowiednio kolumn i wierszy siatki. Obsługa interpolacji tych właściwości umożliwia płynne przechodzenie układów siatki między stanami, zamiast przyciągania w połowie animacji lub przejścia.
Browser Support
Interpolacja wartości w kodzie CSS
W CSS możesz płynnie przechodzić między wartościami właściwości, używając właściwości transition.
#target {
opacity: 0.5;
transition: opacity ease-in-out 0.25s;
}
#target:hover {
opacity: 1;
}
Mechanizm renderowania automatycznie wykryje typ wartości właściwości docelowej i użyje tych informacji, aby płynnie przejść do nowej wartości.
Na przykład:
- Przenosisz
opacityz0do1? To jest interpolacja liczbowa. - Przenosisz
background-colorzwhitedoblack? Zanikanie między kolorem źródłowym a docelowym. - Przechodzisz na
width? Interpoluj liczbowo, w razie potrzeby przeliczając jednostki.
To samo dotyczy animacji CSS, w których przeglądarka interpoluje wartości między klatkami kluczowymi.
Animuj grid-template-columns i grid-template-rows
Układy siatki mogą też płynnie przechodzić między stanami, zamiast przeskakiwać w połowie animacji lub przejścia.
W poniższej prezentacji siatka pokazuje kilka awatarów. Aby zaoszczędzić miejsce, awatary są ułożone jeden na drugim, co ogranicza szerokość każdej kolumny za pomocą grid-template-columns. Po najechaniu kursorem każda kolumna ma więcej miejsca.
.avatars {
display: grid;
gap: 0.35em;
grid-auto-flow: column;
grid-template-columns: repeat(4, 2em);
transition: all ease-in-out 0.25s;
}
.avatars:hover {
grid-template-columns: repeat(4, 4em);
}
Dzięki właściwości transition siatka płynnie interpoluje wartości.
Efekt dotyczy też animacji, które zmieniają wartości grid-template-columns lub grid-template-rows.