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.
Kolejny punkt na naszej drodze do zbudowania swojego portfolio w Tailwind CSS.
To będzie odpowiednie zmodyfikowanie tej sekcji w taki sposób, żeby wyświetlała się
poprawnie zarówno na tabletach, jak i na większych ekranach.
Tutaj widać już, że mamy jakiś max width, czyli prawdopodobnie skorzystamy z
kontenera w tym wszystkim, jak jeszcze nie mamy, no ale układ tutaj się zmienia.
Obrazki przechodzą z tego co widzimy na lewą stronę, na pierwszą a opis,
description i tytuł tego projektu i link przechodzą na prawą stronę. Czyli
myślę, że musimy zadbać przede wszystkim o to, żeby ten pojedynczy element zmieniał
sposób, w jaki się wyświetla na średnich ekranach i na tych dużych i odpowiednio
potem zadbać o odległości tutaj między tymi dwoma sekcjami.
Myślę, że bardzo łatwo to gramy sobie Flex'em, zmieniając po prostu jego kierunek.
Tutaj na początku nasz element projektu
może być flex, kierunek column, a tutaj możemy przełączyć
się na po prostu na zwyczajny default'owy układ flex, czyli rzędy.
Przejdźmy teraz do naszego edytora kodu
i przestawmy się na widok na tablety.
Jeżeli chodzi o szerokość tego widoku,
to tutaj w opcjach Figmy możemy sobie to zobaczyć.
To jest 744 pixele.
Ja sobie teraz dokładnie w taki sposób
ustawię moją przeglądarkę, żeby ona miała 744 pixele.
Może przejdźmy sobie tutaj w inspect i jedziemy, aż będziemy mieli 744 pixele.
To jest nasz punkt docelowy, w którym chcemy.
Chcemy wyglądać tak, jak na naszym
designie, czyli chcemy, żeby to wszystko wyglądało właśnie w taki sposób.
Wróćmy teraz do naszej implementacji, do
kodu, do naszej przeglądarki no i zaczniemy od pierwszej rzeczy.
Pierwsza podstawowa rzecz, którą musimy na pewno zmienić.
To jak zobaczymy sobie na tą sekcję, to pojedynczy element tutaj, tak.
Czyli przejdźmy sobie do wyświetlania pojedynczego elementu.
No i w tym momencie możemy zrobić, że na md
będzie wyświetlane na flex'ie i md możemy ustawić na flex-column.
Flex-row tak naprawdę nam wystarczy.
Czyli jak to już zapiszemy, to już na średnich ekranach powinniśmy
przeskakiwać na wyświetlanie się za pomocą kolumny.
Sprawdźmy jeszcze czy to jest odpowiedni element.
Tutaj oczywiście jeszcze musimy odpowiednio sobie zamknąć te wszystkie elementy.
Z tego względu, że
jeżeli chcemy to wyświetlać na md flex, no to tutaj mamy 1 wraper który jest w środku.
Ale my tutaj mamy za dużo elementów i one się nie będą mieściły.
Czyli te wszystkie elementy tutaj wewnątrz
musimy zamknąć sobie w jednego div'a także wrap wiht abbrevation.
Wpisujemy div i wciskamy enter.
Mamy już dwa elementy w środku tego flex'a.
Zapisujemy sobie to wszystko.
I teraz po odświeżeniu tej strony zobacz, że już tutaj ten pierwszy element
ustawia nam się właśnie w taki sposób, w jaki byśmy chcieli.
Tak, że teraz możemy to samo powielić dla naszego drugiego elementu.
Tutaj zrobimy sobie md: flex to samo
złapie sobie tutaj class,
tak naprawdę będziemy to powtarzać.
Zapisujemy to sobie i te elementy tutaj musimy sobie wrap with abbrevation w div.
I tak samo dla elementu numer 3 nie chcemy obrazka wrapować, natomiast
chcemy wrapować wszystko to co mamy tutaj.
Kolejny div. Zapisujemy sobie to.
I zobacz, że już nam się to zaczyna ustawiać tak jak byśmy chcieli.
Teraz oczywiście musimy sobie popracować nad tymi obrazkami.
Przede wszystkim zaczniemy sobie od elementu numer 1, naszego pierwszego projektu.
Oczywiście korzystając z pewnych framework'ów frontend'owych.
To tutaj mogą być jakimś komponentem.
Obrazek mógłbyć komponentem.
Opis, tytuł i
cały ten link to też mógłbyć jeden komponent, do którego przekazujemy proxy.
Natomiast to nie jest część tego kursu.
W tym kursie chce Ci pokazać podstawowe
zasady jak można sobie przenosić design za pomocą Tailwind'a do prostego HTML'a.
Czyli wróćmy teraz do pierwszego elementu.
Tutaj mamy ten pocketsub projekt i musimy zadbać o to, żeby
te elementy wyświetlały się w sposób prawidłowy.
Wróćmy jeszcze do naszego designu i sprawdźmy sobie szerokość tego obrazka.
To jest 240 pixeli.
Sprawdźcie sobie, jak to wygląda teraz u nas na stronie, na tym ekranie.
Zrobimy sobie inspect.
330 pixeli, czyli zacząłbym od tego, żeby
ustawić mu maksymalną szerokość na ekranie md na 440 na 240 pixeli.
Czyli przejdźmy do naszego edytora kodu.
Tutaj odpalimy naszą przeglądarkę i nasz obrazek tutaj
md max width
na 240 pixeli możemy sobie ustawić.
Już w tym momencie obrazek nam się odpowiednio tutaj zmieni.
Jako, że mamy aspect square, to nie musimy ustawiać wysokości z tego względu, że po
prostu weźmie on jako wysokość, weźmie też szerokość, którą już tutaj ustawiliśmy.
To samo możemy zrobić dla wszystkich
obrazków tutaj poniżej, czyli przejdźmy sobie tu.
To samo mamy tutaj i tą samą zasadę zastosujemy
dlatego komponentu. Tak jak mówię, lepiej używać
framework'ów, bo tutaj w tym momencie nie musielibyśmy tyle razy kopiować tego kodu.
Tylko tak naprawdę wpisywalibyśmy to raz i
wszystko zachowywałby się tak samo się zachowywać.
Teraz przede wszystkim mamy problem z tym, że raz odległości nie są odpowiednie, a
dwa elementy te nie pokazują się odpowiednio.
Czyli tutaj co drugi element chcemy
jakby zmieniać, zmieniać kolejność wyświetlania się.
Chcemy, żeby obrazek był po prawej stronie, opis po lewej stronie.
I tutaj, jako że nie mamy jakieś tej listy zaczytywanej
z backend'u, to możemy jak najbardziej sobie wystylizować tylko ten pierwszy
element, czyli odwrócimy tutaj row-reverse zrobimy.
I zapiszemy to i jest,
obrazek przesunął się właśnie w tę stronę.
Teraz każdy z tych elementów musimy nadać
mu gap, żeby te rzeczy jakby przesuwały się od siebie.
Pamiętajmy, że stylizyjemy dopiero ekrany na tablety, czyli musimy
wykorzystywać te przedrostki md i w naszym przypadku ustawimy sobie gap na 4.
Już opisy przesunęły się od tych obrazków.
I teraz tutaj jeżeli chodzi o ten link to
na md musimy go sobie tutaj wyśrodkować, jakby dać do lewej strony.
Z tego co wiemy, to tak on jest na lewej
stronie i to wszystko powinno zajmować tutaj całą wysokość tego obrazka.
Sprawdźmy sobie w jaki sposób to wygląda teraz u nas.
No nie wygląda to jeszcze tak jak powinno.
Także teraz przejdźmy do edytora kodu
i zaczniemy najpierw od tego linku, który mamy tutaj na końcu tego naszego elementu.
To jest ten link i jak mamy tutaj justify-center to na md musimy zrobić justify-start.
Już to przesunie nam ten link.
W ten sposób, sprowadźmy sobie na nasz design.
Jak to wygląda?
Potrzebujemy zdecydowanie nadać większy
padding na nasz środkowy element, który to wszystko tutaj trzyma.
Czyli wejdźmy sobie tutaj do góry.
Mamy nasz główny element tutaj, który trzyma nam wszystkie projekty.
Padding na x jest ustawiony na 4, my
natomiast potrzebujemy jeżeli chodzi o md px ustawione na 8.
Już to nam zmniejszy
wyświetlanie się tych projektów no i tutaj możemy też ustawić sobie.
Jeżeli chodzi o ten element to margin na top albo możemy ograniczyć szerokość tych
elementów w taki sposób, że ten tekst tutaj się bardziej, lepiej wyświetli nam.
Przede wszystkim też musimy zwiększyć troszeczkę czcionkę.
Póki co mamy za małą tą czcionkę.
Tutaj jest szesnastka.
Jak zobaczymy nasz projekt to my mamy prawdopodobnie to póki co mniejsze.
To jest na razie dwunastka, tak że musimy też zmienić sposób wyświetlania się tych
tekstów w naszych elementach, żeby je tutaj odnaleźć.
To mamy wszystkie nasze trzy elementy, to
są trzy elementy i w każdym z tych elementów mamy tutaj teksty p i mamy
widzisz text xs na md sobie ustawimy text
base i to samo potrzebujemy dla kolejnych elementów.
Czyli to jest kolejny wraper, gdzie odnajdujemy sobie tag p
też mamy text base.
No i tutaj też mamy kolejny element, gdzie odnajdujemy tag p.
Też możemy sobie dodać text base.
Pozamykamy sobie teraz te wszystkie elementy.
Pierwszy, drugi i trzeci.
Zapiszę to sobie. Tekst już nam się kończy, no już nam to się wyświetla dużo lepiej.
Tak jak powinno, tak naprawdę.
Tak, że myślę, że na ekrany, na tablety mamy to już zrobione.
Sprawdźmy jeszcze design.
Czy to wszystko się zgadza?
No jeszcze zdecydowanie musimy powiększyć czcionkę tutaj tego napisu na 24 pixele.
Przejdźmy do naszych header'ów.
Mamy element numer 1 i header.
Który jest tutaj pod spodem.
H2
I ustawiamy sobie na md
text ustawmy na xl, jaka to jest wartość?
20, my potrzebujmey 24 czyli 2xl.
Zapisujemy to sobie.
Sprawdźmy naszą przeglądarkę już tutaj
napis się znacząco powiększył, to samo
potrzebujemy sobie nadać na następną h2 w tym elemencie.
I tutaj kolejna h2 też w tym elemencie.
Już powiększyły się te tytuły, już to
wygląda bardziej tak, jak to mieliśmy założone w designie.
Teraz zobaczmy jak to wszystko wygląda na bardzo dużym ekranie.
No nie wygląda tak jak powinno, z tego
względu, że musimy sobie ograniczyć tutaj szerokość tego wrapera, tych elementów.
Czyli przejdźmy sobie do designu.
Zobaczymy jaka tu jest szerokość tego elementu
mniej więcej, to 1120 pixeli.
Czyli jak użyjemy nasz kontener, możemy nadać mu maksymalną szerokość.
Kontener, który trzyma te wszystkie nasze elementy, czyli idziemy do góry, do
początku naszej sekcji. Tu jest nasz header.
Tu jest element numer 1, element numer 2,
element numer 3.
I tutaj w tym momencie możemy nadać klasę container.
Już to powinno w jakiś sposób nam pomóc, ograniczyć to wszystko.
Natomiast my nie chcemy ograniczać tła.
Czyli wróćmy się tutaj do implementacji.
Nie chcemy ograniczać w ogóle
tutaj tła, także możemy wszystko tutaj opakować w kolejny div.
Bo tło chcemy, żeby zostawało takie jakie jest.
Czyli opakujemy sobie ten element kolejnego div'a i do góry idziemy i wystylizujemy sobie
tutaj tą klasę użyjemy sobie class container max-w
ustawimy sobie, poszukajmy wartości bliskiej 1152,
to jest blisko wartość tego, co chcemy mieć.
I musimy oczywiście wyśrodkować tą klasę kontener, czyli mx-auto.
I już w tym momencie mamy projekty wyświetlone tak, jak byśmy
prawda chcieli.
Jeżeli chodzi o mniejsze ekrany jest to tak wyświetlone.
Jeżeli chodzi o telefony komórkowe,
to wracamy tutaj do wyświetlania w taki sposób.
Dobrze. Sekcję wybrane projekty mamy za sobą.
Teraz przejdziemy sobie do kolejnej sekcji, mianowicie sekcji związanej z usługami.