Uvod u web dizajn - 5. deo - HTML 5 struktura i tagovi - Podela stranice
Uvod
Kao i većina drugih računarskih jezika, HTML je tokom vremena prolazio kroz različite revizije. Svaka nova verzija podrazumevala je (između ostalog), dodavanje novih opcija, a kada su u pitanu opcije koje su se pojavile sa najnovijom (petom) verzijom HTML-a, posebno mesto zauzima veći broj specijalizovanih <div>
tagova sa specifičnim nazivima i unapred pripisanim značenjem.
Novi tagovi svakako povećanju preglednosti HTML koda (odnosno, olakšavaju prepoznavanje uloge različitih elemenata stranice), međutim, pri prvom susretu sa prethodno pomenutim "HTML5 tagovima", prirodno se postavlja pitanje da li (uopšte) postoji prava potreba za specijalizovanim <div>
tagovima, s obzirom na to da 'obični' <div>
tagovi, koji su podešeni preko odgovarajućeg CSS koda, omogućavaju (baš kao što smo videli u prethodnom nastavku), da se struktura web stranice definiše korektno i prikaže na pregledan i vizuelno dopadljiv način.
U nastavku, pokušaćemo da odgovorimo na postavljeno pitanje (i, naravno, predstavićemo najvažnije HTML5 tagove) ....
Ukratko o preglednosti HTML koda
Problematika preglednosti može se svesti na dva glavna pitanja:
- kako omogućiti programerima i web dizajnerima (korisnicima "ljudskog roda"), da što lakše razaznaju strukturu sajtova
- kako omogućiti računarskim programima - da obave isti zadatak
Što se tiče programa, mislimo pre svega na tzv. "robote", specijalizovane programe koje internet pretraživači koriste zarad analize web stranica (pri čemu pravilna struktura sajta povoljno utiče na rang koji će sajt imati pri pokretanju pretrage).
Programi prepoznaju strukturu stranice preko tekstualnih obrazaca i svakako su u stanju da razaznaju hijerarhiju elemenata (koja, kao što znamo, u praktičnom smislu predstavlja stablo).
U današnje vreme postoje i tehnologije koje omogućavaju da se prepozna smisao <div>
elemenata shodno pripisanim id-ovima, ali, u praksi se ipak očekuje od programera i web dizajnera da "i dalje" kreiraju optimalnu HTML strukturu.
Pogledajmo jednostavan primer koji potcrtava ono što smo do sada naveli ....
Primer HTML strukture - bez HTML5 tagova
Može se reći da sledeća (vrlo jednostavna) HTML struktura ....
.... sama po sebi deluje veoma jasno i razumljivo, i recimo da bi se lako moglo zamisliti kako bi stranica koja je definisana preko gornjeg koda (uz dodatak odgovarajućeg CSS-a), mogla izgledati kada se otvori u browseru.
Međutim, da li smo (skroz) sigurni da bismo bili u stanju da razumemo istovetnu strukturu <div>
elemenata, kojima je neko drugi dodelio id-ove?!
Na primer, struktura kakvu vidimo na gornjoj slici (spoljni <div>
element sa tri unutrašnja <div>
elementa), mogla bi - sa drugačijim id-ovima * - predstavljati i navigacionu traku sa tri linka, kao i mnoge druge strukture (u "neraspoznavanju" svrhe id-ova, posebno odmaže mogućnost definisanja id-ova preko reči iz nekog drugog jezika, ** ili, uz korišćenje tehničkih termina i drugih proizvoljnih odrednica).
Ljudi ne mogu razumeti sve jezike, web pretraživači se (tipično) neće truditi da razumeju jezik i neće "gledati blagonaklono" na sajtove sa nepreglednom HTML strukturom (odnosno, pri rangiranju stranica, web pretraživači se neće previše truditi da razumeju "šta smo hteli da kažemo" preko generičkih <div>
elemenata), i stoga je jasno da proizvoljni id-ovi nisu najpraktičnija opcija.
Praktično rešenje predstavlja, upravo - standardizacija koja je došla sa 5. verzijom jezika HTML (sa kojom su uvedeni, ranije pomenuti, <div>
elementi sa posebnim nazivima i unapred određenom namenom).
HTML 5 specifikacija - specijalizovani div tagovi
Zarad upoznavanja sa HTML5 tagovima, osvrnućemo se (u ovom članku), pre svega na tagove <main>
, <header>
, <nav>
i <footer>
- najvažnije i najčešće korišćene HTML5 tagove, ali, svakako ćemo se osvrnuti i na nekolicinu drugih zanimljivih tagova.
Tagovi header, nav, main i footer
Pogledajmo kako se malopređašnja struktura stranice može zapisati uz korišćenje HTML5 tagova ....
Tag <header>
Tag <header>
koristi se za definisanje zaglavlja na različitim odeljcima stranice:
- 'glavni'
<header>
tag stoji pri vrhu stranice (direktno unutar body tagova, ili unutar glavnog uokvirujućeg<div>
elementa), odnosi se na "celu stranicu", i tipično sadrži: logotip sajta,<nav>
tagove sa navigacionim linkovima ("početna", "o nama", "kontakt" i sl), formular za pretragu i druge slične elemente <header>
tag može stajati i na vrhu 'unutrašnjih' odeljaka stranice (koji se tipično definišu preko taga<section>
, * ali i na druge načine)
Tag <nav>
Tag <nav>
koristi se kao okvir za kolekciju navigacionih linkova prema drugim stranicama sajta (navigacioni linkovi su najčešće postavljeni pri vrhu stranice, ali, često se pojavljuju i na drugim mestima)
Tag <footer>
Tag <footer>
specifično je namenjen definisanju "podnožja" stranice, u koje se tipično smeštaju: kratak opis sajta (odnosno, firme/preduzeća i sl), kontakt informacije, nekoliko najvažnijih navigacionih linkova, linkovi ka pravilniku korišćenja, i druge srodne informacije
Tag <main>
Tag <main>
namenjen je centralnom delu stranice, u kome se nalazi glavni sadržaj
Struktura HTML dokumenta je sada univerzalna i lako je razumeti šta je prava namena pojedinačnih elemenata (odnosno tagova).
Definisanje finalne strukture stranice
Da bismo upotpunili (HTML5) strukturu stranice dodaćemo i tagove <head>
kao i uokvirujuće <html>
tagove.
Ali, pre svega (doslovno - pre ostatka sadržaja), navešćemo direktivu <!DOCTYPE html>
sa kojom smo se već susretali, preko koje se browseru sugeriše da je stranica formatirana po standardu HTML5 (i da stranicu tako treba interpretirati).
Specijalizovanim tagovima koje smo koristili, mogu se pripisivati i id-ovi (naravno, i klase), ali, u slučaju jednostavnih sajtova može se čak i izbeći upotreba id atributa (tj. mogu se pisati CSS selektori koji se direktno obraćaju HTML elementima kao što su <main>
, <nav>
, <footer>
i sl).
Prethodno definisanoj HTML strukturi može se pripisati sledeći CSS kod:
Dodatna objašnjenja
Iako HTML struktura koju smo definisali nije komplikovana (a isto važi i za pripadajući CSS kod), pozabavićemo se ipak detaljnijom analizom (slobodno proučite kod više puta, dok vam svi detalji ne budu sasvim jasni).
Navodimo detalje na koje treba obratiti najviše pažnje:
- ponovo koristimo univerzalni selektor
*
, da pristupimo svim elementima (naravno, univerzalni selektor sadrži samo atribute opšteg tipa) - unutar flex kontejnera "okvir", elementi
<header>
i<footer>
imaju zadatu fiksnu visinu, dok se element<main>
(posredstvom parametraflex
), širi i skuplja - elementi
<header>
i<main>
su (kao što smo videli), unutrašnji elementi kontejnera "okvir", ali - sami po sebi su takođe i flex kontejneri (odnosno, nosači za svoje unutrašnje elemente), a tako nešto, ne samo da je moguće - već je i krajnje neophodno (i vrlo praktično) - unutar taga
<header>
mogu se zapaziti tri elementa: slika, prazan<div>
i<nav>
element sa linkovima, a svrha navedenog praznog<div>
elementa je da se širi i skuplja, tako da "otera" sliku levo, a<nav>
element sa linkovima desno - budući da
<nav>
element nema eksplicitno zadate dimenzije (niti koristi atributflex
), dimenzije<nav>
elementa prilagodiće se sadržaju - visina slike (
nav_logo
), nije zadata eksplicitno, već je korišćena vrednostauto
, čime se postiže da se visina slike proporcionalno prilagodi širini - u CSS-u, navigacionim linkovima smo pristupali metodom vezivanja selektora (
nav a
)
Za kraj, izdvojili smo nekolicinu popularnih tagova koji su takođe vredni pažnje pri početnom upoznavanju sa HTML-om (još nekoliko HTML5 tagova i nekoliko tagova iz prethodnih verzija HTML-a).
Drugi popularni HTML5 tagovi
Pored tagova <main>
, <header>
, <nav>
i <footer>
, koji su (praktično) neizostavan deo modernog web dizajna (odnosno, još praktičnije - neizostavan deo velike većine modernih sajtova), postoji još nekoliko HTML5 tagova sa kojima je potrebno upoznati se još na početku.
HTML5 tagovi koje ćemo navesti u nastavku, nisu 'neizostavan deo modernih sajtova', * ali, svakako igraju bitnu ulogu u dobroj organizaciji web stranica (i svakako ćete se i sa njima sretati vrlo često).
<article>
Preko taga <article>
uokviruju se zaokružene celinu u HTML kodu, formatirane po obrascu "naslov-sadržaj" i uobličene tako da bi i na "drugim" mestima mogle stajati samostalno.
Na primer, tag <article>
često se koristi za pojedinačne oglase na sajtovima sa oglasima, komentare korisnika, pojedinačne poruke u chat aplikacijama (ili na forumima), i naravno - kako sam naziv taga nagoveštava - tekstualne članke (kao što je na primer članak koji trenutno čitate).
<section>
Tagovi <section>
tipično se koriste za uokviravanje različitih odeljaka stranice koji su formatirani po obrascu "naslov - sadržaj", pri čemu nisu u pitanju celine koje mogu samostalno stajati i na drugim mestima * (kao što je slučaj sa odeljcima za koje se koristi tag <article>
).
Za primer možemo uzeti strukturu sajta koja se često pojavljuje na web stranicama na kojima softverske kompanije promovišu različite programe:
<aside>
Preko taga <aside>
definišu se sporedni odeljci stranice sa informacijama koje su vezane za glavni sadržaj, a pored toga, tagovi <aside>
često se koriste i za uokviravanje usputnih napomena unutar pasusa, ili između pasusa.
<canvas>
Preko taga <canvas>
....
.... uz malo CSS-a ....
.... i JavaScript-a * ....
.... mogu se definisati "platna" za iscrtavanje 2D grafičkih elemenata.
<figure> i <figcaption>
Tag <figure>
definiše celinu koju čine određeni element i tekstualni opis datog elementa.
U najpraktičnijem smislu, u većini situacija je u pitanju slika sa opisom (preko taga <img>
definisana je sama slika, a preko taga <figcaption>
definiše se opis slike).
Bez pravih semantičkih tagova, ne bi bilo lako razumeti da li se određeni opis odnosi na određenu sliku ili treba da stoji samostalno.
Ostali popularni tagovi
Da bismo upotpunili diskusiju o osnovama HTML-a, pomenućemo još nekoliko često korišćenih tagova (koji su deo HTML-a duži niz godina unazad, tj. pojavili su se pre specifikacije HTML5).
<pre>, <code> i <samp>
Za pravilan prikaz programskog koda na sajtovima, koristi se kombinacija tagova <pre>
, <code>
i <samp>
, kao što ste do sada mnogo puta mogli videti na našim stranicama:
- Tag
<pre>
("preformatted"), obezbeđuje da tekst unutar taga bude prikazan u browseru - doslovno onako kako je napisan u izvornoj datoteci (podsetimo se da, inače, interpretacija HTML koda unutar tagova kao što su<p>
,<div>
i sl, podrazumeva da će znaci za prelazak u novi red, kao i višestruke uzastopne pojave ostalih whitespace znakova - biti zanemarene) - Tagovi
<code>
i<samp>
su (praktično), semantički tagovi, koji označavaju delove programskog koda (code) i simulirani rezultat izvršavanja programa u terminalu (samp)
<q> (quote)
Za označavanje citata u HTML kodu, koristi se tag <q>
(quote), semantički tag koji automatski dodaje znake navoda.
Naredni odeljak sadrži citat uokviren <q>
tagovima (koji se nalaze unutar tagova <aside>
):
<em>, <strong> i <mark>
Za posebno označavanje pojedinih reči i celina u pasusima (ili na drugim mestima), koriste se sledeći tagovi:
- <em> - naglašavanje delova teksta (naizgled deluje kao da je upotrebljen tag
<i>
) - <strong> - posebno naglašavanje delova teksta (naizgled deluje kao da je upotrebljen tag
<b>
) - <mark> - markiranje teksta bojom
<sub> i <sup>
Za zapis indeksa i eksponenata koriste se tagovi <sub>
(subscript) i <sup>
(superscript).
Sledeći koraci ....
Pre svega, ponovimo da postoje i HTML 5 tagovi koje u članku nismo navodili (kao i mnogi 'stariji' tagovi), ali, budući da naš serijal članaka o web dizajnu ne pretenduje da bude 'enciklopedija internet jezika' (već nam je namera da čitaocima približimo tematiku web dizajna i pomognemo u samostalnom kreiranju prvih sajtova), moramo biti praktični i negde ipak 'podvući granicu' (s tim što u budućnosti svakako možete očekivati još članaka na temu osnovne HTML strukture i, naravno, članke o izradi web stranica u opštem smislu).
Primere gotove stranice možete pronaći na sledećoj adresi:
Web dizajn 05 - primer.... a u sledećem članku bavićemo se responzivnim web dizajnom.