Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Marvar
Člen
Avatar
Marvar:11.1.2017 21:02

Chtěl bych se zeptat, jestli neexistuje něco jako oběktově orientované html/css ? Například když mám <nav> danou v nějakém <div>, jestli to nemůžu uložit do nějaké funkce ve vedlejším souboru. Potom bych už jen funkci zavolal - kód by se stal přehlednějším.

 
Odpovědět
11.1.2017 21:02
Avatar
Neaktivní uživatel:11.1.2017 21:03

To, co popisuješ, moc nevypadá na OOP.

Nahoru Odpovědět
11.1.2017 21:03
Neaktivní uživatelský účet
Avatar
Marvar
Člen
Avatar
Odpovídá na Neaktivní uživatel
Marvar:11.1.2017 21:07

Znouvupoužitelnost kódu souvisí s OOP.

 
Nahoru Odpovědět
11.1.2017 21:07
Avatar
Neaktivní uživatel:11.1.2017 21:12

V podstatě jo, ale uložit si generování HMTL tagů do funkce, to opravdu není objektově orientované programování.

Nahoru Odpovědět
11.1.2017 21:12
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:11.1.2017 21:14

Nic takového neznám, ale pokud chceš, tak v PHP si můžeš kompletně naprogramovat generátor HTML kódu, který Ti pak ušetří spoustu času a kód bude přehlednější.

Editováno 11.1.2017 21:15
Nahoru Odpovědět
11.1.2017 21:14
Neaktivní uživatelský účet
Avatar
Marvar
Člen
Avatar
Marvar:11.1.2017 21:21

Jinak řečeno - jde v html souboru odkazovat na html kód v jiném xxx.html ?

 
Nahoru Odpovědět
11.1.2017 21:21
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Marvar
Jakub Žák:11.1.2017 21:27

HTML není programovací jazyk, proto se nebavíme o žádném OOP ani ničem podobném. HTML je hypertextový značkovací jazyk - pomocí značek udává, jak bude výsledný dokument vypadat.

HTML se ovšem dnes téměř vždy generuje něčím automaticky - tam už se bavíme o programování. V PHP, Javě, .Net nebo něčem takovém máme na serveru naprogramovaný program/skript, který generuje výsledné HTML a odesílá ho klientovi/proh­lížeči. Tam lze samozřejmě OOP (stejně jako většinu jiných paradigmat) použít lze - dokonce se již dnes téměř výhradně používá OOP (např. MVC).

Druhý způsob je generování HTML na straně klienta, např. (nebo spíš jedině) Javascriptem. Potom se HTML generuje až na straně klienta v prohlížeči. Zde se také používá OOP (např.MVC).

Nahoru Odpovědět
11.1.2017 21:27
Kuba je ajťák. Buď jako Kuba.
Avatar
Marvar
Člen
Avatar
Odpovídá na Jakub Žák
Marvar:11.1.2017 21:41

Když mám v jednom html kus kódu, mohu na něj v druhém odkázat tak, aby se kód neotevřel v prohlížeči, ale použil jako část toho druhého ?

Editováno 11.1.2017 21:42
 
Nahoru Odpovědět
11.1.2017 21:41
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Marvar
Jakub Žák:11.1.2017 21:45

Zkus nějak lépe popsat, čeho přesně chceš docílit.

Dle situace se dá použít iframe, AJAX, PHP, prostě podle toho co to je, kde to je, v čem to je, co to dělá...

(Pokud máš namysli přímo "includovat" HTML pomocí HTML, tak ne, nejde to, viz můj předchozí příspěvek.)

Editováno 11.1.2017 21:46
Nahoru Odpovědět
11.1.2017 21:45
Kuba je ajťák. Buď jako Kuba.
Avatar
Marvar
Člen
Avatar
Marvar:11.1.2017 22:01
HTML1 soubor
<!Doctype HTML>

<html>

<head>
</head>

<body>
<iframe url:("html2")>
</body>

</html>


HTML2 soubor
<nav>
        <ul>
                <li>
                <li>
                <li>
        </ul>
<nav>

Html1 je moje stránka. Html2 je stažené menu (dočetl jsem se něco o tagu <iframe>, jak píšeš ty). Prostě se dvojka použije v jedničce.

 
Nahoru Odpovědět
11.1.2017 22:01
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Marvar
Jakub Žák:11.1.2017 22:04

No a právě k takovýmto věcem úplně v počátku vzniklo PHP. Iframe se na to v žádném případě nehodí.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.1.2017 22:04
Kuba je ajťák. Buď jako Kuba.
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Marvar
Jakub Žák:11.1.2017 22:12

Pokud bys to chtěl udělat v PHP, tak to bude vypadat nějak takto:

html1.php

