Wydajne Tworzenie Stron WWW
2 godz. 2 min · Full-stack i Programowanie
Piotr PalarzWeb DeveloperNiezależnie od tego jak skomplikowana jest dana strona czy aplikacja internetowa, zawsze składa się ona z przynajmniej dwóch komponentów - struktury opisanej w HTML i wyglądu nadanego w CSS. Praca z tymi językami może czasami przyprawić o ból głowy, szczególnie wtedy, gdy tracimy czas na szukanie powodu "rozjeżdżającego się" layoutu lub złej wielkości fontu i miejsca, w którym został on nadpisany. W takich sytuacjach Chrome DevTools to nieoceniona pomoc. Dzięki temu narzędziu w mgnieniu oka znajdziesz zbyt szeroki element, zmienisz jego style "na żywo" i upewnisz się, że problem został rozwiązany. W kursie poznasz wszystkie techniki pracy z HTML i CSS, których wykorzystanie znacznie przyspieszy i uprości Twoją pracę.
Przygotowywanie stron na urządzenia mobilne nie należy do najłatwiejszych zadań. Składa się na to przede wszystkim fakt, iż do czynienia mamy z bardzo wieloma rozdzielczościami telefonów czy tabletów. W kursie zobaczysz, w jaki sposób skalować swoją stronę odwzorowując różne urządzenia, wyświetlać Media Queries czy emulować sensory ruchu. Dowiesz się również jak symulować wolniejsze połączenie internetowe, z którym mamy często do czynienia w mobilnych sieciach, a także jak spowolnić procesor, aby odwzorować słabszy sprzęt, jakim bez wątpienia są urządzenia mobilne.
Współczesne strony internetowe to nie tylko HTML i CSS. To także JavaScript - a nawet... sporo JavaScriptu. Z tego powodu narzędzia deweloperskie przeglądarek oferują i na tym polu wiele możliwości. Jedną z nich jest konsola, która pozwala wykonywać kod JavaScript w obrębie aktualnie otwartej strony. To właśnie tam możemy eksperymentować, podglądać logi czy błędy. Kiedy jednak stajemy przed rozwiązaniem trudniejszego problemu, często niezbędne jest skorzystanie z tzw. debuggera. Z kursu dowiesz się jak debugować swoje aplikacje, aby proces ich tworzenia był jak najprzyjemniejszy. Poznasz sposoby wykonywnania kodu linijka po linijce, gdzie na każdym etapie uzyskasz wgląd we wszystkie dane niezbędne do znalezienia problemu lub przetestowania tworzonego rozwiązania.
Nim dowolna strona internetowa zostanie wyświetlona, musi najpierw zostać do przeglądarki przesłana z serwera w formie kodu. Początkowo to tylko kod HTML, chwilę później CSS, JavaScript, fonty, obrazki, multimedia. Wszystkie te zasoby mają wpływ na szybkość ładowania się strony, a także jej renderowania. Tworząc serwis, bardzo łatwo "przesadzić" i stracić kontrolę nad wydajnością tego procesu.Tutaj z pomocą przychodzi panel Network, który omówimy w kursie. To tam znajdziemy wszystkie zapytania wysłane do serwera, dokładne dane na temat czasu pobierania każdego zasobu, statusy odpowiedzi ciasteczka i wiele więcej.
Choć zarówno komputery osobiste jak i urządzenia mobilne z roku na rok stają się coraz wydajniejsze, to i technologie tworzenia aplikacji internetowych idą do przodu. Oznacza to tylko tyle, że coraz bardziej zaawansowane aplikacje, wymagają do płynnego działania, coraz mocniejszych urządzeń. Trend ten można jednak w pewnym stopniu zatrzymać, skupiając się na tym, czy aby na pewno tworzone przez nas rozwiązania są dobrze przemyślane i wolne od błędów, które mogą powodować nadmierne zużycie pamięci czy czasu procesora. W kursie zobaczysz jak badać wydajność naszego kodu w kontekście CPU i pamięci RAM oraz na jakie pułapki zwracać szczególną uwagę.
Kurs ten jest dla wszystkich osób tworzących strony i aplikacje internetowe. Nieważne czy dopiero rozpoczynasz swoją przygodę z Web Developmentem czy jesteś już weteranem w tej branży. Materiał ten pokaże Ci nowoczesne techniki pracy, które przyspieszą i uproszczą proces tworzenia i testowania stron WWW. Kurs został podzielony w taki sposób, aby zarówno osoby znające wyłącznie HTML i CSS, jak i te korzystające już z języka JavaScript, znalazły porady odnośnie tych tematów.
W tej lekcji zajmiemy się panelem styles który się znajduje również
w zakładce elements jak już zapewne zauważyłeś kiedy
zaznaczymy dowolny element to pojawiają nam się tutaj jego style i
są one pokazane w takim widoku gdzie mamy również
kaskadowość czyli widzimy jakby wszystkie miejsca w których
jakieś style zostały dodane do tego elementu więc skupmy się może na tym przycisku
mamy tutaj taki element li od razu widzimy że ma on dodane
dwie klasy pierwsza jest to klasa okrasa hover czyli pseudoklasa druga
jest to klasa active i że obie te klasy mają przypisane
taki i taki border border color to co jest bardzo ważne tutaj
to to że pokazuje nam również nazwę pliku z którego te style
zostały tutaj zaaplikowane a po dwukropku także linijkę i jeżeli klikniemy to
zostaniemy przeniesieni do panelu sources o którym jeszcze będziemy w tym kursie mówić i
dokładnie do tej linijki w której takie klasy zostały dodane więc tutaj
dokładnie jest to miejsce i dzięki temu gdybyśmy sobie przeszli do style.css
i również zauważmy że jest to linka 905 więc vs code
możemy wpisać to w ten sposób zauważ
że jest dokładnie to samo miejsce jeżeli przyjrzymy się tutaj
niżej to widzimy również kolejne reguły które zostały zaaplikowane i
tak dalej kiedy będziemy zjeżdżać na sam dół to w końcu zobaczymy również coś
takiego jak user agent stylesheet i to oznacza tylko tyle że każda przeglądarka
internetowa ma taki swój domyślny styl swoje style dla wszystkich
elementów czyli wiemy że na przykład li ma takie wyświetlanie i tak
dalej czyli to nie jest z naszych styli to jest ze styli domyślnych przeglądarki które my możemy
w swoim arkuszu nadpisywać no i jak widzisz tutaj również możemy zobaczyć
pseudoelementy i tak dalej jeżeli
klas jest bardzo dużo to możemy je sobie przefiltrować tutaj w ten sposób na
przykład wpiszę sobie project i zauważ że zostaną podświetlone tylko te które mają
takie słowo w swojej nazwie okej tutaj można w ogóle po selektorze
sobie to przefiltrować na przykład w ten sposób zauważ że w zasadzie to
nam wyszukuje nie tylko niekoniecznie selector ale jakby dopasowuje
tekst który wpiszemy i do właściwości css i do klas więc gdzieś
tutaj również moglibyśmy znaleźlibyśmy na przykład pod p coś targetowali i tak dalej tutaj
akurat jest to element li więc ten przykład może nie jest trafiony ale
jak widzisz jeżeli sobie tutaj odpowiednio przefiltrujesz to zobaczysz tylko te style które cię interesują
kolejną ważną rzeczą jest tutaj coś takiego jak element kropka style
i są to style liniowe ten element takich styli nie ma ale gdybyśmy
tutaj napisali na przykład font-size 20 pikseli to
zauważ że tutaj się to pojawia a także atrybut style został dodany czyli
w drzewie dom widzimy tą żywą reprezentację to jest dokładnie tak samo jak byśmy w kodzie html
wpisali style font-size 20 zauważ że każdy styl
można włączać i wyłączać w taki oto sposób jeżeli go wyłączymy on
jest tutaj zakomentowany jeżeli chcemy usunąć wystarczy kliknąć tutaj
i po prostu usunąć całą taką regułę jak
widzisz on nam znika i atrybut style jest teraz pusty oprócz
styli które widzimy tutaj zauważ na przykład
takich jak te skreślone mamy również coś takiego jak computed styles
do których przyjdziemy za sekundę ale chciałbym ci powiedzieć dlaczego czasami style są przekreślone
otóż oznacza to tylko tyle że dla body gdzieś przypisaliśmy line-height
1 ale następnie w innym miejscu przy pisaliśmy inny line-height
i być może tutaj gdzieś znajdziemy możemy sobie przefiltrować line-height
w ten sposób zobaczymy jak widzisz dokładnie dla tego elementu line-height
został przypisany na 48 czyli jeżeli gdzieś widzisz przekreśloną regułę
to oznacza że ona targetuje ten element i byłaby do niego przypisana
gdyby nie to że została nadpisana gdzieś indziej czyli przez bardziej
specyficzny selektor jeżeli natomiast nie chciałbyś widzieć wszystkich
styli tak jak tutaj i przekreślonych i nie a tylko te style które są konkretnie zaaplikowane
do danego elementu to możemy sobie przejść do zakładki computed
zauważyłem że zakładka computed nie jest tutaj widoczna nie wiedziałem
z jakiego powodu ale zobacz jeżeli sobie powiększymy tutaj to chrome devtools to
zakładka computed pojawia się w tym miejscu i teraz co
to oznacza co ta zakładka oznacza okej ona chyba tutaj się pojawiała wcześniej jak
widzisz w tym miejscu ale nie była opisana jako computed jeżeli powiększymy pojawia się tutaj
i computed są to style wyliczone dla konkretnego elementu na podstawie
wszystkich styli które my mu przepisaliśmy ale także domyślnych styli przeglądarki
więc teraz zamiast sobie zerkać tutaj jaki jest border-color i
czy on może być nadpisany czy nie możemy przyjść do computed i wtedy dokładnie to zobaczymy
również będziemy mogli wyszukać na przykład border i zauważ że wtedy tylko takie właściwości
nam się pokażą natomiast computed to są style które na ten
moment są zaaplikowane do danego elementu czyli nawet gdybyśmy nie przypisali mu
żadnych styli przeglądarka tak czy siak przypisuje własne style to
dobrze wiesz że jeżeli usuniemy arkusz styli to tak czy siak element H1 jest
większy od elementu p jeśli chodzi o phone size i tak dalej to właśnie
przez to domyślę style które możemy sobie tutaj podejrzeć i to już nie będziemy widzieć jakichś
przekreśleń i tak dalej ale dokładnie te style które są na danym elemencie czyli
jeżeli masz jakiś element na przykład nie jesteś pewien jaki jest jego font-size nie możesz
go znaleźć tutaj bo nigdzie go tak naprawdę nie przypisałeś on może być dziedziczony
z jakiegoś elementu rodzica wystarczy zaznaczyć taki element wejść
w computed i wpisać font-size aby zobaczyć jaki ten font
rzeczywiście jest przypisany do tego elementu i jeżeli natomiast będziesz
koniecznie chciał zobaczyć również kaskadowość tutaj za każdym razem można sobie rozwinąć
taką strzałeczkę i zobaczyć że w stylach jest to 15
pikseli później gdzieś zdefiniowaliśmy jako 100% a
później konkretnie dla tego elementu czyli jest to najbardziej specyficzny selector
przypisaliśmy 16 pikseli czyli tą kaskadowość również tutaj jeżeli chcemy
możemy zobaczyć okej wróćmy jednak do panelu style
powiększymy go trochę i chciałem ci pokazać że tutaj możemy oczywiście wszystko
modyfikować i dodawać co pozwala nam tak naprawdę prototypować czyli
tworzyć naszą stronę na żywo w przeglądarce oczywiście pamiętaj że po odświeżeniu wszystkie
te zmiany niestety znikną więc jeżeli chciałbym tutaj dodać jakąś inną
właściwość na przykład mamy border na tym przycisku i chciałbym
tutaj napisać że border-right zauważ świetne auto
completion widzimy wszystko co wspiera ta przeglądarka napiszemy none to
zauważ że ten przycisk od razu tutaj już nie ma prawego obramowania
jeżeli chcielibyśmy zmieniać jednostki to możemy je tutaj wpisać lub na przykład strzałkami do
góry i w dół te jednostki zmieniać co ciekawe jeżeli przytrzymam
shift i dam strzałkę w górę to zmieniamy jednostki co 10 i podobnie będzie
z pikselami jeżeli chodzi o font-size czy z jednostkami rem wszystkie jednostki
z shiftem i strzałka w dół w górę zmieniamy o 10 natomiast jeżeli
zrobimy to samo z altem to będziemy zmieniać o jedną dziesiątą i to się może
przydać kiedy zmieniamy na przykład font-size innym ciekawym trikiem który chciałbym
ci pokazać jest kopiowanie styli czyli jeżeli sobie już tutaj coś wyprototypowałeś
stwierdziłeś że fajnie to wygląda i chciałbyś to wkleić w swoim edytorze to
możesz na takim elemencie kliknąć prawym przyciskiem i wybrać copy
i następnie copy styles i teraz jeżeli sobie przejdziemy do naszego
CSS zauważ że jeżeli wkleję to są dokładnie te style które
zostały skopiowane okej to możemy usunąć ale
dobrze wiedzieć że style można w łatwy sposób skopiować oczywiście również można
je skopiować tutaj a także tutaj można je wkleić jeżeli wkleję więcej styli jak
widzisz również one się pojawiają odświeżmy może stronę żeby
te zmiany wyrzucić i chciałem ci pokazać jeszcze jedną bardzo bardzo
przydatna rzecz otóż mamy jakiś stan hover na ten element zauważ że po najechaniu
coś nam się tutaj pojawia ale teraz jak to możemy zdiagnozować otóż
klikniemy sobie na taki element będzie to cały ten element i
jeżeli najedziemy to nam się to pojawia ale jeżeli zeskoczę myszką to nam to znika
więc możemy taki element zaznaczyć kliknąć tutaj na hov i
wybrać jego pseudoklasę którą chcemy przypisać kliknę tutaj
i zauważ że teraz nie ważne czy jest to na tym elemencie czy nie on zachowuje się tak jakby
miał pseudoklasę hover podobnie inne klasy jak widzisz można przypisywać
focus przyda się na przykład przy polach input i teraz mogę sobie
klikać na tą strzałeczkę na przykład bez problemu coś zaznaczyć i zobaczyć jak
to się zachowuje właśnie kiedy jest taka klasa a tutaj z kolei
ten punkt pokazuje nam że w tym miejscu coś zostało zmienione więc
teraz to wszystko widzę i mogę dla tej klasy hover która się nam
tutaj pojawiła to będzie na przykład
ten element jak widzimy tutaj thumb hover invisible będziemy mogli poprostu pozmieniac
jakieś style i zobaczyć jak to wygląda na koniec chciałbym krótko
jeszcze wspomnieć o jednej rzeczy która może być dla ciebie przydatna otóż pokazałem ci do
tej pory że tutaj w tym panelu możemy zobaczyć w jakim pliku i w
jakiej linijce znajdują się style przypisane z tego elementu niemniej
jednak często pracujemy przy stronach czy aplikacjach internetowych używając
różnego rodzaju narzędzi takich jak na przykład webpack czy kompilując swój kod twój
sass do css jeżeli jeszcze nie jesteś na tym etapie poznawania
web developmentu nic nie szkodzi natomiast jeżeli jesteś
już osobą bardziej zaawansowaną to pewnie wiesz o tym że właśnie tak
możemy pracować i teraz co to oznacza oznacza to tylko tyle że tak
naprawdę mamy wynikowy plik css i tutaj nam będzie pokazywało w
której linijce w tym pliku coś się znajduje ale my tego pliku nie piszemy bezpośrednio
dlatego że stworzymy swój projekt w innych plikach często w bardzo wielu plikach
które są potem w odpowiedni sposób kompilowane i łączone i jeżeli
w swoim workflow na przykład w webpacku skonfigurujemy coś co nazywa się source
mapą to wtedy będziemy mogli tutaj zobaczyć gdzie w pliku źródłowym
znajdują się te style i żeby to pokazać odpaliłem swobie projekt eduweba tutaj
lokalnie i zauważ że tutaj dokładnie tak to działa otóż jeżeli
na przykład zaznaczę sobie ten element home innovation to zobaczę
że jego style znajdują się w pliku home scss w linijce
396 jeżeli tutaj kliknę to zobaczę
nie style css ale style sass właśnie w tym pliku i
dzięki temu będę mógł zobaczyć jak to wygląda w kodzie źródłowym mimo tego
że przeglądarka tak naprawdę renderuje całą stronę na podstawie skomplikowanego
kodu i jest to linijka 396 dokładnie
jeżeli sobie przejdę do home scss jak widzisz 396
linijka to są dokładnie te style więc pamiętaj że w swoim workflow
możesz skonfigurować coś takiego jak source mapa i wtedy chrome devtools doskonale
wie jak sobie z tym poradzić i będzie ci mapował style które
tak naprawdę renderuje do kodu źródłowego