od Podstaw
9 godz. 11 min · HTML i CSS · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerWeb dev nigdy nie stoi w miejscu - włączając w to CSS. Czołowe przeglądarki różną się implementacją różnych funkcjonalności, a coraz to nowe właściwości wchodzące do specyfikacji są w stanie postawić stylowanie do góry nogami. W tym kursie poznasz przegląd różnych technik i technologii które zmienią Twoje patrzenie na CSSa - zdecydowanie na lepsze! Koniec z tworzeniem hacków w JavaScript aby osiągnąć efekty takie jak wykresy kołowe czy płynne przewijanie. Poznasz też różne właściwości CSS które są w stanie przyśpieszyć Twoją witrynę!
Na pewnym etapie rozwoju jako Front-End developer, bądź wraz z rozwojem naszego produktu - standardowe podejście do CSSa może nie wystarczyć. W tym kursie poznasz 5 ciekawych architektur CSSa, poznasz ich podstawowe koncepty oraz moje opinie na ich temat. Dzięki temu, tworząc swój następny projekt, będziesz w stanie stworzyć architekturę CSSa bazując na sprawdzonych fundamentach.
CSS Grid i CSS Flexbox to właściwości które powinien znać każdy Front-end developer. Jeśli nie chcesz spędzać wielu godzin na poznawanie tych technologii z osobna, w tym kursie znajdziesz podstawowe informacje na temat tych dwóch technologii - w pigułce. Poznasz różnice między nimi oraz dowiesz się, co zmieniło się w nich w ostatnim czasie.
Jeśli borykasz się z problemami wydajnościowymi na swojej stronie internetowej, ten kurs wskaże Ci techniki które pomogą Ci zmniejszyć czas ładowania, jak i ogólną wydajność Twojej witryny - czy to początkowe ładowanie, czy klatkująca animacja.
Czy nie wiesz jak zacząć z preprocesorami? Po co są nam one potrzebne? A może nie wiesz jak wpasowują się w obecne trendy tworzenia stron? Ten kurs odpowie na Twoje pytania! Dodatkowo, dowiesz się jak skonfigurować jeden z najbardziej popularnych preprocesorów CSS, oraz poznasz jego kluczowe funkcje czy składnie.Jako dodatek, dowiesz się jak dzielić Twoje zmienne SCSS wraz z Twoim kodem JavaScript!
Animacje CSSowe są już z nami od lat, ale jak konkretnie się za nie zabrać? Co trzeba zrobić, aby rozpocząć przygodę z animacjami? Jeśli nie wiesz, to w zaledwie kilku lekcjach poznasz narzędzia i składnie do tworzenia przejść i animacji ograniczonych tylko przez Twoją wyobraźnię* (i możliwości CSSa)
Aby móc efektywnie korzystać z tego kursu, powinieneś posiadać średnio zaawansowaną wiedzę z kategorii Front End. Przyda się również umiejętność poszerzania pojedynczych zagadnień na własną rękę, ponieważ wiele z poruszanych w tym kursie tematów można by zgłębiać godzinami. Nie zaszkodzi również podstawowa wiedza o JavaScript. Postaram się wprowadzić Cię w różne obszary CSSa potrzebne w codziennej pracy jako Front-End developer. Doświadczeni developerzy znajdą w tym kursie powtórkę najistotniejszych informacji na temat współczesnego CSSa, jak i ciekawe zagadnienia o których często się zapomina.
Część tej lekcji opowiem ci o użyciu
romantycznym zmiennych CSS Custom Properties.
I niekoniecznie chodzi tutaj o tematykę w
kontekście HTML a tylko bardziej o takie bycie
jawnym co do tego co robimy i nazywanie zmiennych nie bezpośrednio
ile coś ma mieć szerokości lecz używanie tego w bardziej sposób intuicyjny.
Dla nas tutaj Przygotowałem taki przykład gdzie faktycznie ustalane są
rozmiary poszczególnych kolumn z dodatkową dotacją której nie wspomniałem
wcześniej mianowicie nazywanie poszczególnych punktów na siatce tzn.
Tak jak tutaj się wcześniej odnosili do Jedynki jako początku Grid w kontekście
wiersza bądź kolumny i kolejnych jego elementów 2 3 4 5 6 7 to
byłaby cała nasza długość jawnych torów w CSS wyjdzie nam to tak samo możemy
odnosić się do tych punktów poprzez własne nazwy.
Czyli jesteśmy w stanie odnosić się do
jedynki poprzez start do siódemki poprzez Enter i do pojedynczych elementów czyli w
tym przypadku od dwójki do szóstki poprzez content start i content and Content start
ma tutaj wartość 2 content End ma tutaj wartość 6 czyli po prostu są to jakby
takie nazwy pomiędzy standardową rotacją GRID Holmes.
Dlaczego to można wykorzystać.
Jeśli zrobimy sobie
ogólną regułę to ja zrobiłem kontener i bezpośrednie dziecko ale tak naprawdę
można byłoby to uprościć i to po prostu bo nie ma tutaj żadnych więcej zamieszczonych
elementów listy.
Możemy przy okazji też ustawić sobie tutaj GRID gafa jakiegoś czy po prostu gafa
na pół tego.
I tak naprawdę.
Możemy zmniejszyć też ilość tych kolumn po prostu.
No i co to nam daje tak naprawdę co tutaj się stało.
My ustalamy że GRID kolumn czyli to czego
używamy aby umiejscowione elementy nakrycie miało domyślnie nie auto.
Auto jest Domyślną wartością dla KRRiT kolumn tylko Custom Property.
Z Polpakiem do aut też możemy robić w full baki czyli obsługiwać sytuację kiedy ta
wartość nie jest zdefiniowana nigdzie w kodzie.
To jaka powinna być tutaj wartość tej
zmiennej i domyślnie ustawiamy auto więc start wartość startowa dla GRID kolumn dla
każdego z tych elementów wewnątrz kontenera
ul. .
Będzie auto.
Chyba że ktoś zadeklarował kolumn start czy kolumn NT.
Więc tak naprawdę po
pojedynczo teraz możemy na przykład na 3 ustawić sobie tylko kolumnę.
Start.
1.
I kolumn End powiedzmy 4.
Tutaj możemy to podbić do dwójki.
No i faktycznie nasz element się tutaj
rozciągnięty w tym przypadku oczywiście nie mieści się to nam na grę na siatce
i dlatego element przeskakuje do następnego wiersza jeżeli chcemy się tego
pozbyć możemy użyć kredy auto Flow DNS i wtedy elementy zostaną napisane.
Tak aby wypełnić wolne luki czyli 1.2 troszeczkę nam się tutaj nie mieści.
Więc tutaj zostawiamy dwa czy trzy wolne pola.
Tutaj też jest wolne pole trójka wchodzi.
Reszta się układa w standardowym Flow Flex.
Przepraszam.
Jeżeli włączymy tego Denisa.
No to wtedy te elementy puste zostaną
wypełnione kolejnymi elementami naszej siatki.
To jest też ten problem o którym wspominałem z problemami z dostępnością
ponieważ w tym momencie elementy nawigacja po nich wyglądałaby dziwnie ponieważ
najpierw mamy Jedynkę Dwójkę Trójkę tutaj niżej czwórkę piątkę szóstkę siódemkę
znowu jest trójka więc musimy ją ominąć ósemka dziewiątka dziesiątka.
Więc w kontekście nawigacji klawiaturą czy
odczytywania czytników ekranowych nie jest to optymalne rozwiązanie.
Grid Flow DNS jest dobrym podejściem jeżeli chcemy mieć faktycznie
wypełniony całego grilla ale jeżeli musimy robić jakieś interakcje
czy czytać treści w odpowiedniej kolejności to nie jest to dobre podejście
ale oprócz tego że możemy każdy z tych systemów teraz sterować za pomocą samych
Custom Properties nie musimy nawet wiedzieć co jest pod spodem czy to jest
GRID czy to jest Flex Box czy może na frontach.
Nie ma to znaczenia.
CSS Custom Properties zabierają to wszystko ponad taką warstwą abstrakcji
i możemy tylko operować na zmiennych które są nam znane.
To jest bardzo przydatne jeżeli mamy po
prostu kontraktu w firmie i oni niekoniecznie są mistrzami w danej
technologii ale chcemy żeby byli w stanie łatwo edytować dane
bądź jeżeli mamy jakiś Content Management System czyli system zarządzania treścią
i nasi klienci faktycznie muszą sobie w ten sposób ustawiać Custom Properties.
Są do tego naprawdę dobre.
Możemy sprawdzić CSS Custom Properties.
I ich wsparcie.
Natomiast ona jest mniej więcej tak samo wspierana jak GRID więc nie powinno być
problemu używania tych dwóch technologii równolegle.
Ale co można zrobić jeszcze tutaj zadeklarowali byśmy sobie te zmienne
które odnoszą się do konkretnego początku bądź końca GRID a więc możemy ich tutaj
użyć tak naprawdę ustalić sobie kontent start.
I content and.
I w tym momencie nasz leje out rozciąga
się tak jak chcieliśmy oczywiście my tutaj ustalamy tylko i wyłącznie GRID kolumn
ale takiej warstwy abstrakcji możemy tworzyć ile chcemy.
Możemy tak naprawdę tą zmienną kolumn start ukryć jeszcze bardziej za np.
media Saints albo logo SAS i wtedy stawiamy tylko wartości.
Powiedzmy logo Six.
Już róbmy to dasz kasę
na 5 i tak naprawdę pod spodem możemy
używać tych kolumn startów kolumn Andów a koń.
Koniec końców deweloperzy czy ktokolwiek
to będzie pisał tego co FSA będą mogli korzystać z logo Six a to
wszystko zostanie kierowane do faktycznej implementacji w quizie czy Flex.
Czy w czymkolwiek innym jest to naprawdę ciekawe podejście.
Szczerze mówiąc nie testowałem tego jeszcze na produkcyjnych środowiskach.
Wydaje mi się że jeżeli jest przestrzeń na to aby korzystać z custom Properties
na takiej skali nie powinno być z tym problemu.
I faktycznie może to pozbyć się wielu problemów CSS CSS em w
kontekście jego zrozumienia ponieważ oferujemy tylko na prostych zmiennych 1
czujemy proste wartości a nie myślimy jak ten koniec końców się składa.
W związku z czym chciałem zachęcić do eksperymentowania z kasą Properties
w sposób kreatywny oczywiście tryb dzienny nocny to jest podstawowe takie użycie
zmiennych w CSS które faktycznie jest przydatne
ale można pójść o krok dalej i na przykład stworzyć dedykowane komponenty które
będziemy Custom tylko za pomocą zmiennych CSS.
Na froncie bo możemy to też zrobić oczywiście z poziomu Java skryptu.