<!Doctype HTML>
<html>
  <head>
  </head>
  <body>
    <?php
      include("html2.html");
    ?>
  </body>
</html>

Doporučuji projít seriál zde na webu, v kategorii PHP.

Editováno 11.1.2017 22:13
Nahoru Odpovědět
11.1.2017 22:12
Kuba je ajťák. Buď jako Kuba.
Avatar
Jindřich Máca
Tvůrce
Avatar
Jindřich Máca:12.1.2017 13:51

Zdravím všechny!

Vím, že diskuse je již uzavřena s uznaným řešením a rozhodně s uvedenými názory souhlasím, ale přece jen mi to nedá nedoplnit nějakou tu informaci, která zde, čište dle mého názoru, chybí. :)

Otázka hrubě přeložena zněla: Jak poskládat HTML strukturu stránky tak, aby to bylo přehlednější a jestli k tomuto účelu existuje nějaké "objektové HTML"? Všechny odpovědi zde se pak zabývají tím, jak se vlastně dnes HTML stránka jako taková vygeneruje, ať už na straně klienta nebo serveru, a jak již jsem psal, vše je naprosto korektní. Pouze to úplně neodpovídá na původní myšlenku otázky.

Odpověď na tuto otázku je ano, existuje něco jako "objektové HTML". Dokonce je to i poměrně aktuální téma, kterým se zabývá organizace W3C (World Wide Web Consortium), jež má na starosti schvalování standardů pro tvorbu webových stránek. Odpovědí na tuto otázku jsou tedy tzv. webové komponenty (Web Components).

O co jde. Jedná se o ještě ne v plném rozsahu schválený standard, který ale již dnes většina populárních prohlížečů ve svých novějších verzích podporuje. Myšlenkami je pak velice podobný právě OOP. Jde o to, rozdělit web do jednotlivých menších celků, které mají samostatnou "skrytou" HTML strukturu, vlastní CSS a vlastní funkčnost, implementovanou z pravidla pomocí JavaScriptu. Těmto celkům se pak říká komponenty, přičemž jejich vzhled a funkčnost je izolována od zbytku stránky, logicky se mohou skládat a dokonce od sebe mohou i do jisté míry dědit. Další výhodou, stejně jako u OOP, je také znovupoužitelnost, ať už vlastních nebo cizích, již existujících, komponent. Zkrátka splňují většinu principů OOP i když trochu po svém.

Více informací jsi jistě zvládnete dohledat sami, já zde jen ještě uvedu dva takové příklady související s knihovnami, které Vám dovolí standard webových komponent snadno použít třeba i ve Vašich projektech, aby jste se případně měli od čeho odpíchnout. ;)

Prvním příkladem, který rozhodně stojí za zmínku, je Polymer Projekt, který před nedávnem přešel do verze 1.0. Tento projekt je sponzorovaný Googlem, který právě jeho prostřednictvím začal distribuovat svůj Material Design pro webovou platformu. Určitě tento design poznáte z většiny nových aplikací od Googlu. Dobré je asi ještě zmínit, že tato knihovna, která je mimochodem k dispozici ve verzi jak pro JavaScript, tak pro Dart, umí mimo jiné "simulovat" tento standart i ve starších prohlížečích, včetně např. starší verze Internet Exploreru.

Druhou takovou knihovnou, opět sponzorovanou Googlem, je Angular 2, a to opět jak ve své verzi pro JavaScript, tak i pro Dart. Ve své druhé verzi totiž Angular nahradil předešlé "directivy" právě za webové komponenty. Tzn. že kód pro danou část stránky se nyní již nedosazuje do jednotné struktury v podobě vygenerovaného HTML, nýbrž se zde dosadí pouze odpovídající webová komponenta. A opět i zde můžete pracovat s již předpřipravenými komponentami ve stylu Material Designu.

Na otázku co zvolit, odpovím tak, že pokud chcete svůj web generovat na straně serveru a pouze na některé části použít webové komponenty, asi sáhnete spíše po Polymeru. Pokud však chcete kompletní frontendový MVC framework pouze s napojením na backendové API, tou lepší volbou pro Vás bude pravděpodobně Angular 2. A jenom připomínám, že se nejedná o propagaci, pouze o příklady aktuálně nepoužívanějších knihoven, které pracují se standardem webových komponent.

Myslím, že tohle je více než vyčerpávající, takže tady skončím. Pokud by jste někdo měl nějaké další dotazy, tak se neváhejte zeptat.

 
Nahoru Odpovědět
12.1.2017 13:51
Avatar
DooM
Tvůrce
Avatar
Odpovídá na Marvar
DooM:13.1.2017 13:20

Jade tohle umí.

Nahoru Odpovědět
13.1.2017 13:20
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.