HTML & CSS dla początkujących

HTML & CSS dla początkujących (cz. 46): Formularz kontaktowy (1)

Wszystkie filmy z tutorialu HTML & CSS dla początkujących

Zakładam tutaj, że stworzycie dodatkowy plik HTML. Ja osobiście zapisuję go jako kontakt.html. Kontakt.html znajduje się na tym samym poziomie co index.html, z którym już się zapewne dobrze zapoznaliście.

W tej pierwszej części będą wprowadzone podstawowe ustawienia formularza. Kwestie takie jak zaokrąglone narożniki, gradienty kolorów itp. zostaną omówione w następnym poradniku.

Wewnątrz pliku kontakt.html tworzony jest formularz. Formularz jest definiowany w obszarze div o klasie content. Następnie zastanówcie się, jakie pola chcecie utworzyć. Ja postanowiłem zgromadzić następujące informacje:

• Nazwa
• Adres e-mail
• Komentarz

Oczywiście musicie sami zdecydować, jakie informacje chcecie pozyskać. Zasadniczo jednak zalecam pozyskiwanie tylko faktycznie potrzebnych danych. Większość odwiedzających strony internetowe unika bowiem obszernych formularzy. Dlatego zachowajcie to w skrócie.

Podstawowa struktura mojego formularza wygląda następująco:

<div class="content">
   <form class="form" action="#" method="post">
   <fieldset>
   <legend>Kontakt z nami</legend>
   <ol>
      <li>
      <label for="name">Nazwa:</label>
      <input type="text" name="name" id="name" value="" />
      </li>
      <li>
      <label for="email">Adres e-mail:</label>
      <input type="text" name="email" id="email" value="" />
      </li>
      <li>
      <label for="comment">Komentarz:</label>
      <textarea cols="32" rows="7" name="content" id="content"></textarea>
      </li>
      <li class="button">
      <input type="submit" name="submit" id="submit" value="Wyślij" />
      </li>
   </ol>
   </fieldset>
   </form>
</div>

Formularz początkowo nie zawiera żadnych specyfikacji. Wokół pól formularza zostało zastosowane określenie fieldset. Jak tworzyć pola formularza i co oznaczają elementy label, zostało już szczegółowo opisane. W tym miejscu skupiamy się zatem na projektowaniu formularza.

Podgląd wyniku w przeglądarce ujawnia na razie dość mało atrakcyjny formularz.

HTML & CSS dla początkujących (Część 46): Formularz kontaktowy (1)



Oczywiście trzeba to jeszcze poprawić.

Najpierw wprowadzane są podstawowe informacje dotyczące formularza.

form {
   padding: 3px 0 0;
   margin: 10px auto;
   width: 550px;
 }



Tutaj definiowane są marginesy zewnętrzne i wewnętrzne. Dodatkowo, dla formularza ustawiana jest szerokość 550 pikseli.

Kolejny krok dotyczy projektowania fieldset.

fieldset {
   padding: 10px 20px 25px;
 }



Tutaj również ustawiane są marginesy.

Samo pola formularza zostały utworzone w uporządkowanej liście ol.

ol {
   list-style-type: none;
   margin: 0;
   padding: 0;
 }



Aby lista ta nie wyglądała już jak lista, używane jest list-style-type: none;. Dodatkowo, marginesy i wewnętrzne odstępy są ustawione na 0.

W następnym kroku definiowane są pozycje podlisty. Elementy te są ustawione z wybiciem w lewo i mają wewnętrzny margines 10 pikseli.

li {
   float: left;
   padding: 10px;
 }



Jest jeszcze szczególna cecha dotycząca przycisku znajdującego się pod formularzem. Powinien być on wyrównany do prawej.

li.button {
   float: none;
   clear: both;
    text-align: right;
 }

Tytuł formularza

Przejdźmy teraz do elementu legend. Za jego pomocą definiowany jest tytuł formularza.

HTML & CSS dla początkujących (część 46): Formularz kontaktowy (1)



Definicja dla tytułu wygląda następująco:

fieldset legend {
   font-weight: bold;
   font-size: 22px;
   margin: 20px 0 0 10px;
 }

Etykiety

Element label był już przedmiotem omawianych w tej serii. Poprzez to label można ustawić logiczny związek między opisem pola a właściwym polem formularza. W odniesieniu do definicji CSS, istnieje tu pewna cecha szczególna.

label {
   display: block;
   cursor: pointer;
   font-weight: bold;
   line-height: 24px;
 }



Wyposażam element label m.in. w zdefiniowany cursor. Dzięki temu odwiedzającym sygnalizuje się, że etykiety pól są klikalne. Po kliknięciu na opis pola, kursor automatycznie jest ustawiany w odpowiednie pole.

HTML & CSS dla początkujących (Część 46): Formularz kontaktowy (1)

Stylizacja pól formularza

W kolejnym kroku zostaną dostosowane właściwe pola formularza. Najpierw podstawowe informacje dotyczące elementów input i textarea.

input, textarea {
   color: #3399FF
   border: 1px solid #3399FF;
   font: 13px Helvetica, Arial, sans-serif;
   padding: 8px 10px;
   width: 190px;
 }



To wyłącznie kwestie dotyczące projektowania. Szczególną uwagę należy zwrócić na ramki. Gdy kursor jest umieszczony w polu, zmienia się kolor obramowania. Jest to nie tylko aspekt estetyczny. Faktycznie pomaga on odwiedzającym w wypełnianiu formularza. Dzięki temu zawsze widzą, w którym polu znajduje się kursor.

Teraz podane są pewne informacje odnośnie pola tekstowego wielolinijkowego.

textarea {
   width: 430px;
   overflow: auto;
 }



Szerokość tego pola jest ustawiona na 430 pikseli. Trochę dziwnie może wyglądać na pierwszy rzut oka instrukcja overflow: auto w kontekście pól tekstowych wielolinijkowych. Ta linia jest spowodowana starszymi wersjami Internet Explorera. Faktycznie ten przeglądarka pokazywał paski przewijania nawet w polach tekstowych wielolinijkowych, gdy nie było to konieczne. Dzięki overflow: auto można ominąć ten problem estetyczny.

Zaprojektować przycisk Wyślij

Obecnie przycisk Wyślij prezentuje się dosyć skromnie. To się teraz zmieni. Wynik będzie wyglądać następująco:

HTML & CSS dla początkujących (część 46): Formularz kontaktowy (1)



Przyciskowi zostaną przypisane różne cechy.

• Kolor tła

• Wygląd tekstu

• Ramka

• Odstępy

Odpowiednia składnia CSS prezentuje się następująco:

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;
 }



Warto tutaj wspomnieć o zastosowaniu input[type="submit"]. Poprzez ten selektor uzyskuje się dostęp do elementów input, które posiadają kombinację atrybutu-wartości type="submit".