Etap 4: Dokończenie reszty sekcji
Nasza strona obrasta w piórka! W ciągu trzech pierwszych części wyzwania stworzyliśmy trzy pełne sekcje. Przykładowe rozwiązanie:
Dzisiaj dodasz i ostylujesz resztę sekcji oraz stopkę. Wiesz już tyle o HTML i CSS, że powinno pójść bez problemu – do dzieła!
1. Fajny efekt niskim kosztem, czyli prosty efekt parallax
Efekt parallax na stronach internetowych zyskał w ostatnich latach wielką popularność. Mówiąc najprościej, efekt ten polega na tym, że elementy strony (np. tła) podczas scrollowania przesuwają się z różną szybkością, tworząc wrażenie głębi. W wyzwaniu dodamy podstawowy efekt parallax za pomocą tylko jednej linijki CSS. Na początku jednak stwórzmy nową sekcję na stronie.
Zadanie 1
- W HTML, w nowej linii, dodaj nową sekcję (
<section>) o klasiestatement. - Wewnątrz tej sekcji utwórz
<div>o klasiecontainer. - W tym divie utwórz znacznik
<p>(bez żadnej klasy) i wpisz w nim jedno krótkie zdanie – cytat, motto, etc. - Następnie w pliku CSS utwórz selektor dla naszej nowej sekcji:
.statement. Nadaj temu selektorowi następujące style: background-image: url('http://i66.tinypic.com/5a3oh.jpg');background-repeat: no-repeat;background-size: cover;background-position: center center;- Postępując tak samo jak w przypadku zdjęcia w sekcji “Splash”, znajdź nowy obrazek na stronie pexels.com i wstaw go jako
background-imagew selektorze.statement. - Ostyluj treść tej sekcji: utwórz selektor
.statement p. Nadaj mu.margin: 0;, a następnie samodzielnie zdefiniuj jego czcionkę, kolor, rozmiar, itp. Zdajemy się na Twoją kreatywność :) Porada: w tej sekcji dobrze wygląda tekst wyśrodkowany (text-align: center;). - Czas na parallax! Wróć do selektora
.statementi dodaj mubackground-attachment: fixed;. Dzięki temu tło tej sekcji będzie nieruchome, podczas gdy reszta strony będzie się przesuwać.
2. Sekcja z cytatami
Dodamy teraz nieco więcej treści do naszej strony – będzie to kolekcja cytatów. W kolejnej części Wyzwania dodamy do niej animację.
Struktura sekcji z cytatami będzie bardzo podobna do struktury sekcji “Features” (pudełek z ikonkami).
Zadanie 2
- W HTML, w nowej linii, stwórz kolejną sekcję (
<section>) o klasiequotesi identyfikatorzequotes. - Wewnątrz tej sekcji utwórz
<div>o klasiecontainer. - W tym divie utwórz nagłówek poziomu drugiego z klasą
section-title. Wpisz w nim tytuł sekcji. - Następnie pod nagłówkiem dodaj
<div>o klasiequotes-wrapper. - Wewnątrz diva
quotes-wrapperutwórz<article>o klasiequote. - Wewnątrz
<article>wklej następujący kod:Jak widzisz, wewnątrz tagu
<q>znajduje się treść cytatu, a wewnątrz tagu<footer>- jego autor. - Stwórz kilka tagów
<article>według wzoru powyżej, jeden pod drugim, podmieniając oczywiście treści cytatów i nazwiska autorów.
Zadanie 3
Dodajmy teraz kilka stylów do tej sekcji.
- Jeżeli chcesz zmienić tło całej sekcji, w CSS utwórz dla niej selektor i nadaj mu odpowiedni
background-color. Może zdecydujesz się na nieco rozjaśniony$color-background(pamiętaszlighten)? - Utwórz selektor
.quotes-wrapperi nadaj mumargin: 72px 0 0 0;. - Selektorowi
.quote blockquotedajpadding: 0 36px;, a selektorowi.quote footer-margin: 24px 0 0 0;. - Jeżeli uważasz, że cytaty albo autorzy potrzebują zmiany koloru, czcionki lub innej właściwości, możesz zrobić to teraz :)
3. Galeria zdjęć
Jak pamiętasz z przykładowych realizacji projektu z pierwszej części wyzwania, nasz szablon zawiera galerię zdjęć, gdzie przy najechaniu na fotografię pojawia się jej tytuł:
Stworzymy teraz właśnie taką galerię!
Zanim przejdziemy do pisania kodu, przygotuj sobie zdjęcia do galerii. Galeria będzie wyświetlać 4 fotografie w jednym rzędzie, więc będziesz potrzebować 4 lub 8 (lub 12, lub 16...) obrazków. Możesz pobrać odpowiednie zdjęcia z pexels.com (wybierz rozmiar "Small" - nie chcemy ładować dużych obrazków, aby nie spowalniać niepotrzebnie strony). Wrzuć zdjęcia na https://postimages.org/ i przygotuj sobie ich adresy.
Zdjęcia gotowe? Super! Czas na HTML.
Zadanie 4
- W pliku HTML stwórz kolejną sekcję o klasie
galleryi identyfikatorzegallery. - Wewnątrz utwórz nagłówek poziomu drugiego z klasą
section-title. Wpisz w nim tytuł sekcji. - Pod nagłówkiem dodaj
<div>o klasiegallery-wrapper. - Wewnątrz tego diva dodaj tag
<figure>z klasągallery-item. To będzie nasze pojedyncze zdjęcie z opisem. - W środku
<figure>wstaw:Za pomocą tagu
<img>wstawiamy w HTML obrazek. Jego atrybutsrcmusi zawierać adres, pod którym obrazek jest dostępny w internecie.W tagu
<figcaption>mamy tytuł naszego zdjęcia. - Stwórz w swojej galerii tyle tagów
<figure>według powyższego schematu, ile chcesz (pamiętając, by ich liczba była wielokrotnością liczby 4). Użyj w nich przygotowanych zdjęć, a każdemu zdjęciu nadaj krótki tytuł.
Jak widzisz, w sekcji “Gallery” nie użyliśmy diva z klasą container – tak ma być, nie jest to błąd.
Zadanie 5
Galeria jest już na miejscu – dodajmy jej teraz trochę stylów. Tutaj sprawa będzie dość skomplikowana, bo nasza galeria to złożony element.
- Zacznijmy od selektora
section.gallery: nadaj mupadding: 60px 0 0 0;. - Czas na
gallery-wrapper, czyli klasę, w której umieściliśmy wszystkie zdjęcia. Stwórz dla tej klasy selektor w CSS i nadaj mu:display: flex;flex-wrap: wrap;margin: 72px 0 0 0;
- Pora na style pojedynczego zdjęcia. Przypomnij sobie, jaką klasę miały tagi
<figure>w naszej galerii i stwórz odpowiedni selektor w CSS. Następnie ostyluj go w następujący sposób:position: relative;margin: 0;flex: 0 0 25%;max-width: 25%;text-align: center;
Jeżeli nie chcesz, aby tytuł zdjęcia był wyśrodkowany, zmień wartość
text-align. - Pod tymi stylami dodaj kolejny selektor:
.gallery-item imgi nadaj mudisplay: block;,width: 100%;,height: 100%;orazobject-fit: cover;. Magiczna właściwośćobject-fit: cover;sprawi, że obrazki, niezależnie od swojej wielkości, zawsze będą wypełniać swojego diva-rodzica i nie zdeformują się przy zmianie szerokości strony. Warto zapamiętać tę sztuczkę! - Chcemy, aby po najechaniu kursorem myszy na zdjęcie (tzw. hover) pojawiła się na nim półprzezroczysta warstwa (z angielskiego overlay) oraz tytuł. Stworzymy je teraz – na razie będą widoczne przez cały czas, abyśmy widzieli, na czym pracujemy, a na końcu dodamy kod odpowiedzialny za pojawianie się tych elementów dopiero na
:hover.Na początku stworzymy overlay za pomocą znanego nam już pseudoelementu
:after. Wstaw w swoim CSS poniższy kod:Aby overlay się pojawił, musisz jeszcze samodzielnie dodać do niego:
width: 100%;height: 100%;background-color(jeżeli chcesz, by był czarny, użyj wartości#000000;)opacity, czyli przezroczystość.opacityprzyjmuje wartości od 0 do 1, sprawdź więc, co się stanie, gdy nadasz tej właściwości wartość np.0.1lub0.7. O właściwościopacitymożesz przeczytać tutaj: https://cssreference.io/property/opacity/.
- Czas na ostylowanie tytułu zdjęcia. Stwórz selektor
.gallery-item figcaptioni nadaj mu:position: absolute;display: block;width: 100%;top: 50%;transform: translateY(-50%);
Następnie, już samodzielnie, popracuj nad jego wyglądem: czcionką, kolorem, wielkością i innymi stylami, tak, aby pasował do reszty strony.
Kiedy zarówno overlay jak i tytuł wyglądają jak należy, zmień w obu tych elementach display: block; na display: none; a w nowej linii CSS dodaj:
Gotowe!
4. Sekcja “Contact”
Ostatnią sekcją naszej strony będzie “Contact”. Umieścimy tam ikonki z linkami do profilów w mediach społecznościowych. Do tego celu użyjemy taga <ul>, o którym więcej przeczytasz tutaj: https://htmlreference.io/element/ul/.
Zadanie 6
Najpierw zbudujmy znaną nam już strukturę strony:
- Sekcję z klasą
contacti identyfikatoremcontact, <div>z klasą container,- nagłówek
<h2>z klasąsection-title, zawierający tytuł sekcji.
Następnie pod nagłówkiem:
- Stwórz tag
<ul>z klasąsocial-links. - Wewnątrz tego taga stwórz kilka tagów
<li>o następującej strukturze, jeden pod drugim:<li><a href="#"><i class="fab fa-facebook-f"></i></a></li>
Będą to linki do profilów w social media w postaci ikonek. Jak widzisz, używamy tutaj znów FontAwesome. Znajdź na stronie FontAwesome ikonki kilku serwisów społecznościowych i umieść je na swojej stronie w stworzonych przed chwilą tagach <li>. Zamiast znaczka # w tagach <a> możesz wpisać linki do swoich profilów w social media, ale nie jest to obowiązkowe ;)
HTML gotowy!
Zadanie 7
W ramach stylowania sprawimy, że linki będą poziomą listą ikon z obramowaniem.
- Stwórz selektor
.contacti wyśrodkuj w nim tekst za pomocą właściwościtext-align. - Przypomnij sobie, jaką klasę ma nasza lista
<ul>i stwórz dla niej selektor w CSS. Dodaj jejlist-style-type: none;ipadding: 0; - Aby ostylować właściwe ikonki, potrzebne będą dwa selektory:
.social-links lii.social-links li a. Selektorowi.social-links linadajdisplay: inline-block;iborder: 1px solid $color-main;. Selektorowi.social-links li anatomiast:display: block;,width: 100%;,height: 100%;.
Reszta jest Twoim zadaniem! Selektorowi .social-links li nadaj width i height, line-height (pamiętaj, aby jego wartość była równa wartości height), rozmiar czcionki, border-radius, margin-right, aby odsunąć ikonki od siebie... Do selektora .social-links li a natomiast możesz dodać właściwość color, aby zmodyfikować kolor samych ikonek. Zachęcamy do eksperymentów!
Dla chętnych: nadaj ikonkom inny wygląd przy najechaniu kursorem, używając selektorów .social-links li:hover i .social-links li a:hover.
5. Stopka strony
Wszystkie sekcje są już na miejscu, dodajmy więc teraz naszej stronie stopkę. W stopce zazwyczaj umieszcza się informacje o tym, kto jest autorem strony.
Zadanie 8
- Pod ostatnią sekcją w HTML stwórz element
<footer>z klasąpage-footer. - Stwórz w nim
<div>o klasiecontainer. - W tym divie stwórz dwa elementy
<p>, jeden pod drugim. W pierwszym wstaw©, wciśnij spację, a następnie wpisz swoje imię. W drugim elemencie<p>wklej:Made with ♥ by <a href="https://kodilla.com" target="_blank">Kodilla</a>
Zadanie 9
Dodajmy też do stopki trochę stylów:
- W pliku CSS stwórz selektor dla stopki (przypomnij sobie, jaką klasę nadaliśmy elementowi
<footer>). Nadaj mu kolor tła, rozmiar czcionki,padding(np.padding: 12px 0;) i, jeżeli masz ochotę, dowolne inne style. - W kolejnej linii CSS stwórz selektor
.page-footer .containeri nadaj mudisplay: flex;orazjustify-content: space-between;. - Dodaj selektor
.page-footer pz właściwościąmargin: 0;. - Jeżeli masz ochotę, dodaj więcej stylów do stopki lub jej elementów, używając poznanych właściwości.
Nie zapomnij zapisać swojej pracy, klikając button Save w edytorze.
Powodzenia!