Stylujeme formulář v CSS3
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Stylujeme formulář v CSS3Stylujeme formulář v CSS3

 

Stylujeme formulář v CSS3

Google       Google       21. 8. 2010       50 858×

Tvorba stylového a profesionálně vypadajícího formuláře typicky vyžaduje použití nějakých obrázků (a možná i JavaScriptu). Nicméně s CSS3 je nyní mnohem snazší vytvořit pěkné efekty, které nevyžadují použití obrázků a přitom vypadají čistě a elegantně.

V tomto tutoriálu budeme moci spatřit celou škálu různých novinek, které CSS3 přináší – vytvoříme si nějaké ty barevné přechody, přidáme stíny, zaoblené rohy a také pár jednoduchých animačních efektů.

Podívejme se, jak by měl vypadat výsledek našeho snažení:

Vytváření HTML struktury

Chcete-li již konečně začít, vytvořte si nový HTML dokument a přidejte do body následující kód:

<form action="#"> 
 
        <fieldset id="user-details">			
 
	    <label for="name">Name:</label>
	    <input type="text" name="name" value="" /> 
 
	    <label for="email">Email:</label> 
	    <input type="email" name="email" value=""  /> 
 
	    <label for="phone">Phone:</label> 
	    <input type="text" name="phone" value=""  /> 
 
	    <label for="website">Website:</label> 
	    <input type="url" name="website" value=""  /> 
 
	    </fieldset> <!--end user-details-->
 
	    <fieldset id="user-message">
 
	    <label for="message">Your Message:</label> 
	    <textarea name="message" rows="0" cols="0"> </textarea>
 
	    <input type="submit" value="Submit Message" name="submit" class="submit" />	
 
	    </fieldset> <!-- end user-message -->
 
</form>

Zatím je to vcelku jasné – vytváříme jednoduchý formulář, který obsahuje dva kontejnery: jeden, který zobrazuje vstupní pole pro detaily uživatele (#user-details), a druhý, který zobrazuje textové pole, kam uživatel může napsat svou zprávu (#user-message).

Nyní přidejte do hlavičky dokumentu následující kód:

<link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz' rel='stylesheet' type='text/css' />

Tato část zdrojáku vám dá k dispozici pěkný font z Google Fonts directory – ke kterému samozřejmě následně přidáme nějaké to základní stylování:

* { margin: 0px; padding: 0px; }
 
body { 
    margin: 0 auto; 
    background: #f5f5f5; 	
    color: #555;	 
    width: 800px; 
 
    /* odkaz na font Yanone Kaffeesatz */
    font-family: 'Yanone Kaffeesatz', arial, sans-serif;
}
 
h1 { 
    color: #555; 
    margin: 0 0 20px 0; 
}	
 
label {	
    font-size: 20px;
    color: #666; 
}
 
fieldset { border: none; }
 
#user-details { 
    float: left;
    width: 230px; 
}
 
#user-message { 
    float: right;
    width: 405px;
}
 
textarea {		
    width: 390px; 
    height: 175px; 		 		
}

Kouzlíme s CSS3

Nyní se pustíme do stylování samotného formuláře – do každé části přidáme standardní CSS kód a vysvětlíme si CSS3 kód, který to celé bude pohánět:

form { 
    float: left;
    border: 1px solid #ddd; 
    padding: 30px 40px 20px 40px; 
    margin: 75px 0 0 0;
    width: 715px;
    background: #fff;
}

Pokud si doposud napsaný kód otevřete v prohlížeči, mělo by na vás vyskočit něco jako:

Teď si přidáme zaoblené rohy a stínované pozadí – to už se bez pomoci CSS3 neobejdeme. Přidejme proto následující kód na konec našeho elementu form:

