HTML & CSS za začetnike

HTML in CSS za začetnike (del 47): Obrazec za stik (2)

Vsi videoposnetki vadnice HTML in CSS za začetnike.

Začnimo z gumbom za pošiljanje. Trenutni CSS stanje bi moralo izgledati takole:

input[type="submit"] {
   background-color: #3399FF;
   color: #fff;
   cursor: pointer;
   font: bold 1em/1.2 Georgia, "Times New Roman ", serif;
   border: 1px solid #000;
   padding: 5px 10px;
   width: auto;
}

Ta sintaksa vodi do naslednjega rezultata:

HTML in CSS za začetnike (del 47): Obrazec za stik (2)

To je povsem običajen gumb. Trenutno ni posebej privlačno oblikovan, vendar vsekakor opravlja svoje delo. Kljub temu naj bi ga malo popestrili. Končni rezultat bo torej izgledal takole:

HTML in CSS za začetnike (Del 47): Obrazec za stik (2)



Poleg tega obstaja učinek lebdenja. Gumb bo torej spremenil barvo, ko se bo miška premaknila nad njega.

Če si natančneje ogledate gumb, boste opazili zaobljene vogale. To je zagotovo eden od CSS novosti, na katere so spletni oblikovalci dolgo čakali. Ker 'prej' te možnosti ni bilo. (Izjema so seveda elementi button, pri katerih smo lahko uporabljali slike.)

Zdaj se torej zaobljenih robov ne uporablja le na običajnih stranskih elementih, temveč tudi na gumbih.

V osnutku CSS3 obstaja lastnost border-radius za to. Mozillin in WebKit brskalniki ponujata alternativne zapisne oblike za eksperimentalno podporo te lastnosti.

-moz-border-radius

-webkit-border-radius

Vendar pa že vsi sodobni brskalniki podpirajo zaobljene robove.

Na tem znanju lahko na primer definiramo border-radius tako:

-webkit-border-radius: 17px;
-moz-border-radius: 17px;
border-radius: 17px;



Pri natančnejšem pregledu gumba vam bo morda všeč tudi prelivanje barv, ki je bilo dodano.

HTML in CSS za začetnike (del 47): Obrazec za stik (2)

Tudi to je končno mogoče z osnovnimi CSS metodami. Za to se uporabljajo različne lastnosti gradient. Te se dodelijo lastnosti background kot vrednost. Medtem ko obstaja že veliko orodij, s katerimi je mogoče ustvariti prelive barv.

Eno izmed njih najdete na primer na spletnem mestu http://www.css3factory.com/linear-gradients/. V naslednji sintaksi so določeni preliv barv in že znani zaobljeni robovi.

V aktualnem primeru je sintaksa za gumb videti takole:

