Pohodový přivýdělek, PHP a MySQL, 350 Kč/hod. z domova. Chceš? Klikni pro více info.

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

Unicorn College ONEbit hosting 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 1610x (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?
26 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 (20)

Avatar
Tomáš Kala
Člen
Avatar
Tomáš Kala:3.1.2017 23:05

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

Editováno 3.1.2017 23:06
 
Odpovědět 3.1.2017 23:05
Avatar
Odpovídá na Tomáš Kala
Tyler Hardstone:1.2.2017 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.2.2017 21:00
Give me liberty, or give me death
Avatar
Richard Luko
Člen
Avatar
Richard Luko:4.2.2017 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.2.2017 15:54
S Bohom je všetko možné
Avatar
Odpovídá na Richard Luko
Michal Štěpánek:4.2.2017 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.2.2017 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.7.2017 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.7.2017 13:42
Avatar
Veronika
Člen
Avatar
Odpovídá na Veronika
Veronika:17.7.2017 13:49

Tak problém vyřešen.

 
Odpovědět 17.7.2017 13:49
Avatar
wartkor
Člen
Avatar
wartkor:17.12.2017 10:10

Ok ksyž si chci dát ten MailForm tak kam mám zadat svůj email na který mi to pošle přes to html ??

Odpovědět 17.12.2017 10:10
Káždý jednou začal a neuspěl hned na poprvé
Avatar
LittleBigOwl
Redaktor
Avatar
Odpovídá na wartkor
LittleBigOwl:17.12.2017 12:14

Ahoj, ono to takto nefunguje. Veľmi to všetko zjednoduším, aby si mal celkový obraz.
Tvorba webu sa dá rozdeliť na dve základné časti: Fronend a Backend.

  • Frontend je to, s čím prichádza do kontaktu užívateľ. Tu patria pojmy ako HTML, CSS, JavaScript (aj keď už máme aj serverové technológie postavené na JavaScripte, napr. node.js).
  • Backend, to sú práve rôzne serverové a databázové technológie tvorené v jazykoch ako PHP, ASP.NET, Ruby, Java, Python, ... a databázy ako MySQL, SQLite, Microsoft SQL PostgreSQL, MongoDB. Tuto na itnetwork.cz nájdeš rôzne kvalitné materiály ak budeš mať záujem sa niečo o tom naučiť.

Tento tutoriál je zameraný na Frontend, konkrétne na HTML a CSS, takže len na to, ako vytvoriť to, s čím bude komunikovať užívateľ s daným webom. Ak chceš poslať email, tak to sa rieši pomocou backend technológií (v tutoriále o PHP to je všetko popísané). HTML samo o sebe nevie poslať email, ono len slúži na zobrazenie obsahu stránky.
Dúfam, že sa mi podarilo to trochu objasniť :)

Odpovědět 17.12.2017 12:14
Act as if it was Impossible to Fail
Avatar
Vojtěch Perník:5. ledna 17:58

chtěl bych se zeptat:

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

?hash=kod-vaseho-mailformu mám upravit na [email protected]­il.cz?

Editováno 5. ledna 17:59
 
Odpovědět 5. ledna 17:58
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Vojtěch Perník
IT Man:5. ledna 18:00

https://www.itnetwork.cz/…s-web-zdarma
Nene, tady si musíš vygenerovat ten mailform a dostaneš tam iframe URL, kterou bys měl použít.

Odpovědět 5. ledna 18:00
Cokoliv a kdokoliv může jednou uspět.
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 30. Zobrazit vše