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.
Cześć w tym dziale będę mówił o wydajności CSS.
Zawęża to tylko i wyłącznie do CSS bo o
samej wydajności można by mówić naprawdę godzinami.
Więc tutaj też te najbardziej popularne
problemy z wydajnością w kontekście CSS porusza.
No i
pierwszym z tych zagadnień są skomplikowane sektory więc żeby móc
stworzyć skomplikowane sektory potrzebujemy skomplikowanej.
Notacji w HTML u ja tutaj użyję meta aby sobie szybko wygenerować jakiś market.
No to ustawiamy sobie kontenery czyli w okresie kontener
wewnątrz którego będzie lista nie
numerowane wewnątrz którego będą elementy tejże listy.
No i każda z tych elementów będzie miała
klasę z dolarem czyli z numerem początkowym.
W zależności od tego która jest integracja
interakcja to tak jak robiliśmy to wcześniej
to sobie możemy pomnożyć razy 12.
Podajemy jak to wygląda.
Mamy kontener walkę i dwanaście plików wewnątrz niego
i wewnątrz każdego z tych lista i temu
stworzymy sobie baton który będzie miał tekst Click.
No i w nawiasie numer początkowy który sam sobie wygenerował.
I faktycznie jak to napiszemy to już w ten sposób wygląda.
Możemy zrobić jeszcze kilka małych poprawek czyli walkę ukryć jej lista i.
Parking i margines zresetować.
Zapisujemy na betonie też jakoś troszkę go
oscyluje żeby był troszkę ładniejszy i ustawiły mu na.
7.
Border on.
I Back Ground.
Na powiedzmy.
Piszemy.
Kolor wystawimy na biały parking na.
Powiedzmy 08 ramach.
Tutaj troszkę nam się już nie zmieściła więc damy sobie 8 gramów.
Margines Dolny.
Tak naprawdę moglibyśmy go ustawić sobie
na listę ale powiedzmy że tutaj będzie około pół RM.
No i stworzyliśmy bardzo dużo elementów.
Co prawda na takich produkcjach jak 12 budżet państwa to nie jest naprawdę dużo
ale na potrzeby naszego przykładu jest to całkiem sporo.
No i skierowaliśmy je po dosyć
generycznych sektorach i tak jak wspominałem wcześniej
te sale które są o tyle problematyczne że po pierwsze
my możemy je niechcący wpisywać takie sale które tak naprawdę powinny być
tylko na początku naszego arkusza czyli tak aby później mogły być napisane przez
coś co ma większe specyfice hity bądź jest po prostu w kaskady troszkę
niżej ale te style nie powinny być jakby esencją tego jak tworzymy nasze atuty.
Powinniśmy faktycznie sterować po klasach bądź PO.
Atrybut jeżeli jest taka potrzeba i jeśli chcielibyśmy na przykład oscylować
element numer 6 no to oczywiście możemy to zrobić na kilka sposobów.
CSS jest naprawdę dynamicznym językiem i
możemy to zrobić naprawdę na różne sposoby.
Więc jeśli bierzemy najpierw tutaj tego kontenera.
Następnie poszukamy w nim listy numerowane i bezpośrednio w nim bo
być może mogłaby być żona ale my chcemy konkretnie tą
ulicę.
Następnie weźmiemy
tylko elementy listy które są bezpośrednio w tej walce co swoją drogą.
Jeżeli zamieszcza się w listach murowanych coś innego np.
diwa rapuje
list Diva no to to już jest niepoprawne lista lista numerowane czy nie numerowane.
Może.
Lista nie numerowane czy numerowane.
Może posiadać tylko i wyłącznie elementy mieli jako swoje bezpośrednie dzieci.
No i powiedzmy że chcemy oscylować element.
Siódmy wewnątrz którego jest baton i tenże baton.
Tutaj zmienimy mu kolor na grunt Green.
Oczywiście jest tutaj kilka problemów z tym kodem to faktycznie nam zadziałało.
Po pierwsze specyfice tego sektora jest naprawdę wysokie
i możemy to zrobić o wiele lepiej żeby tego wysokiego takiego nie było bo np.
teraz nie jesteśmy w stanie oscylować tego elementu po
7 czyli na naszym elemencie. Baton.
Jeżeli byśmy zrobili taki sektor i go sobie tutaj wpisali.
Jako bankrut.
Powiedz mi jedną.
No to to nie działa pomimo tego że w
Kaskada jest niżej ponieważ tutaj specyfika jest większa.
Tutaj używamy w obu sektorach klasy na
początku no ale później mamy nie dość że bezpośredni sektor najbliższego dziecka to
jeszcze są bezpośrednio listy nie numerowane konkretny element tej listy.
No i jeszcze baton bezpośrednio.
Więc jeśli już musimy robić sektory tego typu to znaczy dobierać się do któregoś
elementu danego danej listy czyli po prostu danego marketu.
No to lepiej jest zrobić coś takiego czyli
dobrać się najpierw do elementu początkowego który ma klasę a potem dobrać
się do elementu ogólnego albo najlepiej w ogóle nie sterować.
Tylko zrobić np.
7 baton czyli.
Klas
7
weźmie baton.
I postulował to bezpośrednio.
Powodów do tego oprócz specyfiki samego w sobie.
Jest też wydajność ponieważ CSS
będzie musiał podróżować tak jakby po całym naszym aucie którym my deklarujemy
i zgodnie z tymi sektorami on będzie musiał te warunki aplikować bądź nie.
Czyli jeśli mamy sytuację gdzie określamy
że chcemy oscylować ten konkretny element bo tak naprawdę oba te podejścia
skupiają się tylko i wyłącznie na tym betonie no to dają tyle dodatkowych
instrukcji silnikowych CSS a nie pomagamy w jego performance bo tak naprawdę
ta informacja jest wystarczająca aby znaleźć ten element.
I to po prostu też się wewnętrznie szybciej pasuje.
Najgorsze co możemy zrobić to jest generalnie sektor gwiazdka Aster risk
czyli sektor wszystkiego czyli tak naprawdę ten sektor wybrałby
każdy dowolny element który pasowałby do poprzedniego ciągu sektora.
I tutaj by coś było wewnątrz jeżeli mielibyśmy np.
obok tego patrona jeszcze jakiegoś z pana.
Order piszemy to ten Herod też otrzymuje
ten kolor ponieważ tu jest gwiazdka więc gwiazdka oznacza wszystko.
No i ten sektor też będzie działał.
Poza tym często mówi się że CSS czyta sektory od tyłu więc on najpierw szuka
tych najbardziej elementów po prawej aby sobie zawęża się cały ten ciąg.
Więc jeżeli taką gwiazdkę mamy na końcu no
to on tak naprawdę wie że cały nasz dom i cały ten dom.
Dopiero później będzie filmował zgodnie z
tymi kryteriami które znajdzie wcześniej w związku z czym moja tutaj reguła.
Porada dla was jest taka abyście nie robili ani takich generycznych elektorów
ani przede wszystkim gwiazdki ani bezpośrednich elektorów dziecka.
Jest naprawdę bardzo mało przypadków kiedy trzeba to robić w ten sposób
tylko po prostu uzupełniali wasz Marka o odpowiednie klasy i te konkretne klasy
stylowe i być może na poziomie projektu te różnice nie będą na
tyle dostrzegalne więc być może na ten moment sektory tego typu działają a jeżeli
naprawdę pracowali byście na ogromnej stronie z tysiącami i setkami tysięcy
elementów HTML owych bo te elementy są często generowane dynamicznie nie piszemy
ich ręcznie no to faktycznie takie sektory mogą
wpływać na performance a jak wpływają na performance to wpływają też na metryki np.
wyszukiwarek internetowych takie jak Like House z PIT test.
Czy inne tego typu narzędzia w związku z
czym najlepszym rozwiązaniem jest stylowy poklask bądź atrybuty.
Na pewno nie po kibicach no bo mają
większe deficyty i generalnie powinien być jeden kibic na cały element dom danego
typu czy nie możemy mieć dwóch indyków o treści MEiN.
Na przykład pomimo tego że
jesteśmy w stanie to oscylować to po pierwsze mamy większe specyfice IT
a po drugie z poziomu HTML a nie jest to poprawne.
Jeżeli byśmy tworzyli np.
dla danego elementu no to.
Takie świeczki zadziałały tylko dla pierwszego elementu a nie dla wszystkich
kolejnych więc możemy sobie jeszcze ten przykład szybko naprawić.
Czyli tutaj jeśli byśmy sobie zebrali
wszystkie batony możemy to zrobić za pomocą zaznaczenia
tylko pierwszego etapu baton zaznaczył my je wszystkie za pomocą skróty klawiszowe
komentarze i tutaj piszemy sobie klasę City
baton czyli Action baton.
Tutaj musimy dodać też ręcznie bo
nasze.
Zaznaczenie nie mogło wybrać tego elementu.
Możemy fałszować.
Niestety ten fakt nie robi tutaj cięć.
Ja osobiście bym to reformator dał na taką
narrację żeby faktycznie każdy z tych elementów był widoczny.
I wtedy możemy oscylować każdy tej baton.
Zamiast bezpośrednio balonów.
Nie ma różnicy w samym oderwaniu się tego elementu ale jest różnica w performance.
Zwłaszcza przy dużej skali i tak samo moglibyśmy tą walkę też nadać jej klasę.
Czyli jeśli tylko dodamy kolor Black i zmienimy tona.
List.
No to na tej walce też możemy dać.
Klasę.
No i ten kontener generalnie nie jest użyty moglibyśmy się go pozbyć ale nie ma
to znaczenia więc zostawimy to w ten sposób unikają skomplikowanych sektorów i
sektorów generycznych stylu wszystko po klasach wody dawajcie klasy dynamicznie
czy to będzie czy to na front będzie i nie będziecie mieli problemów z
performance na poziomie parkowania waszych z tymi.