form {
 
...
 
/* -- CSS3 - define rounded corners -- */	
-webkit-border-radius: 10px;
-moz-border-radius: 10px; 
border-radius: 10px;
 
/* -- CSS3 - create a background gradient -- */
background: -webkit-gradient(linear, 0% 0%, 0% 40%, from(#EEE), to(#FFF)); 
background: -moz-linear-gradient(0% 40% 90deg,#FFF, #EEE); 
 
/* -- CSS3 - add a drop shadow -- */
-webkit-box-shadow:0px 0 50px #ccc;
-moz-box-shadow:0px 0 50px #ccc; 
box-shadow:0px 0 50px #ccc;
 
}

V kódu uvedeném výše je prefix „-moz“ použit k tomu, aby zaměřil prohlížeče s jádrem založeným na Gecku (Firefox a Flock), zatímco prefix „-webkit“ má na starosti prohlížeče jako Chrome či Safari.

Nyní by náš výtvor měl vypadat nějak takto:

Jak můžete sami vidět, s pár jednoduchými řádky CSS3 kódu jsme již nyní zlepšili vzhled našeho formuláře. Teď ještě přidáme kód pro elementy input a textarea:

input, textarea { 		
    padding: 8px; 
    margin: 4px 0 20px 0; 
    background: #fff; 
    width: 220px; 
    font-size: 14px; 
    color: #555; 
    border: 1px #ddd solid;
}

Chceme jednoduše ke každému jednotlivému elementu input přidat stín a využít tzv. CSS3 transition effect tak, že nám pozadí ztmavne, kdykoliv na input/textarea najedeme. K tomu budeme potřebovat následující řádky:

input, textarea {
 
...
 
/* -- CSS3 Shadow - create a shadow around each input element -- */ 
-webkit-box-shadow: 0px 0px 4px #aaa;
-moz-box-shadow: 0px 0px 4px #aaa; 
box-shadow: 0px 0px 4px #aaa;
 
/* -- CSS3 Transition - define what the transition will be applied to (i.e. the background) -- */		
-webkit-transition: background 0.3s linear;					
}

Přechodový efekt bude spuštěn, když uživatel přejede myší nad libovolným elementem input/textarea – potřebujeme ale ještě přidat kód k definování akce této události:

input:hover, textarea:hover { 
    background: #eee; 
}

Pokud nyní najedete myší na daný element, měli byste vidět, jak se barva pozadí změní na šedou, a to s malým zpožděním (cca 0,3 sekundy). Máme téměř hotovo:

Poslední věc – zapracujeme na odesílacím tlačítku. Nejdříve klasický CSS kód:

input.submit { 	
    width: 150px; 
    color: #eee; 
    text-transform: uppercase; 
    margin-top: 10px;
    background-color: #18a5cc;
    border: none;
}

A přidáme nám již známý přechodový efekt a nějaké ty zaoblené rohy:

input.submit {
 
... 
 
/* -- CSS3 Transition - define which property to animate (i.e. the shadow)  -- */
-webkit-transition: -webkit-box-shadow 0.3s linear;
 
/* -- CSS3 Shadow - create a shadow around each input element -- */ 
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#18a5cc), to(#0a85a8)); 
background:  -moz-linear-gradient(25% 75% 90deg,#0a85a8, #18a5cc); 
 
/* -- CSS3 - Rounded Corners -- */
-webkit-border-radius: 4px;
-moz-border-radius: 4px; 
border-radius: 4px;

}

Animace se bude spouštět při události hover:

input.submit:hover { 		
    -webkit-box-shadow: 0px 0px 20px #555;
    -moz-box-shadow: 0px 0px 20px #aaa; 
    box-shadow: 0px 0px 20px #555;		
    cursor:  pointer; 
}

Takhle by měl vypadat kýžený výsledek:

Nyní máte pěkný kontaktní formulář napsaný čistě v CSS. Samozřejmě že se mohou vyskytnout ještě některé problémy, kvůli nimž kód nebude dokonale fungovat ve všech prohlížečích, ale celý postup byl navržen tak, že při testování vyhovoval i starším browserům.

K dizpozici je live demo formuláře a zdrojový kód. Live demo nejlépe funguje v prohlížečích poháněných WebKitem (tj. Chrome a Safari), ale vše by mělo „šlapat“ i ve Firefoxu, Opeře a IE.

Článek je překladem tutoriálu na blogu Voosh Themes.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor je moderátorem sekce C++ na Fóru. Věnuje se programování v C++/C#, okrajově PHP, zajímá se o SW/HW novinky a o hudbu na internetu.

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý