HTML & CSS için yeni başlayanlar için

HTML ve CSS'ye Giriş (Bölüm 47): İletişim Formu (2)

Eğitimdeki tüm videolar

Gönder düğmesiyle başlayalım. Mevcut CSS durumu şu şekilde olmalı:

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

Bu sözdizimi şu sonucu verir:

HTML ve CSS'ye Başlangıç (Bölüm 47): İletişim Formu (2)

Bu oldukça normal bir düğme. Şu anda çok heyecan verici bir şekilde tasarlanmamış olsa da amacını oldukça iyi yerine getirmekte. Yine de biraz güzelleştirilmesi gerekiyor. Sonuç şöyle olacak:

HTML ve CSS'ye Yeni Başlayanlar için (Bölüm 47): İletişim Formu (2)



Bunun yanı sıra bir Hover efekti bulunmakta. Yani fare imleci üzerinde gezdirildiğinde düğmenin rengi değiştirilecektir.

Düğmeye daha dikkatli bakarsanız, köşelerin yuvarlak olduğunu fark edeceksiniz. Bu, web tasarımcıların uzun süredir beklediği CSS yeniliklerinden biridir. Çünkü "eskiden" bu imkan söz konusu değildi. (Tabii ki, resimlerle çalışabileceğiniz button öğeleri istisnadır.)

Şimdi yuvarlak köşeler her türlü sayfa elemanına değil sadece düğmelere uygulanabiliyor.

CSS3 taslak çalışmasında bu işlem için border-radius özelliği vardır. Mozilla ve WebKit tarayıcıları bu özelliğin deneysel destekleri için alternatif yazım biçimleri sunarlar.

-moz-border-radius

-webkit-border-radius

Ancak artık tüm modern tarayıcılar yuvarlak köşeleri desteklemektedir.

Bu bilgiye dayanarak, bir border-radius tanımlaması şöyle olabilir:

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



Daha yakından bakıldığında başka bir şey de dikkat çekmektedir. Aslında düğmeye bir renk geçişi de atanmıştır.

HTML ve CSS'ye giriş (Bölüm 47): İletişim formu (2)

Bu tarz şeyler nihayetinde CSS ile yapılabilir hale gelmektedir. Bunun için çeşitli gradient özellikleri kullanılmaktadır. Bunlar background özelliğine bir değer olarak atanır. Bu tür renk geçişleri oluşturabileceğiniz birçok araç bulunmaktadır.

Bunlardan bir tanesini örneğin http://www.css3factory.com/linear-gradients/ adresinde bulabilirsiniz. Aşağıdaki sözdiziminde bir renk geçişi ve bilinen yuvarlak köşeler tanımlanmıştır.

Örneğin şu anki düğme için sözdizimi şöyle görünmektedir:

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



Daha önceden bahsettiğim gibi, düğmeler fare imleciyle üzerine gelindiğinde yanıt verecektir. Bunun için bilinen :hover kullanılmaktadır.

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

Düğme başka bir olaya da yanıt verecektir. Bunun için Yalancı-Ögeler Sınıfı :active kullanılır. Bu sayede düğme tıklandığında tepki verir.

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



Şu anki örnekte, düğme tıklandığında üst kenarın rengi ve düğmenin arka plan rengi değişir.

Alanlar için Yuvarlak Kenarlar

Yuvarlak köşeler sadece düğmeye uygulanabilir değil, aynı zamanda giriş alanlarına da uygulanabilir. Sonuç şöyle olabilir:

HTML ve CSS'ye Giriş (Bölüm 47): İletişim Formu (2)

Ve burada ilgili sözdizimi:

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



Yuvarlak köşeleri tanımlamak için gereken özellikleri zaten biliyorsunuz.

CSS3 ile Form Doğrulama

Ziyaretçiler şu anda giriş alanlarına istediklerini yazabilirler. Girilen değerlerin kontrolü yapılmamaktadır. Bu durum değişmelidir. Alanlar aşağıdaki kriterlere göre kontrol edilecektir:

Adı alanı doldurulmak zorundadır.

E-Posta alanı geçerli bir e-posta adresi içermelidir.

• Çok satırlı giriş alanı da mutlaka doldurulmalıdır.

Bu kriterler karşılandığında form gerçekten gönderilebilir.

Bir alanı zorunlu olarak işaretlemek için, ona required niteliğini atarız. Bu nitelikle belirlenen alanların doldurulması gerekmekte, yani boş olmamalıdır.

Benzer şekilde bir uygulama şöyle olabilir:

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

Tarayıcı, alanın doldurulup doldurulmadığını kontrol eder. Alan boşsa ve yine de form gönderilmeye çalışılıyorsa, tarayıcı bir hata mesajı göstermelidir.

HTML ve CSS'ye Giriş (Bölüm 47): İletişim Formu (2)

Ayrıca e-posta alanlarında biraz daha ileri gidilir. Bu alanlara type="email" ve required nitelikleri atanır. Artık alana sadece bir değer değil, gerçekten doğru bir e-posta adresi yazılmalıdır; aksi takdirde, form gönderilmeye çalışıldığında yine bir hata mesajı alınır.

HTML ve CSS'ye Giriş (Bölüm 47): İletişim Formu (2)

Toplamda form şu şekilde olabilir:

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

   <li>
      <label for="email">E-Posta Adresi:</label>
      <input type="email" name="email" id="email" value="" required/>
   </li>
   <li>
      <label for="comment">Yorum:</label>
      <textarea cols="32" rows="7" name="content" id="content" required></textarea>
   </li>
   <li class="button">
      <input type="submit" name="submit" id="submit" value="Gönder" />
   </li>
 </ol>



Özellikle daha kapsamlı formlarda zorunlu alanlar olabileceği gibi, doldurulması gerekli olmayan alanlar da olabilir. Bu durumlarda zorunlu alanları ayrı bir şekilde belirtebilirsiniz. CSS'de zorunlu alanlara :required ile erişebilirsiniz.

:required {
   background-color: #ff0000;
}

Bu sözdizimi ile zorunlu alanlar kırmızı arka plan rengi ile donatılır.

HTML ve CSS'ye Giriş (Bölüm 47): İletişim Formu (2)

Zorunlu alanlara dikkat çekmenin başka bir yolu ise şu sözdizimini kullanmaktır:

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



Burada formu göndermeye çalıştığınızda, doldurulmayan veya doğrulama gereksinimlerini karşılamayan ilk alan bir kırmızı kenarlığa ve odaklanmaya sahip olur.

HTML ve CSS için başlangıç ​​(Bölüm 47): İletişim formu (2)



Bir kullanıcı bu alanı doğru şekilde doldurursa, ancak bir sonraki gönderim ziyaretinde başka bir alan eksikse, bu alan da bir sonraki gönderim ziyaretinden sonra odaklanır ve kırmızı kenarlıklı olur.