{"id":197,"date":"2019-11-19T22:32:53","date_gmt":"2019-11-19T20:32:53","guid":{"rendered":"http:\/\/skolarbbos.net\/?p=197"},"modified":"2019-12-09T09:42:25","modified_gmt":"2019-12-09T07:42:25","slug":"osnovna-struktura-html-dokumenta","status":"publish","type":"post","link":"https:\/\/skolarbbos.net\/?p=197","title":{"rendered":"Osnovna struktura HTML dokumenta"},"content":{"rendered":"<p>Osnovna struktura HTML dokumenata je univerzalna, striktno definisana i ista je za sve veb strane, bez obzira na to da li se na ekranu pojavljuju u jednostavnom ili slo\u017eenom obliku. Neki osnovni elementi zajedni\u010dki za sve HTML dokumente kreiraju tu strukturu. U osnovne elemente spadaju definicija tipa dokumenta (DTD &#8211; Document Type Definition), glavni element (zaglavlje) i telo elementa. Sve ove elemente stavili smo u na\u0161 HTML \u0161ablon u prethodnom zadatku.<\/p>\n<p>Osnovna struktura dokumenta nema nikakve veze sa stranom sadr\u017eaja. Sadr\u017eaj je ono \u0161to vidimo na strani, ali to nije ni u kakvoj vezi sa osnovnom strukturom HTML dokumenta. Kompozicija HTML dokumenta je delimi\u010dno vidljiva i nevidljiva onima koji pregledaju veb stranu.<\/p>\n<p>Svi HTML dokumenti sastoje se iz dva primarna odeljka: zaglavlja strane (gornje \u017eive kolone) i tela. Sav sadr\u017eaj sa strane, odnosno sve ono \u0161to vidite i na \u0161ta delujete nalazi se u telu.<\/p>\n<p>HTML oznake i elementi su termini koji imaju razli\u010dita zna\u010denja, ali se izme\u0111u njih u svakodnevnoj praksi ne pravi razlika. Ve\u0107ina veb dizajnera i programera vi\u0161e ne pravi razliku izme\u0111u oznaka i elemenata.<\/p>\n<p>Odeljak sa zaglavljem strane sadr\u017ei podatke koji nisu vidljivi. To je sadr\u017eaj koji korisnici ili oni koji pregledaju stranu u stvari ne vide.<\/p>\n<p>Prva linija svakog HTML dokumenta, bez obzira na to \u0161ta je jo\u0161 uklju\u010deno u dokument, mora biti definicija tipa dokumenta (Document Type Declaration), odnosno DOCTYPE Declaration ili DTD. U ranijim verzijama HTML-a, mnogi slojevi pode\u0161avanja i doterivanja HTML standarda zna\u010dili su i slo\u017eeniji i te\u017ei DTD. Me\u0111utim, u HTML5 DTD je neverovatno jednostavan. Mora biti u\u010ditan na slede\u0107i na\u010din:<\/p>\n<p><strong>&lt;! DOCTYPE html&gt;<\/strong><\/p>\n<p>Ovaj DTD \u0107e raditi i u ranijim verzijama HTML-a sa kojima \u0107ete se tako\u0111e susretati na veb stranama. DTD saop\u0161tava pretra\u017eiva\u010du da o\u010dekuje HTML dokument, a ne neki drugi markerski jezik ili drugi tip dokumenta. Zbog ove funkcije DTD-a, pre DTD-a ne sme da postoji prazan prostor odnosno prazne linije. Ovo je jako bitno, jer ukoliko pretra\u017eivao prepozna prazne linije ispred DTD-a, on \u0107e se pona\u0161ati kao da DTD-a nema i rezultati mogu biti nepredvidljivi.<\/p>\n<p>Nakon DTD-a sledi HTML element. Uz HTML element stoje po\u010detna i krajnja oznaka, tako da to izgleda:<\/p>\n<p><strong>&lt;html&gt;&lt;\/html&gt;<\/strong><\/p>\n<p><em>Svi ostali elementi HTML datoteke sadr\u017eani su u ovom elementu, koji saop\u0161tava pretra\u017eiva\u010du da je ovo HTML dokument. <\/em><\/p>\n<p><strong>&lt;head&gt;&lt;\/head&gt;<\/strong><\/p>\n<p><em>U glavnom odeljku nalaze se informacije o samom dokumentu, kao \u0161to su naslov (koji \u0107e se prikazati na naslovnoj traci pri vrhu pretra\u017eiva\u010da), bilo koji metapodatak i bilo koji stil ili skript koji se koriste u dokumentu. <\/em><\/p>\n<p><strong>&lt;<\/strong><strong>body&gt;&lt;\/body&gt;<\/strong><\/p>\n<p><em>Slede\u0107i u liniji je odeljak sa telom. Ovo je vidljivi i interaktivan sadr\u017eaj dokumenta. Sve \u0161to mo\u017eete da vidite na veb strani nalazi se u ovom delu dokumenta. Sav sadr\u017eaj i formatiranje sadr\u017eaja nalazi se u telu dokumenta.<\/em><\/p>\n<p>Pomenuli smo tagove kao osnovnu gradivnu jedinicu HTML dokumenata (stranica) i videli strukturu jednog jednostavnog dokumenta.<\/p>\n<p><strong>Elementi se sastoje od tri dela<\/strong>:<\/p>\n<ul>\n<li>po\u010detni HTML tag<\/li>\n<li>zavr\u0161ni HTML tag<\/li>\n<li>sadr\u017eaj izme\u0111u njih (neki tagovi nemaju sadr\u017eaj)<\/li>\n<\/ul>\n<p>\u010c<strong>esto se umesto re\u010di <em>element<\/em> koristi samo re\u010d <em>tag<\/em><\/strong>. U tom kontekstu se ceo element (po\u010detni tag + sadr\u017eaj + zavr\u0161ni tag) ozna\u010dava samo kao tag. Tako se mo\u017ee re\u0107i ne\u0161to poput: \u201eOtvaramo p tag, unosimo sadr\u017eaj i zatvaramo tag\u201c.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-199 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura62.jpg\" alt=\"struktura62\" width=\"452\" height=\"187\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura62.jpg 452w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura62-300x124.jpg 300w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/p>\n<ol>\n<li>Po\u010detni HTML tag<\/li>\n<li>Zavr\u0161ni HTML tag<\/li>\n<li>znak manje i znak ve\u0107e se koriste da ozna\u010de po\u010detak, odnosno kraj po\u010detnog i zavr\u0161nog taga.<\/li>\n<li>karakter ili karakteri koji ozna\u010davaju tip taga<\/li>\n<li>kosa crta (forward slash) odre\u0111uje da je to zavr\u0161ni HTML tag<\/li>\n<\/ol>\n<p>Dakle, imaju\u0107i prethodno pomenuto u vidu, svaki element po\u010dinje po\u010detnim HTML tagom, tako \u0161to pi\u0161emo znak manje, zatim jedan ili vi\u0161e karaktera koji ozna\u010davaju tip taga (sami karakteri nisu proizvoljni) i znak vi\u0161e. Zatim sledi sadr\u017eaj taga. Na kraju pi\u0161emo zavr\u0161ni HTML tag koji se sastoji od znaka manje, zatim kose crte, ponovljenih karaktera koji ozna\u010davaju tip taga, i znaka ve\u0107e. Svi, osim nekih izuzetaka prate ovo pravilo.<\/p>\n<p><strong>Osnovna pravila pisanja HTML jezika<\/strong><\/p>\n<ol>\n<li><strong> Prvo pravilo<\/strong><\/li>\n<\/ol>\n<p>Jedan tag (element) mo\u017ee obuhvatiti neograni\u010deno drugih, ali se svi ti tagovi moraju i zavr\u0161iti u okviru taga u kome su napravljeni. Pogledajmo na primeru.<\/p>\n<p>Ovaj primer je dobar:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-200 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura63.jpg\" alt=\"struktura63\" width=\"577\" height=\"25\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura63.jpg 577w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura63-300x13.jpg 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/p>\n<p>dok ovaj nije:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-201 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura64.jpg\" alt=\"struktura64\" width=\"580\" height=\"35\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura64.jpg 580w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura64-300x18.jpg 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/p>\n<p>U prvom je unutar p taga otvoren i zatvoren strong tag, a tek zatim se zavr\u0161ava i sam p. U drugom dolazi do gre\u0161ke jer su tagovi ukr\u0161teni, nije zavr\u0161en strong pre okru\u017euju\u0107eg p, \u0161to je gre\u0161ka.<\/p>\n<p>Ovakve vrste gre\u0161aka se ponekad doga\u0111aju kada se kombinuje rad sa aplikacijom za dizajniranje (WYSIWYG) i ru\u010dnog unosa HTML k\u00f4da i umeju da budu prili\u010dno te\u0161ke za lociranje u ve\u0107im dokumentima. Najbolja prevencija je pa\u017eljiv unos tagova.<\/p>\n<ol start=\"2\">\n<li><strong> Drugo pravilo<\/strong><\/li>\n<\/ol>\n<p>Svaki po\u010detni tag mora imati i zavr\u0161ni tag. Odnosno, <strong>ako po\u010dnemo odre\u0111eni element (tag), moramo ga negde i zavr\u0161iti<\/strong>. Ne smemo dozvoliti da npr po\u010dnemo h1 tag za naslov, unesemo sadr\u017eaj (tekst naslova) i samo nastavimo dalje sa paragrafima teksta. Pre paragrafa u ovom primeru moramo zavr\u0161iti (zatvoriti) h1 tag, i tek onda nastaviti dalje. Ovaj primer je dobar:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-202 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura65.jpg\" alt=\"struktura65\" width=\"450\" height=\"28\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura65.jpg 450w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura65-300x19.jpg 300w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>dok ovaj nije:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-203 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura66.jpg\" alt=\"struktura66\" width=\"406\" height=\"32\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura66.jpg 406w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura66-300x24.jpg 300w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura66-388x32.jpg 388w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><\/p>\n<p><a name=\"_Toc371714317\"><\/a><strong>Samozatvaraju\u0107i tagovi<\/strong><\/p>\n<p>Ve\u0107ina elemenata se pi\u0161e kako smo pomenuli, ali postoje i takozvani samozatvaraju\u0107i tagovi. Samozatvaraju\u0107itagovi su oni koji po\u010dinju i zavr\u0161avaju se istovremeno.<\/p>\n<p>Na primer, oznaka za prelom reda unutar paragrafa je &lt;br&gt;. Kod tog taga nema sadr\u017eaja i ako bi va\u017eila pravila od malopre, trebali bi da pi\u0161emo &lt;br&gt;&lt;\/br&gt;. Po\u0161to je ovo nepotrebno (i pri tom nepravilno), takve tagove pi\u0161emo samo kao &lt;br&gt; ili &lt;br \/&gt;.<\/p>\n<p><strong>U HTML varijanti se samozatvaraju\u0107i tagovi pi\u0161u &lt;x&gt;<\/strong> (potpuno isto kao po\u010detni tagovi, bez zavr\u0161nih), <strong>dok se u xHTML varijanti mora pisati &lt;x \/&gt;<\/strong> (\u0161to je kombinacija po\u010detnog izavr\u0161nog taga). Imaju\u0107i ovo u vidu, pogledajmo primer za tzv. normalne i samozatvaraju\u0107e tagove:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-204 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura67.jpg\" alt=\"struktura67\" width=\"533\" height=\"28\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura67.jpg 533w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura67-300x16.jpg 300w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/p>\n<p>Prime\u0107ujemo po\u010detni i zavr\u0161ni p tag, koji \u010dine p element i okru\u017euju jedan paragraf teksta. Unutar tog p taga nalazi se samozatvaraju\u0107i br tag koji ozna\u010dava da se na tom mestu prelama red.<\/p>\n<p>Kada browser nai\u0111e na problem vezano za ova dva pravila, tj nepravilan kod, on poku\u0161ava da ga ipak prika\u017ee, ali pretpostavljaju\u0107i neke detalje i ispravljaju\u0107i kod koliko mo\u017ee prilikom prikaza. Tada se mogu desiti razne nepredvi\u0111ene situacije i verovatno razli\u010dit prikaz u razli\u010ditim browserima.\u00a0HTML i xHTML se u 90% pravila poklapaju. xHTML je nadogradnja HTML seta.<\/p>\n<p><strong>Atributi HTML tagova<\/strong><\/p>\n<p>Na samim tagovima, odnosno na po\u010detnim tagovima elemenata mogu se pojaviti atributi koji sadr\u017ee dodatne informacije.<\/p>\n<p><strong>Atributi se sastoje iz dva dela: ime atributa i vrednost atributa<\/strong>. Pi\u0161u se na po\u010detnom tagu elementa i to odvojeni jednim razmakom od oznake tipa taga. Ime atributa se pi\u0161e malim slovima, postavlja se znak jednakosti, a zatim vrednost atributa pod znacima navoda. Razmaci su zabranjeni unutar konstrukcije atributa. Pogledajmo primer:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-205 aligncenter\" src=\"http:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura68.jpg\" alt=\"struktura68\" width=\"586\" height=\"71\" srcset=\"https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura68.jpg 586w, https:\/\/skolarbbos.net\/wp-content\/uploads\/2015\/10\/struktura68-300x36.jpg 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"Osnovna struktura HTML dokumenata je univerzalna, striktno definisana i ista je za<a class=\"moretag\" href=\"https:\/\/skolarbbos.net\/?p=197\"> &lt;b&gt;[Nastavi sa \u010ditanjem...]&lt;\/b&gt;<\/a>","protected":false},"author":1,"featured_media":198,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html"],"_links":{"self":[{"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=197"}],"version-history":[{"count":2,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":1496,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/posts\/197\/revisions\/1496"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=\/wp\/v2\/media\/198"}],"wp:attachment":[{"href":"https:\/\/skolarbbos.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skolarbbos.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}