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.
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.
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.
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:
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"
.