Git Product home page Git Product logo

lekce_10's Introduction

Tvořím Web od A do Z: Podklady pro 10. lekci

Příklady

Formuláře

Formuláře tvoří oblast webdesignu, kde se spolu nejblíže potkávají uživatelé, kódéři (frontendisti) a programátoři (backendisti). Protože každý uživatel internetu dříve nebo později narazí na formulář, ani my se jim nemůžeme vyhnout. A že na formulář narazíte na internetu záhy, dokládá tato stránka – ano i tak vypadá formulář. Formuláře znáte také z přihlašovacích stránek, kam vyplňujete své uživatelské jméno a heslo. Prostřednictvím formulářů přidáváte komentáře na Facebooku (nebo jinde), tweetujete anebo třeba nahráváte fotku.

Příklad jednoduchého formuláře.

<form action="prihlaseni.py" method="POST">
    <label for="username">Uživatelské jméno</label>
    <input id="username" type="text" name="user" required>
    <label for="pwd">Heslo</label>
    <input id="pwd" type="password" name="password" required>
    <button>Přihlásit</button>
</form>

Můžeme z něj vyčíst následující: po uživateli chceme aby vyplnil své uživatelské jméno a heslo, oba údaje jsou povinné (atribut required). Údaje z formuláře se odešlou do souboru prihlaseni.py, který se nachází v téže složce jako soubor s přihlašovacím formulářem (zpracovávat je bude programovací jazyk Python – přípona .py).

Zobecnit tyto informace můžeme následovně: jazyk HTML je jazykem značkovacím, a neumí tudíž zpracovat formulářová data, o to se musí postarat nějaký programovací jazyk (JavaScript, Java, PHP, Python). Značka form má proto atribut action, jehož hodnotou je cesta (popřípadě celá URL) k souboru s obslužným programem. Pokud chceme data z formuláře odeslat skrytě, zvolíme metodu POST (prostřednictvím atributu method na značce form). Výchozí metoda GET totiž připojí formulářová data přímo k URL z action. Ta jsou pak viditelná, a tudíž snado zcizitelná.

Více o formulářích na výborně zpracovaném Marksheet.io (anglicky). Zde jen pár poznámek.

Input

Základním stavebním kamenem formulářů jsou prvky input. Pomocí atributu type ovlivníme nejen jeho výslednou podobu (checkbox, radio, range, color), ale i to, jaké uspořádání bude mít klávesnice zobrazená na dotykovém zařízení. Užitím vhodného typu vstupního pole tak můžeme návštěvníkovi naší stránky významnou měrou usnadnit práci s formulářem. A to by nám mělo jít v první řadě.

Nenuťte mně přemýšlet aneb přístupnost

Vyplňování formulářů vyžaduje od uživatelů jisté úsilí, které bychom měli co nejvíce snížit. Nenuťte mně přemýšlet říká v originále Steve Krug a tím shrnuje do jednoduché věty velmi komplexní zadání pro kódéry formulářů. Protože udělat něco jednoduchého k užívání může být pěkně složité. A naopak zesložitit něco prostého se dá velmi jednoduše. Proto při kódování formulářů buďte obezřetné a dbejte základních pravidel.

  1. Vstupní pole (input) je vždy doprovázeno popiskem label. Obě jsou pak propojena přes shodnou hodnotu atributu for (u label) a id (u input). Výjimkou je input typu hidden.
  2. Pečlivě volte typ vstupního pole (atribut type). Vhodným použitím uživatelům vyplňování zpříjemníte, naopak nevhodným je pěkně otrávíte.
  3. Pokud žádáte nějaké údaje (datum narození, telefon), vysvětlete proč je chcete (datum narození, kvůli statistice; telefon, abychom vám mohli zavolat v případě problému) a jak je mají uživatelé zadat (datum narození – stačí nám rok a měsíc, telefonní číslo v mezinárodním formátu).
  4. Chybně vyplněná pole označte a hlavně vysvětlete, v čem je chyba.

Focus

Prvek na stránce, který v danou chvíli přijímá vstup z klávesnice, má focus. Focus tak mohou získat jen některé prvky, konkrétně formulářové prvky a odkazy. Po těchto focusovatelných prvcích se lze pohybovat pomocí klávesy Tab (při současném stisku Shift směrem vzad). Mezerníkem nebo klávesou Enter/Return pak spustíte na daném prvku akci (zaškrtnete políčko, stisknete tlačítko, prokliknete odkaz).

Vyplňte si cvičný formulář, hledejte:

  • zpáteční letenku
  • do Melbourne
  • odlet 28. září 2020
  • návrat 8. října 2020
  • místo u okénka
  • nechcete spam

Pozor, myší to nejde ☺.


Tabulky v HTML

Tabulky se v HTML vytvářejí dost těžkopádně, přesto je třeba se s nimi seznámit, protože kromě výpisu tabulkových dat se stále hojně využívají v tvorbě HTML e-mailů.

<table>
    <thead>
        <tr>
            <th>záhlaví 1. sloupce</th>
            <th>záhlaví 2. sloupce</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1. řádek v 1. sloupci</td>
            <td>1. řádek v 2. sloupci</td>
        </tr>
        <tr>
            <td>2. řádek v 1. sloupci</td>
            <td>2. řádek v 2. sloupci</td>
        </tr>
    </tbody>
</table>

Vnitřní struktura tabulky kopíruje strukturu prvku html, obsahuje prvky thead, tbody v nichž se nacházejí samotné řádky tabulky (tr). Do řádků tabulky se umisťují výhradně prvky th (v záhlaví, thead) nebo td (uvnitř tbody), ty pak představují jednotlivé buňky tabulky.

Pozor, uvnitř prvku td (resp. th) mohou být zanořeny libovolné další prvky (s výjimkou html, head a body), a to včetně dalších tabulek (kdysi se tak stavěly webové stránky…)!

Vytváření HTML tabulek ti může usnadnit nástroj Tableizer!. Zkopíruješ do něj tabulku vytvořenou v pohodlí tabulkového editoru (Excel, Google Spreadsheet) a on ti vygeneruje HTML kód.

Slučování buněk napříč sloupci či řádky pěkně popsal již před lety Dušan Janovský na svém JakPsatWeb.cz.

lekce_10's People

Contributors

kout avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.