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.
W tej lekcji będę opowiadał o zagrożeniu sektorów C.
Generalnie często jest taka sytuacja że chcemy.
Wyrazić nasze sektory w sposób jak najszybszy i jak najprostszy.
No bo faktycznie pisanie niektórych elektorów zajmuje troszkę czasu
w związku z czym dawno temu któryś z deweloperów wpadł na
to żeby zamieszczać elementy ze sobą czyli tak jak tutaj
zrobiłem baty i wewnątrz tego DF no to oczywiście to nie jest prawidłowe CSS
przynajmniej nie na obecnym stadium i ten CSS zostanie
przetransportowany przez CASA w momencie budowania na body D czyli jeżeli
zamierzamy element w ten sposób no to on się będzie wewnątrz.
Tego elementu pokazywał jako po spacji czyli generalnie szukamy elementów body
i wewnątrz tego Body jeżeli jest to ten sam lektor go nam tutaj złapie.
Swoją drogą bardzo genetyczny elektor on
oczywiście powinien być zrobiony po klasie albo o czymś innym ponieważ takie
genetyczne sektory są złe dla po pierwsze reformy a po drugie dla po prostu
zarządzania naszym kodem więc tak handluje nasz kod ekscesy sowy kompilator
no i możemy zrobić do tego więcej funkcjonalności np.
jeśli chcielibyśmy napisać że.
Po przejechaniu myszką na element pierwszy
możemy użyć do tego sektora rodzica jest specjalny sektor który działa tylko w
czasie i on tak naprawdę równa się zawsze temu co najbliższy sektor
na górze czyli w tym momencie tak naprawdę pisali byśmy coś takiego.
I tutaj mielibyśmy osobny sektor to jest dokładnie ten sam ekwiwalent kodu.
Jeżeli go sobie tutaj przekonujemy tak żebyśmy mieli porównanie.
No to te dwa Sniper kodu są
równorzędne i generalnie sektor rodzica to jest coś z czego ja
korzystam tylko i wyłącznie dla pseudo elementów i pseudo klas.
Możemy też zrobić coś takiego żeby wygenerować klasę na przykład
on
jako modyfikacja to jest coś wyjątkowego w tym sektorze powiedzmy mógłby mieć
inny Fon albo inny kolor powiedzmy że będzie miał inny kolor.
W tym przypadku czarny.
No i jeśli teraz sobie to.
Piszemy i przejdziemy do HTML a
tu piszemy spieszył jako dodatkową klasę to oczywiście musimy to zrobić z.
Tutaj tymi duszami i powiedzieć ten sektor bo to jak CSS nam wygeneruje te style
to tak jak wspomniałem Klei nam po prostu zamiast perfum to to co jest na górze
czyli musimy całą taką pełną klasę tam wstawić.
Bardzo prawdopodobne że kojarzycie to może Bema.
Gdzie to jest faktycznie używane i poza PiS.
Po zapisie widać że ten konkretny element
zmienił kolor i zmienił go faktycznie za pomocą tej klasy.
Ja nie polecam takiej notacji taka narracja jest według mnie bardzo czytelna
ponieważ często jest sytuacja że mamy kilku krotne zagęszczenie elementów
i tak naprawdę ciężko jest przeczytać do jakiego końcowego lektora tak jak tutaj
mamy mówiąc PSL to się nam tłumaczy jeżeli byśmy sobie zrobili.
Powiedzmy.
Deficyt to nie jest jeszcze tak źle ale jeżeli byśmy zrobili DF wewnątrz tego
łan kolejne zagęszczenie generalnie zagrażać możemy tyle ile chcemy.
Są oczywiście różne litery które nam
zalecają robić nie więcej niż trzy to możemy sobie skonfigurować.
Natomiast jeśli zrobimy jeszcze
to ten sektor będzie miał już
łan spieszy.
To będzie pełna klasa elektora.
Jeżeli zrobimy jeszcze jednego sektora
w związku z czym ja przede wszystkim nie
lubię tego rozwiązania ponieważ nie możemy szukać po elementach w klasie w projekcie
jeżeli byśmy teraz przekonywali sobie jak Cessna to wygenerował.
Piszemy to w szukajcie.
No to generalnie to się tutaj na mnie
pojawia bo po prostu tego nie ma to jest tylko w generowanych
plikach dystrybucyjnych albo w samej klasie gdzie przepisuje to w HTML u ale
nie ma możliwości edycji faktycznego źródła pochodzenia tego kodu
poprzez szukanie tego w projekcie.
W związku z czym ja polecam używać tego
tylko i wyłącznie albo do ustawienia nowych klas czyli to wymusi na elemencie.
On żeby była druga klasa czyli nie będzie to koniecznie element wewnątrz.
W tym momencie ten sektor sformował bym się na IEM on spieszy zamiast na.
Jan.
Spieszył.
Czyli jeżeli zrobimy to w ten sposób no to
piszemy do rodzica dodatkową klasę i to będzie wymóg że obie te klasy muszą być
spełnione aby ten sektor się zaaplikował albo możemy używać tego do pseudo
kolektorów co do elementów czy innych tego typu rzeczy natomiast nie polecam do
tworzenia nazw sektorów przy użyciu sektora.
To co można zrobić jeszcze przy użyciu
tego operatora taśmy usunięty bo to jest tak naprawdę powtórzenie.
I zmienimy z powrotem na wiatr.
Pierwszy
kolor bank Ground.
Napiszemy.
Faktycznie to działa to co możemy zrobić jeszcze to.
Coś co jest przydatne np.
przy tworzeniu filmów.
Być może teraz można to zrobić jeszcze lepiej bez w ogóle pomocniczej klasy
ale jeśli chcielibyśmy stworzyć coś takiego że musi być specjalny wariant HD
czyli na przykład badań które ma na sobie klasę.
Kibol.
Nawigator co jest częstym przypadkiem
jeżeli faktycznie dbamy o dostępność i o tym też mówię o osobnym kursie akcji.
Kiedy takie klasy mogą być przydatne no to wtedy możemy to napisać zamiast w
ten sposób no bo tak naprawdę musimy wyprowadzać wtedy całość.
Poza to chyba że używamy tego.
Poprzez gatunki lektor ale jeśli chcielibyśmy zrobić coś takiego że.
Powiedzmy.
Każdy element który znajduje się wewnątrz
takiego blade bo powiedzmy że to ma tą klasę możemy to w sumie za symulować po
prostu opisując las Board Getting musimy usunąć kropkę.
To jeśli chcielibyśmy oscylować tutaj dynamicznie powiedzmy element numer 2
no to albo musimy style dla tego elementu rozbić w dwa różne
miejsca co jest niezbyt intuicyjne albo możemy po prostu użyć tutaj
lektora czyli jeśli tutaj piszemy lektor na końcu to jest może troszkę
rzadsze widokiem w czasie ale jest jak najbardziej prawidłowym tekstem.
To sprawi że w sytuacji kiedy mamy.
Kibol Getting ponad tym.
Czyli tak naprawdę wewnątrz klasy
kibol nawigacji znajduje się tutaj ten sektor się zaopiekuje.
Zobaczymy jaki to jest błąd i miejsce 60 siódmej.
67.
Czy jest 67.
Tak usłyszałem jedno jedną kamerkę i się nam niestety Barthel posypał.
No i teraz jeśli to piszemy.
To widzimy że element numer 2 ma kolor
żółty który jest bardzo nieczytelny więc może zmienimy to
i w tym momencie widać że element drugi dostał tą klasę dostał tą regułę.
I jeśli usunie buddyjski Getting
to ta klasa znika.
Czyli jesteśmy w stanie stymulować
elementy w zależności od tego wewnątrz czego się znajdują.
Dynamicznie i te klasy sobie np.
przełączać w krypcie.
Więc ja polecam używanie tego Amber Santa jako
odniesienie do pseudo stylu czy pseudo klas na danym elemencie bądź używanie go
do modeli Kaczorów a niekoniecznie do tworzenia pełnych
nazw sektorów czy ich modyfikacji bo po prostu według mnie jest to nieczytelne.
Oczywiście możecie korzystać z CSS a jak wam tylko pasuje i też jest taka szansa że
w projekcie na jakim przyjdzie wam pracować będzie ta dotacja z rządem i np.
dwoma silnikami jako nazwę elektora używana to w zależności oczywiście od tego
czy lubicie to podejście czy nie możecie albo dalej z niego korzystać albo
zaproponować korzystanie z pełnych nazw czyli napisali byśmy wtedy tu.
PSL jako osobny sektor
i wtedy moglibyśmy wyszukać sobie to w kodzie źródłowym tak jak jest to zapisane
w przeglądarce bezpośrednio a używać tylko do specjalnych sektorów.
Stan końcowy index.scss · 10 min
@import '_variables';
body {
background: #0F111A;
color: white;
margin: 0 auto;
text-align: center;
font-family: 'Lato', sans-serif;
padding: 0 2rem;
div {
width: 6rem;
height: 4rem;
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
}
}
.container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 0.5rem;
width: 100%;
}
:root {
--orange: #{$c-orange};
--green: #{$c-green};
--yellow: #{$c-yellow};
--blue: #{$c-blue};
--purple: #{$c-purple};
}
.item-1 {
$custom-size: 5rem;
width: $custom-size;
height: $custom-size;
background: var(--orange);
&:hover {
background: var(--purple);
}
}
.item-2--special {
&:hover {
background: var(--purple);
}
}
.item-2 {
background: var(--green);
.is-keyboard-navigating & {
background: var(--purple);
}
}
.item-3 {
background: var(--yellow);
color: black;
}
.item-4 {
background: var(--purple);
}
.item-5 {
background: var(--blue);
color: black;
}Stan początkowy index.scss · 1 min
@import '_variables';
body {
background: #0F111A;
color: white;
margin: 0 auto;
text-align: center;
font-family: 'Lato', sans-serif;
padding: 0 2rem;
div {
width: 6rem;
height: 4rem;
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
}
}
.container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 0.5rem;
width: 100%;
}
:root {
--orange: #{$c-orange};
--green: #{$c-green};
--yellow: #{$c-yellow};
--blue: #{$c-blue};
--purple: #{$c-purple};
}
.item-1 {
$custom-size: 5rem;
width: $custom-size;
height: $custom-size;
background: var(--orange);
&:hover {
background: var(--purple);
}
}
.item-2 {
background: var(--green);
}
.item-3 {
background: var(--yellow);
color: black;
}
.item-4 {
background: var(--purple);
}
.item-5 {
background: var(--blue);
color: black;
}