Tworzenie Responsywnych Stron Internetowych
2 godz. 33 min · HTML i CSS · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperZacznijmy od przedstawienia projektu, który razem zbudujemy podczas tego warsztatu. Będziemy pracować nad stworzeniem nowoczesnej, responsywnej strony portfolio. Podczas budowania strony, zapoznam Cię z podstawowymi i zaawansowanymi funkcjami TailwindCSS, które pomogą Ci w efektywnym projektowaniu i stylizowaniu Twojej strony.
Zanim zaczniemy kodować, ważne jest, abyś miał dobrze skonfigurowane środowisko do pracy z TailwindCSS. Przeprowadzę Cię przez proces instalacji i konfiguracji TailwindCSS w Twoim projekcie. Pomoże to zrozumieć, jak TailwindCSS jest zbudowany i jak można go dostosować do swoich potrzeb.
Sekcja hero to wizytówka Twojej strony, więc ważne jest, aby była ona atrakcyjna i responsywna. Nauczę Cię, jak zaimplementować sekcję hero, która rozciąga się na całą wysokość i szerokość ekranu. Omówimy różne techniki, takie jak używanie tła obrazu, dodawanie ikon czy efektów obracania i zaznaczania tekstu.
W dzisiejszych czasach, gdzie ludzie korzystają z różnych urządzeń do przeglądania internetu, ważne jest, aby Twoja strona była responsywna i wyglądała dobrze na wszystkich typach urządzeń. Dowiesz się, jak korzystać z podejścia mobile first przy projektowaniu strony, co pomoże Ci zoptymalizować doświadczenie użytkownika na wszystkich rozdzielczościach ekranu.
Klasa container w TailwindCSS jest potężnym narzędziem, które pomaga w zarządzaniu układem Twojej strony. Przeprowadzę Cię przez różne sposoby korzystania z klasy container, aby uzyskać optymalny układ i design dla Twojej strony. Dowiesz się, jak zarządzać marginesami, paddingami, a także jak używać containera do tworzenia układów siatki.
Ten warsztat jest dla początkujących programistów, którzy chcą nauczyć się projektowania stron internetowych przy użyciu TailwindCSS. Idealny dla junior-deweloperów, oraz dla wszystkich, którzy chcą zrozumieć i wykorzystać moc nowoczesnych frameworków CSS.
Zaczniemy sobie od wbudowania tej pierwszej sekcji na naszym portfolio.
Otóż chodzi tutaj o tą główną sekcję z tym wielkim zdjęciem mojej twarzy.
Oczywiście możesz sobie spokojnie podmieniać zdjęcia, adresy e-mail, dane,
żeby mieć swoją stronę do swojego portfolio.
Natomiast to jest tylko jako przykład pokazane.
No i pierwsza rzecz, która nam się tutaj rzuca w oczy, to widzimy tutaj jakiś
header u góry na pewno mamy jakąś ikonkę menu na widoku mobilnym na tablecie.
Potem to nam się zmienia też w ikonkę
menu, która jest na środku i jakiś tutaj prawdopodobnie odnośnik do kontaktu.
Dodatkowo mamy tutaj jakieś ikonki social mediów danej osoby, tak?
No i mamy adres e-mail napisany też tak z dołu do góry.
Dodatkowo znaczek, który mówi nam, że możemy sobie zescrollować na dół.
Także skupimy się teraz na tej pierwszej sekcji.
Przejdźmy do edytora kodu i przejdźmy sobie też tutaj do naszej przeglądarki. Skasujemy
sobie na razie to wszystko co do tej pory sobie napisaliśmy, jeszcze jako ciekawostka
dzięki temu, że mamy ten watch włączony
zobacz, że jeżeli chodzi o style to podane zostały style, które są używane.
Zauważ, że używaliśmy grida, używaliśmy h-10.
Wszystko to jest jakby automatycznie dodawane do tego pliku style CSS dzięki
temu, że Tailwind nam się przebudowuje i czyta, z których klas my tutaj korzystamy.
Dobrze, przejdźmy sobie do budowania tego header'a.
Na pewno musimy zacząć od jakiegoś
jakiejś nawigacji, jakiegoś header'a tutaj na górze naszej strony.
Czyli zajmiemy sobie tego diva na header i na razie nadajemy mu klasę na absolute.
Pozycję absolute będziemy, bo problem jest
to, że chcemy sobie tutaj cały ten element ze zdjęciem, żeby miał
jakby wielkość całego ekranu,tak? Wysokość i szerokość.
Czyli może zacznijmy sobie najpierw od jakiegoś wrapper'a,
który nam się tutaj przyda na to wszystko.
Robimy sobie margin na top 4 i ustawimy sobie jeszcze pozycję relative.
I dodatkowo background ustawimy na zinc-900.
Chciałbym żeby to był taki ciemny background.
Zapiszę to sobie na razie,
jak widzisz tutaj nic nie mamy jeszcze z
tego względu, że po prostu nie daliśmy żadnej wysokości, szerokości tego div'a.
Natomiast na razie sobie to zostawimy.
Przejdźmy teraz do budowania naszego header'a.
My postawimy na text, żeby było 2xl.
I dodatkowo jeszcze będziemy potrzebowali tutaj font medium.
I tezt zinc,
i tutaj potrzebujemy jakiś kontrastowy kolor biały.
Zapiszę to sobie.
I teraz jeżeli chodzi o te klasy, zauważ, że tutaj jeżeli chodzi o klasę relative to
standardowego CSS ona, jakby odpowiada za to, żeby wypozycjonować
jakby relatywnie, robić tutaj relatywnego wrapper'a.
Po co jest to potrzebne?
Otóż chcemy tutaj jakby absolutenie wypozycjonować sobie nasz header.
I inne rzeczy z tym związane.
Dlatego tutaj sobie dodamy absolute.
I teraz będziemy mogli sobie, tak naprawdę
dodać dokładnie gdzie ten header powinien się znajdować.
Poprzez klasę inset-0
możemy powiedzieć na x 0 zrobimy sobie, że powinien on zostać umieszczony, na
dokładnie na topie tutaj naszej strony. Jeżeli ja sobie teraz tutaj też zrobie: Hello
to zauważ, że tak naprawdę jest to tutaj umieszczone na topie z tego względu, że
mamy margin na top 4 ustawione jest to tutaj przesunięte troszeczkę w dół.
Natomiast nasz header już jest widoczny na naszej stronie.
Dodatkowo co potrzebujemy to
odsuniemy ten header na top na 6 i z na 50 zrobimy bo z tyłu będzie zdjęcie.
Czyli musimy sobie ustawić z-index troszeczkę większy, żeby te zdjęcie nie
przysłaniały nam tego header'a tutaj, który sobie teraz budujemy.
Dodatkowo kolejną rzeczą, która będzie
potrzebna w tym headerze tp na pewno ustawimy sobie na flex na items center.
No i dodatkowo justify, justify between padding na X też ustawimy na 4.
I myślę, że na chwilę obecną możemy to
sobie zostawić w naszym headerze patrząc na design, który mamy tutaj przygotowany.
No potrzebujemy jakieś tutaj logo.
Czyli prawdopodobnie będzie to jakaś
h1, no i potrzebujemy jakąś ikonkę z menu.
Dodatkowo na dużych ekranach potrzebujemy tutaj jakby ten napis kontakt.
Czyli
przejdźmy teraz do naszego edytora kodu i przeglądarki.
I tutaj w środku będziemy potrzebowali h1.
Z napisem Daniel Noworyta.
Zróbmy sobie tu na razie tak.
Mamy już Daniel Noworyta.
Jeszcze zróbmy sobie na całe nasze body class i ustawmy sobie bg na zinc-50
może w naszym przypadku.
I dodatkowo już nam się troszeczkę tło tutaj zmieniło.
Dodatkowo na, potrzebujemy sobie jeszcze ustawić na text, żeby miał zinc-950.
Może domyślnie, żeby był widoczny.
Dobrze, to wszystko już mamy teraz ustawione tak jak powinno być.
Na razie tego Daniel Noworyta nie widać z tego względu, że nie mamy tła żadnego.
Może zacznijmy teraz.
Wstawmy sobie to tło, żeby było tutaj w ogóle już coś widoczne, prawda?
Tak, że przejdę sobie teraz.
Jako, że jesteśmy w tym wrapperze, no to przejdę poniżej header'a, żeby zrobić
wrapper na nasze tło tutaj, tak? Czyli przejdźmy sobie poniżej.
I tutaj potrzebujemy div class.
I w tym momencie musimy też wypozycjonować to relatywnie.
Wyizolujemy sobie ten element od reszty.
I tutaj min-h zrobimy sobie na screen.
Jak nie chcemy, żeby jakby minimalną wielkość ten element to miał jakby ekran.
Na tym nam zależy, żeby zdjęcie zawsze zajmowało nam tutaj wysokość ekranu.
I overflow ustawimy na hiden z tego względu, że nie chcemy mieć jakby domyślnych,
tutaj domyślnego zachowania w postaci scrollbar'ów.
I tutaj weźmy sobie już image.
I jako sorce, ja mam przygotowany link do mojego obrazka.
Jakby mam obrazek, możemy sobie tutaj zrobić link w postaci
naszego folderu image, w którym jeszcze nie ma żadnego obrazka.
Natomiast ja w tym momencie sobie wpiszę już hero fase.
Tak będzie nazwany mój obrazek, który już sobie teraz tutaj skopiuję do folderu.
Wszystkie obrazki, które wykorzystuję tutaj
w tej lekcji będziesz miał dostępne w materiałch dodatkowych.
No i po wklejeniu tego obrazka tutaj do
folderu image hero_fase.png zauważ, że już pojawił się tutaj na mojej stronie.
Oczywiście jeszcze to nie wygląda tak jak powinno wyglądać.
Musimy nadać temu odpowiednie style.
Natomiast już mamy na czym pracować. Już widzimy sobie tutaj
ten header z przodu, tego obrazka jest widoczny.
Przejdźmy sobie teraz do stylowania.
Może najpierw nadamy atrybut alt też mogę
tu napisać po prostu imię i nazwisko jako opis tego zdjęcia.
No i przejdźmy do klas, które będziemy
teraz tutaj wykorzystywać, żeby odpowiednio wystylizować ten obrazek.
Na pewno będziemy potrzebowali absolute.
Na pewno będziemy potrzebowali, żeby ten
obrazek tak naprawdę zajmował całą powierzchnię swojego kontenera.
Czyli najpierw ustawimy mu inset na 0.
To sprawi, że inset będzie 0 pixeli,
czyli jest jakby zajmuje całą powierzchnię swojego rodzica.
Dodatkowo zróbmy sobie, przesuniemy sobie
ten obrazek na -z-10 ustawimy na mniejszy z-index i wysokość na full.
Szerokość też na full ustawimy.
I object cover z tego względu, że chcemy,
żeby zajmował całą dostępną tutaj całe dostępne miejsce dla naszej aplikacji.
Kolejna rzecz, którą będziemy potrzebować to na pewno tutaj
tę ikonkę tego menu ja sobie przygotowałem, tutaj
z boku już svg, które będzie za to, za to odpowiedzialne.
W tym momencie jak wkleję sobie to svg tutaj, to tak naprawdę jeszcze tutaj nic nie
widać z tego względu, że ono nie jest odpowiednio wypozycjonowane.
Muszę je owrappować we wrapper, który powie
gdzie dokładnie ta ikonka ma się tutaj znajdywać. Tak, że ja
ją sobie przeniosę tutaj wyżej i na tego div'a tutaj, którego mamy tu.
Nadamy sobie klasy, które będą mówiły gdzie dokładnie ma znajdywać się ta ikonka menu.
W naszym przypadku będzie to absolute też.
Czyli chcemy pozycjonować to absolutnie w tym kontenerze, który jest tutaj.
Dodatkowo jeżeli chodzi o pozycję to bottom zróbmy sobie 4.
Sprawdźmy jak teraz wygląda.
Na razie jeszcze tutaj nic nie widać.
Dodatkowo potrzebujemy flex, żeby to było jakby zrobione był display flex.
h-10, width-10 zapiszemy to sobie wszystko.
Na razie ciągle nic nie widzimy tutaj na naszym ekranie.
Wyśrodkujemy sobie wszystkie itemy.
Musimy sobie zaokrąglić ten element.
Przypominam, że stylujemy teraz dokładnie
tutaj ten element, który mamy na dole strony, tak? I po rounded-full
potrzebujemy nadać bg-zinc.
W naszym przypadku będzie to 300 taki szary odcień.
Widzisz, że element tutaj już się pojawił w lewym dolnym rogu.
Już widzimy jak to tutaj wygląda
no i dodatkowo potrzebujemy na chwilę obecną tu zostawimy responsywnym
odsuwaniem tego od ekranu się za chwilkę zajmiemy.
Natomiast teraz jak sobie zmniejszę ten
ekran to widzisz, że jest to tak naprawdę też tutaj troszeczkę odsunięte.
Sprawdzę tylko czy mam bottom-4 jest jak najbardziej ok.
Natomiast myślę, że jeszcze musimy to
odsunąć tutaj od tej strony, zobaczymy sobie nasz design mobilny.
Ten element powinien być troszeczkę odsunięty.
W naszym przypadku tutaj brakuje wartości left-4 prawdopodobnie, która już
odsunęła nam tutaj ten element, który mamy poniżej.
No i jeszcze przy okazji skasowaliśm sobie bottom-4,
czyli left 4 już mamy element tutaj w miejscu, w którym on powinien być.
Teraz musimy się zająć tutaj tym elementem u góry.
I elementem, tymi ikonkami, które mamy tutaj po prawej stronie.