⛩️ WarsawJS Workshop #19 — Front-end
https://piecioshka.github.io/warsawjs-workshop-19-portfolio/app/
- Wejdź do
Settings
(projektu) - Przeskroluj do sekcji
GitHub Pages
Source
wybierz branchamaster
- pojawi się link do strony
Link nie wyświetla Twojego projektu?
- Spr. czy dopisałeś
app/
do linku - Spr. czy masz plik
index.html
w kataloguapp
- Dodaj plik
.nojekyll
do katalogu głównego projektu
-
Instalacja wymaganego oprogramowania
npm install -g gh-pages
-
Wrzucenie zawartości katalogu
app/
do branchagh-pages
gh-pages -d app/
-
Zmiana brancha źródłowego z
master
nagh-pages
w interfejsie GitHuba
Typ projektu: landing page
- ✅ Baner
- ✅ Galeria zdjęć
- ✅ Newsletter
- ✅ Menu
- ✅ Skrolowanie do sekcji za pomocą hashtaga
- ⛔ Karuzela: Podgląd powiększonych zdjęć
- Stworzyć workspace-u
- Stworzyć katalogu projektu
- Stworzyć katalogu
app
- Stworzyć plik
app/index.html
- W pliku
index.html
wpisujemy podstawowe tagi: html, head, body - Wykorzystać tagi title, meta
-
W
body
dodać kontenerdiv
o idpage
-
Wewnątrz tagu
div
dodaćsection
o idbanner
(język angielski) -
Dodać nagłówek pierwszego poziomu
h1
z tekstemPortfolio
-
Stworzyć plik
app/styles/main.css
-
Osadzić plik CSS w HTMLu za pomocą
<link rel="stylesheet" href="styles/main.css"/>
-
Zresetować domyślne style (reguła
margin
) dla przeglądarki dlabody, h1, p
-
Zdefiniować szerokość kontenera z id
page
na720px
za pomocą reguływidth
dla kontenera z idpage
-
Wycentrować kontener
#page
definiując automatyczne marginesymargin-left
imargin-right
-
Zdefiniować wysokość dla kontenera
#banner
np.300px
-
Ustawić tło za pomocą reguły
background-image
-
Wyłączyć powtarzanie
-
Wycentrować tło
-
Wycentrować text w banerze za pomocą
Flexbox
#banner { // ... display: flex; justify-content: center; align-items: center; }
-
Stworzyć kontener
section
o idgallery
z nagłówkiemh1
o treściGaleria zdjęć
-
Stworzyć listę za pomocą tagów
ul, li
-
Każdy element list powinien zawierać obrazek (wykorzystać tą samą usługę zdjęć co w banerze)
UWAGA: Obrazek osadzamy za pomocą znacznika
img
-
Zresetować domyślne style dla list ul, li
ul { list-style: none; padding: 0; margin: 0; }
-
Zmienić sposób prezentacji zdjęć w galerii za pomocą Flexboxa
ul { // ... display: flex; justify-content: space-around; flex-wrap: wrap; }
-
Stworzyć kontener
section
o idnewsletter
z nagłówkiemh1
o treściNewsletter
-
Dodać pod nagłówkiem formularz za pomocą znacznika
form
-
Stworzyć
input
typuemail
z atrybutemname
o treściemail
-
Dodatkowe: Ustawić atrybut
required
-
Stworzyć
label
z zawartościąTwój email
-
Stworzyć
input
typusubmit
z atrybutemvalue
o treściWyślij
-
Stworzyć plik
app/scripts/main.js
-
Osadzić plik JavaScript w HTMLu za pomocą
<script src="scripts/main.js"></script>
UWAGA: osadzić ten kod przed zamknięciem znacznika
body
-
Stworzyć w pliku JavaScript zmienną, która będzie przechowywała referencję do formularza
UWAGA: korzystamy z funkcji
document.querySelector
-
Podpiąć się pod zdarzenia
submit
na formularzu -
Wyłączyć domyślne zachowanie formularza w ciele handlera zdarzenia
submit
za pomocą funkcjievt.preventDefault()
-
Stworzyć wewnątrz handlera zmienną przechowującą dane wpisane w formularzu
UWAGA: Wykorzystać do tego konstruktor
FormData
przekazując argument będący wskaźnikiem do formularza -
Skonwertować dane z formularza na mapę za pomocą konstruktora
Map
-
Stworzyć funkcję
displayMessage
do prezentacji komunikatu, który zostanie przekazany w pierwszym parametrze -
Zbudować wiadomość z wykorzystaniem
template stringów
i stworzyć zmiennąmessage
-
Przekazać zmienną
message
podczas uruchomienia funkcjidisplayMessage
-
Stworzyć kontener
nav
o idmenu
-
Stworzyć listę za pomocą
ul, li
wewnątrz nowo stworzonego kontenera -
Stworzyć link w każdym elemencie listy
UWAGA: wykorzystujemy znacznik
a
-
Zdefiniować odpowiedni wartości w atrybucie
href
aby po hashtagu były wartości zid
każdej sekcji -
(Opcjonalne) Ostylować elementy menu według uznania
Dla chętnych 🏆
- https://github.com/piecioshka/colors - kolory
- https://picsum.photos/ - darmowe zdjęcia
- https://flexboxfroggy.com/ - nauka Flexboxa
- https://experiments.withgoogle.com/chrome
- https://codepen.io/joshnh/pen/paxbE
- https://codepen.io/piecioshka/pens/loved/10/
- https://codepen.io/eva_trostlos/pen/akQoLN
- https://codepen.io/aakashrodrigues/pen/Gfhjw
The MIT License @ 2018