Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

15. díl - Tvorba podstránek a kontaktní formulář

HTML a CSS Statický web Tvorba podstránek a kontaktní formulář American English version English version

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Fixní menu a pozicování v CSS, jsme dokončili layout, tedy rozvržení stránky. V dnešním HTML/CSS tutoriálu začneme dokončovat jednotlivé podsekce našeho webu tak, aby byl připravený na nahrání na webhosting.

Dnes se nebudeme učit nic nového, pouze dokončíme kontaktní stránku. Podstránky domů, dovednosti a kontakt máme již rozpracované.

Odkazy v layoutu

Otevřeme si naposledy soubor rozlozeni.html a do navigačního menu přidáme odkazy na jednotlivé podstránky:

<ul>
        <li class="aktivni"><a href="index.html">Domů</a></li>
        <li><a href="omne.html">O mně</a></li>
        <li><a href="dovednosti.html">Dovednosti</a></li>
        <li><a href="reference.html">Reference</a></li>
        <li><a href="kontakt.html">Kontakt</a></li>
</ul>

Vytvoření podstránek

Asi si kladete otázku, jakým způsobem docílíme toho, aby se všechny podstránky na našem webu zobrazovaly v námi vytvořeném layoutu.

Rámce

V minulosti se k tomuto účelu využívaly rámce (tag <frameset>), které umožňovaly layout definovat pouze jednou a podstránky se zobrazovaly v rámcích. Tento způsob však představoval mnoho problémů zejména pro internetové vyhledávače, proto byly rámce ve verzi HTML 5 odstraněny a označeny za nevalidní. V dnešní době je velkou chybou rámce používat.

Tabulkový layout

Druhým způsobem, bohužel o nic šťastnějším, je použití tabulky k vytvoření layoutu. Tabulka má totiž ve vykreslování buněk mírné odlišnosti a umožňuje vložení řádkového rámu (<iframe>) tak, aby se jeho výška přizpůsobovala výšce okna. Do rámu je následně možné zobrazovat danou podstránku webu. Použití tabulky je však v layoutu velmi nesprávné a nesémantické, protože tabulka slouží pro označení tabulky, nikoli celé stránky. Navíc dochází opět k problémům s rámcem ve vyhledávačích.

Těmito problémy je konkrétně to, že celé stránky běží na jedné URL s rámem. Na podstránky se nelze podle adresy odkazovat a pokud ano, zobrazí se ve špatné šířce a bez layoutu. S rámy tedy nemůžete někomu říci: podívej se na mé dovednosti, tady je odkaz: http://adresa.cz/dovednosti.html. Musíte mu říci: jdi na adresa.cz a klikni na dovednosti. Asi si dokážete představit, že při větším počtu podstránek je to poněkud nepraktické. Rovněž vaše SEO (optimalizace webu pro vyhledávače) nebude nic moc.

Serverový jazyk

Správné řešení je použití dalšího programovacího jazyka, který běží na straně serveru a který nám obsah článku do podstránek sám vkládá. Nebo naopak do podstránek vkládá layout. Takovým jazykem je např. velmi používané PHP, na které však zatím nemáme zkušenosti. Můžete si o něm přečíst v příslušné sekci až web dokončíme, ale nyní na něj ještě není ten pravý čas.

Důvodem vysvětlení této teorie jsou zastaralé tutoriály na internetu, které učí nováčky používat rámce nebo tabulkou pro layout. Nyní víte, že se to už pár let nedělá :)

Kopírování

Asi jste si všimli, že ani jeden z výše zmíněných způsobů zatím nekoresponduje s layoutem, který jsme si vytvořili. Naše řešení bude prosté, layout jednoduše nakopírujeme pro každou podstránku. Každá stránka našeho webu tedy v sobě bude mít ten samý layout, ale v něm jiný obsah. Kopírování layoutu do více souborů je poněkud nepraktické, ale zatím je to pro nás nejschůdnější cesta, která je validní a na podstránky se lze odkazovat.

Z naší složky ze stránkou vymažeme soubor index.html. Soubor rozlozeni.html nyní přejmenujme na index.html. Tím máme první podstránku. Již víme, že index.html se jmenuje stránka, která se zobrazí ve chvíli, když na web přijdeme. Tedy stránka, domovská neboli úvodní.

Podstránky

Pojďme tedy upravit stávající podstránky webu tak, aby obsahovaly layout. Začněme stránkou kontaktní.