input[type="submit"] {
   border-top: 1px solid #96d1f8;
   background: #65a9d7;
   background: -webkit-gradient(linear, left top, left bottom, from(#3e779d), to(#65a9d7));
   background: -webkit-linear-gradient(top, #3e779d, #65a9d7);
   background: -moz-linear-gradient(top, #3e779d, #65a9d7);
   background: -ms-linear-gradient(top, #3e779d, #65a9d7);
   background: -o-linear-gradient(top, #3e779d, #65a9d7);
   background: -linear-gradient(top, #3e779d, #65a9d7);
   padding: 10px 20px;
   -webkit-border-radius: 17px;
   -moz-border-radius: 17px;
   border-radius: 17px;
   -webkit-box-shadow: rgba(0,0,0,1) 0 1px 0;
   -moz-box-shadow: rgba(0,0,0,1) 0 1px 0;
   box-shadow: rgba(0,0,0,1) 0 1px 0;
   text-shadow: rgba(0,0,0,.4) 0 1px 0;
   color: white;
   font-size: 21px;
   font-family: 'Lucida Grande', Helvetica, Arial, Sans-Serif;
   text-decoration: none;
   vertical-align: middle;
   width: auto;
}



Kot sem že omenil, naj bi gumbi reagirali na lebdenje miške. Za to se uporablja znan :hover.

#submit:hover {
   border-top-color: #28597a;
   background: #28597a;
   color: #ccc;
}

Gumb bo reagiral še na en dogodek. Za to se uporablja psevdo razred :active. S tem se lahko odzovemo, ko je gumb kliknjen.

#submit:active {
   border-top-color: #1b435e;
   background: #1b435e;
}



V aktualnem primeru se ob kliku na gumb spremeni barva zgornjega roba in ozadje gumba.

Zaobljeni robovi za polja

Takšne imenovane zaobljene robove seveda lahko uporabimo ne le na gumbu, temveč tudi na poljih za vnos. Rezultat bi lahko bil naslednji:

HTML & CSS za začetnike (del 47): Kontaktni obrazec (2)

Tukaj pa je pripadajoča sintaksa:

input[type="text"], input[type="email"], textarea {
   border: 1px solid #bebebe;
   -moz-border-radius: 9px;
   -webkit-border-radius: 9px;
   border-radius: 9px;
}



Potrebne lastnosti, ki jih potrebujete za določanje takšnih zaobljenih robov, že poznate.

Preverjanje obrazca s pomočjo CSS3

Trenutno lahko obiskovalci vnašajo v polja vnosov kar koli želijo. Preverjanje vnesenih vrednosti se ne izvaja. To se bo zdaj spremenilo. Polja bodo preverjena glede na naslednja merila:

• Polje Ime mora biti izpolnjeno.

• Polje Email mora vsebovati sintaktično pravilni e-poštni naslov.

• Tudi večvrstično polje za vnos mora biti izpolnjeno.

Šele če ta merila izpolnjujejo, je mogoče obrazec dejansko poslati.

Če želite polje označiti kot obvezno polje, mu dodelite atribut required. Polje, označeno s tem, mora biti izpolnjeno in ne sme biti prazno.

Ustrezen primer bi izgledal takole:

<form>
 <input type="text" name="name" id="name" value="" required/>
</form>

Tukaj bi brskalnik preveril, ali je polje izpolnjeno. Če je polje prazno in se vseeno poskuša poslati obrazec, bi moral brskalnik prikazati sporočilo o napaki.

HTML in CSS za začetnike (del 47): Obrazec za stik (2)

Še dlje gre zadeva pri poljih za e-pošto. Ti se dodelijo type="email" in atribut required. Zdaj v polje ni treba vnesti le vrednosti, temveč resničen e-poštni naslov, sicer se bo pri pošiljanju obrazca prav tako prikazalo sporočilo o napaki.

HTML & CSS za začetnike (del 47): Obrazec za stik (2)

Celoten obrazec bi lahko izgledal takole:

<ol>
   <li>
      <label for="name">Ime:</label>
      <input type="text" name="name" id="name" value="" required/>
   </li>

   <li>
      <label for="email">E-pošta:</label>
      <input type="email" name="email" id="email" value="" required/>
   </li>
   <li>
      <label for="comment">Komentar:</label>
      <textarea cols="32" rows="7" name="content" id="content" required></textarea>
   </li>
   <li class="button">
      <input type="submit" name="submit" id="submit" value="Pošlji" />
   </li>
 </ol>



Še posebej pri obsežnejših obrazcih je možno, da obstajajo obvezna polja, pa tudi tista, ki jih ni nujno treba izpolniti. V takšnih primerih lahko obvezna polja označite posebej. Dostop do obveznih polj je mogoč v CSS preko :required.

:required {
   background-color: #ff0000;
}

Z uporabo te sintakse bodo obvezna polja imela rdečo ozadje.

HTML & CSS za začetnike (del 47): Obrazec za stik (2)

Druga možnost za opozorilo na obvezna polja je naslednja sintaksa:

input:required:focus {
   border: 1px solid red;
   outline: none;
}



Ko poskusite poslati obrazec, bo prvo polje dobilo rdeč rob in fokus, če ni bilo izpolnjeno ali če ne ustreza zahtevam za veljavnost.

HTML in CSS za začetnike (del 47): Obrazec za stik (2)



Če uporabnik pravilno izpolni to polje, vendar obstaja še eno nepopolno polje, bo to po naslednjem pošiljanju ponovno fokusirano in opremljeno z rdečim robom.