LAB03 - nvbach91/4IZ268-2022-2023-ZS GitHub Wiki
Jak psát webové stránky pomocí HTML5
- Domácí úkoly - oprava
- Doporučená struktura složek na cvičeních
- Nastavení lokálního serveru pro usnadnění vývoje
- Nastavení automatické sychronizace lokální složky se složkou na serveru eso.vse.cz
- Navigace v souborovém systému vs. navigace ve stromové struktuře webu
- Relativní cesty vs. absolutní cesty
- Další HTML5 tagy - seznamy, tabulky, obrázky, formuláře, iframe, ...
- Validace stránek a oprava chyb
- Obrázky a jejich optimalizace
- HTML entity
- Atributy
id
,class
- Navigační odkaz v rámci stránky
- E-mailový odkaz pomocí tagu
a
- Zastaralé tagy (center, font)
- Zastaralá atributy (border, align)
- Struktura tagů v tabulce, chybí thead, tbody...
- Indentace kódu, pouze a jen při vnoření, viz stromová struktura v LAB02, dodržet konzistenci indentace
- Vnoření tagů: omezení (ul, li)
- Každá stránka smí mít jeden h1 nadpis, a pouze jeden
- Párový tag, chybí začínající / ukončovací část
- Nepoužívat inline CSS
- Názvy tagů vždy malými písmeny!
- Chybějící hodnota v tagu
title
- Tag
b
,i
,u
nepoužívat, používatstrong
,em
, CSS - Chybějící atribut
alt
-
<article><p></article></p>
... - nadpis uvnitř paragrafu??
- v
section
je nutné mít nadpis - na některé speciální znaky je potřeba použít tzv. HTML entita
- mezery mezi deklarace atributů
target="_blank"
- názvy souborů malýmmi písmeny, slova oddělit pomlčkou
- chybí tag
html
-
<!DOCTYPE html>
, někdy úplně chybí, někdy špatná syntaxe -
hr
není párový tag -
data:image...
není odkaz na obrázek - zapomeňte na tag
<style>
-
tr
mimotable
?? - číst zadání - 4 stránky, ne 1
- do
head
nepatří věci, které se mají na stránce zobrazovat - zapomeňte na atribut
style
- povolené/nepovolené atributy v tagu
-
br
v seznamu? - psaní atributů, bez mezer
- horizontální čára = tag
hr
- hodnota atributu
width
je pouze číslo, bez jednotky - hodnota atributů
id
aclass
vždy v angličtině - nekopírujte něco, čemu nerozumíte, a když už něco kopírujete, přečtěte si to
- to že to nějak funguje neznamená že je to dobře
\-- xname # <-- kořenová složka - tuto složku otevřít ve VSCode
\-- cv01 # první týden
|-- cv02 # druhý týden
|-- cv03 # třetí týden
|-- cv04 # čtvrtý týden
...
- Instalace pluginů ve VSCode:
-
Live Server - VSCode Plugin, automatické znovunačtení stránky po jakékoliv změně ve zdrojovém souboru - už nemusíte mačkat Refresh
- Ve VSCode si nainstalujte tento plugin
- Použití:
- pravý klik na editor a vybrat
Open with Live Server
- tím se spustí lokální server a otevře se vám prohlížeč na adrese http://localhost:5500/...
- první část URL cesty představuje kořenový adresář ve VSCode
- pro zastavení serveru vyberte
Stop Live Server
- pravý klik na editor a vybrat
-
Alt + Shift + F
nebo pravý klik + vybratFormat Document
- Pro formátování CSS je potřeba si nainstalovat plugin
CSS formatter v1.0.1
- Relativní cesty vs. absolutní cesty
- v obou případech jde o stromovou strukturu
- je potřeba dbát na kontext, tj. to že vám funguje lokálně neznamená, že bude fungovat i na serveru
- proto je nejbezpečnější používat relativní odkazy - tím zajistíme funkčnost webu na jakémkoliv serveru
- tvorba cest k souborům a složkám
-
.
znamená aktuální adresář -
..
znamená adresář nad aktuálním adresářem - např.
'./events/upcoming'
,'../../about/'
,'./img/pikachu.jpg'
-
- nechť máme následující strukturu složek, napište následující odkazy bez použití kořenové složky
- odkaz ze stránky
contact
na stránkuevents
- odkaz ze stránky
team
na stránkupast events
- odkaz ze stránky
news
na stránku2020
- odkaz ze stránky
news
na stránku2020/09
- odkaz ze stránky
upcoming
na stránkuabout
- odkaz ze stránky
leadership
na stránkuteam
- odkaz ze stránky
board
na stránkuupcoming
- odkaz ze stránky
about
na souborstyles.css
- odkaz ze stránky
about
na souborpikachu.jpg
- odkaz ze stránky
past-events
na souborstyles.css
- odkaz ze stránky
past-events
na souborbulbasaur.jpg
- odkaz ze stránky
leadership
na souborstyles.css
- odkaz ze stránky
leadership
na souborsquirtle.jpg
- odkaz ze stránky
board
na souborstyles.css
- odkaz ze stránky
board
na souborcharmander.jpg
- odkaz ze stránky
- jaká je výhoda a nevýhoda relativních cest?
- jaká je výhoda a nevýhoda absolutních cest?
- kde se aktuálně nacházím, pokud je následující cesta validní?
'./events/upcoming'
'../../about/'
'./img/pikachu.jpg'
'../2020/01.jpg'
'/about/team/leadership/'
cv03
│ index.html
├───about
│ │ index.html
│ └───team
│ │ index.html
│ └───leadership
│ │ index.html
│ └───board
│ index.html
├───assets
│ ├───css
│ │ styles.css
│ ├───img
│ │ pikachu.jpg
│ │ squirtle.jpg
│ │ charmander.jpg
│ │ bulbasaur.jpg
│ └───js
│ scripts.js
├───contact
│ index.html
├───events
│ │ index.html
│ ├───past
│ │ index.html
│ └───upcoming
│ index.html
├───news
│ │ index.html
│ └───2020
│ │ index.html
│ ├───01
│ │ index.html
│ ├───02
│ │ index.html
│ ├───03
│ │ index.html
│ ├───04
│ │ index.html
│ ├───05
│ │ index.html
│ ├───06
│ │ index.html
│ ├───07
│ │ index.html
│ ├───08
│ │ index.html
│ └───09
│ index.html
└───team
index.html
- HTML validator - https://validator.w3.org/
- zmenšování rozměru - např. je nesmyslné používat obrázek 4000x5000 px na obrazovce 1366x786 px
- pokud má obrázek velké rozměry, v image editoru (Malování) ho zmenšete na max. 1920px x 1080px a poté ho optimalizujte v kompresoru (bezeztrátová komprese):
- pro psaní speciálních znaků v dokumentu
no-break-space mezera
> greater than >
< less than <
" quote "
' apostrof '
& ampersand &
¢ cent ¢
£ libra £
¥ japonský Yen ¥
© copyright ©
® registered ®
...
- konvence
- používat smysluplné anglické pojmy, tj. ne
id="x-1"
,id="x-2"
- oddělit slova pomocí pomlčky, např.
id="remote-control"
,class="sale-item"
, pro atributname
použít camelCase, např.name="justAnotherAttribute"
- používat smysluplné anglické pojmy, tj. ne
- hodnota atributu
id
je unikátní v rámci dokumentu - nesmí se opakovat na více místech - hodnota atributu
class
lze opakovat - určuje název pro referenci v CSS
<article id="article-01">
<h2 class="article-heading">Lorem ipsum...</p>
<p class="article-paragraph">Lorem ipsum...</p>
<p class="article-paragraph">emmet lori...</p>
<p class="article-paragraph">dolor sit amet...</p>
</article>
<h2 id="chapter-01">Kapitola 1</h2>
...
<a href="#chapter-01">Go to Chapter 1</a>
<!-- otevře defaultní mailbox ve Vašem OS a založí nový e-mail určený uvedenému přijemcovi -->
<a href="mailto:[email protected]">Email me!</a>
<!-- přihodíme ještě předmět e-mailu -->
<a href="mailto:[email protected]?subject=Hello%20Jim">Email me!</a>
<!-- přihodíme i tělo zprávy -->
<a href="mailto:[email protected]?subject=Hello%20Jim&body=Greetings">Email me!</a>
- Úkoly z předchozího cvičení opravte podle zjištěných chyb (seznam chyb nahoře) a nechte zvalidovat pomocí VSCode Pluginu a validátoru
- Návod zde
- validátor https://validator.w3.org
- Úkoly nahrajte na server eso tak, aby byly dostupné pod odkazy:
- Všechny stránky nechte zvalidovat a vytvořte odkazy na tyto validace
-
Vytvořte 3 stránky, které prezentují obsah knihy, která má 3 kapitoly.
- Textový obsah stránky musí dávat smysl (nepoužívejte lorem ipsum)
- Na každé stránce (kapitole) umístěte navigační odkazy do kapitol 1, 2 a 3
- Používejte vhodný nadpis pro názvy kapitol a podkapitol
- Obsah - table of content (ToC) této kapitoly s klikatelnými odkazy na jednotlivé podkapitoly v rámci stránky
- Odkaz zpět na obsah (ToC) u každého nadpisu podkapitol a na konci každé podkapitoly
- Každá stránka musí obsahovat minimálně 3 úrovně nadpisů, tj. např. 1, 1.1, 1.1.1
- Každá stránka musí obsahovat minimálně 1 tabulku s min. 5 sl. a 10 ř., tabulky musí mít popisek
- Každá stránka musí obsahovat minimálně 1 obrázek s popiskem
- Každá stránka musí obsahovat minimálně 1 seznam (kromě ToC)
- Každá stránka musí obsahovat nějaké HTML entity pro zobrazení speciálních znaků
- Kapitoly ukončete horizontální čárou
- V kódu používejte vhodné sémantické značky
- Stránky nesmí obsahovat žádný CSS
- Nesnažte se měnit vzhled stránky ani vzhled textu (kromě pomocí k tomu určených tagů jako
strong
,em
) - Průběžně si kontrolujte validitu kódu a formátujte
- Stránky zveřejnit na serveru eso pod odkazy
-
Odkazy napište do vlákna https://github.com/nvbach91/4IZ268-2022-2023-ZS/issues/
-
Termín odevzdání Příští Čt 23:59:59