Kontakt

Stránku kontakt.html upravíme tak, aby v ní byl layout a uvnitř <section> obsah původní stránky kontakt.html. Nezapomeňte změnit i titulek v hlavičce stránky, nadpis v hlavičce článku a nastavit třídu aktivni položce kontakt v menu.

Kontaktní formulář

Pro registrované členy nabízí ITnetwork jednoduchý kontaktní formulář, který si můžete umístit na své stránky. Formulář funguje tak, že do něj návštěvník zadá zprávu a on vám ji odešle na email. Službu najdete v sekci služby pod názvem MailForm, jistě se na vaše nové stránky bude hodit. Po vytvoření formuláře získáte kód, který si do HTML vložíte.

Výsledná stránka kontakt.html může vypadat třeba takto:

<!DOCTYPE html>
<html lang="cs-cz">

        <head>
                <meta charset="utf-8" />
                <link rel="stylesheet" href="styl.css" type="text/css" />
                <title>Kontaktujte mě</title>
        </head>

        <body>
                <header>
                        <div id="logo"><h1>HoBi</h1></div>
                        <nav>
                                <ul>
                                        <li><a href="index.html">Domů</a></li>
                                        <li><a href="omne.html">O mně</a></li>
                                        <li><a href="dovednosti.html">Dovednosti</a></li>
                                        <li><a href="reference.html">Reference</a></li>
                                        <li class="aktivni"><a href="kontakt.html">Kontakt</a></li>
                                </ul>
                        </nav>
                </header>

                <article>
                        <div id="centrovac">
                                <header>
                                        <h1>Kontakt</h1>
                                </header>

                                <section>
                                        <p>
                                        <img src="obrazky/email.png" alt="email" class="vlevo" />
                                        Pokud mi chcete něco sdělit, napište mi email na <strong>hobi (zavináč) hobi (tečka) cz nebo využijte formuláře níže</strong>.
                                        </p>

                                        <p class="centrovany">
                                                <iframe frameborder="0" scrolling="no" width="500px" height="220px"
                                                src="http://www.itnetwork.cz/service/mail_form.php?hash=kod-vaseho-mailformu">
                                                </iframe>
                                        </p>
                                </section>
                                <div class="cistic"></div>
                        </div>
                </article>


                <footer>
                        Vytvořil &copy;HoBi 2013 pro <a href="http://itnetwork.cz">ITNETWORK.CZ</a>
                </footer>
        </body>
</html>

Všimněte si použití třídy vlevo k zarovnání obrázku emailu doleva a třídy centrovany k vycentrování rámce se službou. Tag <iframe> je pro nás nový, umožňuje do stránky vložit rámec s jinou podstránkou. Důležitý je zejména atribut src, kam umístíme adresu podstránky. Iframe (jako inline frame = řádkový rámec) není narozdíl od framesetu a frame nevalidní a můžeme ho používat.

Za výsledek se určitě nemusíme stydět:

Kontaktní formulář v HTML

V příští lekci, Stylování tabulek a galerie fotek v HTML a CSS, dokončíme sekci reference a dovednosti. Web v aktuálním stádiu naleznete jako vždy ke stažení v příloze.


 

Stáhnout

Staženo 1467x (86.7 kB)
Aplikace je včetně zdrojových kódů v jazyce HTML a CSS

 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
17 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Miniatura
Předchozí článek
Fixní menu a pozicování v CSS
Miniatura
Všechny články v sekci
Webové stránky krok za krokem
Aktivity (4)

 

 

Komentáře
Zobrazit starší komentáře (16)

Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:21.1.2016 20:02

U iframe máš pevně danou výšku (height="220px"). Zadej tam větší číslo.

(Mimochodem, u HTML atributů, pokud jsou jednotkou pixely, tak se to píše bez toho „px“ - takže jenom height="230" nebo klidně bez uvozovek height=230.)

 
Odpovědět  +1 21.1.2016 20:02
Avatar
Tomáš Raibr:10.6.2016 18:22

zdravím, u kontaktního formuláře mám stále položky "tvůj email: a Aktuální rok...."
vedle sebe a ne nad sebou jako v příkladu.

Upravoval jsem jak width, tak height a bez efektu, dík za radu

 
Odpovědět 10.6.2016 18:22
Avatar
Bája
Člen
Avatar
Bája:30.6.2016 19:08

Dobrý den, chci se zeptat, šly by udělat podstránky podstránek? Děkuji za radu.

 
Odpovědět 30.6.2016 19:08
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Raibr
David Čápka:7.9.2016 15:26

Díky, byla tam rozhozená šablona, již je to v pořádku.

Odpovědět 7.9.2016 15:26
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Tomáš Kala
Člen
Avatar
Tomáš Kala:3. ledna 23:05

Ahoj, šlo by nějak zvětšit ten kontaktní formulář?

Editováno 3. ledna 23:06
 
Odpovědět 3. ledna 23:05
Avatar
Odpovídá na Tomáš Kala
Tyler Hardstone:1. února 21:00

Myslim ze by si musel mat zdrojovy kod daneho formularu a tam by si vedel zmenit pocet riadkov danej textarea (tuto mas preddefinovane 4). Tym, ze toto je miniaplikacia a mas iba link, tak s tym nevies spravit asi nic. Takze bud sa s tym zmieris, alebo si vytvoris vlastny formular s odosielanim na mail.

Aby si bol viac v obraze, toto je kod ku formularu schovanemu pod linkom, kde sa uz da pracovat s parametrami, no samozrejme tam chybaju funkcie ako odosielanie na mail, kontrola roku ...

<html lang="cs-cz" dir="ltr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>

    <body style="font-size: 16px; font-family: Times New Roman;">

        <div style="width: 500px;">
                <form action="" method="post">
                <table style="width: 500px;">
                        <tr>
                        <td>Tvůj email:</td>
                        <td><input type="email" name="email" placeholder="Zadejte váš email" value="" style="width: 213px;" /></td>
                    </tr>
                    <tr>
                        <td>Aktuální rok (spam kontrola): </td>
                        <td><input type="text" name="year" placeholder="Zadejte aktuální rok" style="width: 213px;" /></td>
                    </tr>
                </table>


                <br />
                <textarea name="content" rows="4" style="width: 435px;"></textarea><br />
                <input type="submit" name="submit" value="Odeslat" style="display: block; width: 120px; margin: auto auto;"/>
            </form>
                <span style="font-size: 0.8em;">Miniaplikace od <a href="http://www.itnetwork.cz" target="_blank" >itnetwork.cz</a></span>
        </div>

    </body>
</html>

Ak sa mylim, opravte ma.

Odpovědět 1. února 21:00
Give me liberty, or give me death
Avatar
Richard Luko
Člen
Avatar
Richard Luko:4. února 15:54

Takže mám pár otázok ( asi budú primitívne, ale zaujíma ma to).

  1. Stránku mám zatiaľ uloženú len na na lokálnom disku - po odolsaní testovacieho emailu mi žiaden nepríde. Predpokladám správne, že je to spôsobené tým ?
  2. Po odoslaní testovacieho "emailu" mi celý kontaktný formulár zmizne. Neobjaví sa žiadna hláška o odoslaní emailu, ani nič podobné, proste prázdny priestor ? Je to takto v poriadku ? Aby som ho tam opäť videl, je potrebné refreshnúť stránku.
Odpovědět 4. února 15:54
S Bohom je všetko možné
Avatar
Odpovídá na Richard Luko
Michal Štěpánek:4. února 22:18

ad 1) Ne tím to není
ad 2) V části formu

<form action="..."...

Musíš mít akci, která odeslání mailu provede. Buď na jiné stránce, nebo i na té samé musíš mít script, který zprostředkuje odeslání mailu přes tebou nastavený SMTP server a zároveň tam nastavíš, jak se má stránka chovat (co se má zobrazit) po odeslání mailu.

Odpovědět  +1 4. února 22:18
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Veronika
Člen
Avatar
Veronika:17. července 13:42

Ahoj lidičky, mám problém a to s odkazy.

Když jsem na stránce ,,O mně'' a kliknu na ,,Dovednosti'', tak se mi to odkáže bez problému, ale jakmile to udělám opačně, tak mi to píše, že stránka nebyla nalezena...nevíte co s tím? Možná je to banalita, ale už si opravdu nevím rady.

 
Odpovědět 17. července 13:42
Avatar
Veronika
Člen
Avatar
Odpovídá na Veronika
Veronika:17. července 13:49

Tak problém vyřešen.

 
Odpovědět 17. července 13:49
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 10 zpráv z 26. Zobrazit vše