Geri git   Van.GEN.TR Forum | Yerel Van Forumu > Bilgisayar > CSS

CSS CSS nedir, CSS örnekleri, çözümleri

Cevapla
 
Konu Araçları Stil
Alt 24/04/07, 00:18   #1
gokhanaygun
Tuğgeneral
 
gokhanaygun - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Apr 2007
Bulunduğu yer: VAN
Yaş: 36
Mesajlar: 924
Tecrübe Puanı: 26 gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold gokhanaygun is a splendid one to behold
Standart CSS ile Erişilebilir Formlar Yapmak - II

Gelişmiş Form Yapıları
Gelişmiş yapılı formlarda tablo kullanmak daha kolayımıza geliyor. Ancak burada bir sorunumuz varki formlar veri içeren tablolar değildir ve doğru kodlama için form yapılarını oluştururken tablo kullanmak web standartlarına uygun değildir.

Biz burada daha karışık yapılı bir formu nasıl tablo kullanmadan planlar ve güzelleştiririz onu anlatmaya çalışacağız. Tabi bu kodlamanın bazı zorlukları olacaktır ama genel yapı anlaşılırsa yapılamayacak form kodlaması yoktur. Aşağıda kodlayacağımız formun resmini görüyoruz.



Kodlamayı yaparken dikkat edeceğiz konu kullanıcıyı yormayan güzel görünümlü ve erişilebilirliği yüksek formlar hazırlamaktır. Bir önceki yazımızda fieldset ve legend ve label etiketlerinden bahsettiğimiz için burada bu etiketler hakkında tekrar bir bilgi vermeyeceğiz. Diğer makalelerden farklı olarak bu makalede tüm kodları verip sonra açıklamalarını yapacağız, bunun nedeni form alanlarına ait tanımların bir çoğunun genel tanımlama olması ve bir tanımın bir çok etiketi etkilemesidir. XHTML Kodumuzu yazalım:

<form action="gonder.html" method="post" id="formset">
<fieldset>
<legend>Genel Bilgiler</legend>
<label class="adAlani">Ad <em>*</em>
<input name="ad" type="text" id="ad" value="" />
</label>
<label class="soyadAlani">Soyad <em>*</em>
<input name="soyad" type="text" id="soyad" value="" />
</label>
<label class="adresAlani">Ev Adresi <em>*</em>
<input name="adres" type="text" id="adres" value="" />
</label>
<label class="sehirAlani">Şehir <em>*</em>
<input name="sehir" type="text" id="sehir" value="" />
</label>
<label class="postakoduAlani">Posta Kodu <em>*</em>
<input name="postakodu" type="text" id="postakodu" value="" />
</label>
<label class="epostaAlani hata">Eposta *
<input name="eposta" type="text" id="eposta" value="" class="hata" />
</label>
<label class="telAlani">Telefon<input name="tel" type="text" id="tel" value="" />
</label>
</fieldset>
<fieldset>
<legend>Konu <em>*</em></legend>
<input id="radiobutton_1" type="radio" name="radiobutton_type" value="" />
<label class="konuRadyoButon" for="radiobutton_1">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. </label>
<input id="radiobutton_2" type="radio" name="radiobutton_type" value="" />
<label class="konuRadyoButon" for="radiobutton_2">Cras diam. Suspendisse potenti. In dictum bibendum est. Aliquam semper. Sed vel massa. Praesent imperdiet nisi eget lacus. </label>
<input id="radiobutton_3" type="radio" name="radiobutton_type" value="" />
<label class="konuRadyoButon" for="radiobutton_3">Phasellus quis enim. </label>
<input id="radiobutton_4" type="radio" name="radiobutton_type" value="" />
<label class="konuRadyoButon" for="radiobutton_4">Vestibulum ut lectus ac leo luctus aliquam. </label>
</fieldset>
<fieldset>
<legend>Düşünceleriniz</legend>
<label class="aciklamaAlani">Düşüncelerinizi aşağıdaki alana yazınız.<br /><textarea name="describe" cols="35" rows="5"></textarea>
</label>
</fieldset>
<fieldset>
<legend>Onay Alanı</legend>
<input id="checkbox_1" type="checkbox" name="kabul" value="y" /><label for="checkbox_1" class="onayAlaniIsaretKutusu">Site kurallarını kabul ediyorum.</label>
<input id="checkbox_2" type="checkbox" name="kabul" value="y" /><label for="checkbox_2" class="onayAlaniIsaretKutusu">Site kurallarını kabul etmiyorum.</label>
</fieldset>
<blockquote><strong>Not:</strong> Yanında (<em>*</em>) işareti olanlar zorunlu alanlardır.</blockquote>
<input type="submit" name="submit" value="GÖNDER" class="formbutton" />
</form>
Yukarıdaki kodlama aslında bir çok açıdan basit yapılı formalara benziyor. "Bir çok karmaşık yapı basit yapıların birleşiminden oluşur" genel kabulü tam durumumuzu açıklayan cümle. Bu kodlamanın farkı normal akış dışına çıkacak(yani iki kolonlu olacak yerlerde) elementlere id tanımı yaparak konumlandırma işlemi yapmaktır. Şimdi sıra CSS kodunu yazmaya geldi.

/* genel stiller */
* {
margin: 0;
padding: 0;
}
body {
font: 12px/14px Arial, Helvetica, sans-serif;
background-color:#07A;
text-align: center;
margin:20px 0;
}
/* form stilleri */
form#formset {
width: 360px;
margin: 0 auto;
text-align: left;
color:#fff;
}
form#formset fieldset {
margin: 0 0 1em 0;
padding: 1.5em 1.5em 0 1.5em;
border: #DDD 1px solid;
}
form#formset fieldset legend {
font-weight: bold;
color: #fff;
padding:0 0.5em;
}
form#formset label {
display: block;
width: 290px;
font-size: 12px;
line-height: 14px;
padding: 0px 0px 12px 0px;
}
form#formset fieldset input {
display: block;
margin-top: 3px;
border:1px solid #fff;
border-left:5px solid #fff;
background-color:#09c;
color:#ffc;
}
form#formset label.adAlani, form#formset label.adresAlani,
form#formset label.sehirAlani,
form#formset label.epostaAlani {
clear: left;
}
form#formset label.adAlani,
form#formset label.soyadAlani,
form#formset label.sehirAlani,
form#formset label.epostaAlani,
form#formset label.telAlani {
float: left;
margin: 0px 10px 0px 0px;
width: 150px;
}
form#formset label.adAlani input,
form#formset label.soyadAlani input,
form#formset label.epostaAlani input,
form#formset label.sehirAlani input,
form#formset label.telAlani input {
float: left;
width: 150px;
padding: 0px;
}
form#formset label.postakoduAlani {
float: left;
width: 80px;
}
form#formset label.postakoduAlani input {
float: left;
width: 80px;
}
form#formset label.adresAlani {
float: left;
width: 310px;
margin: 0px 0px 0px 0px;
}
form#formset label.adresAlani input {
float: left;
width: 310px;
padding: 0px;
}
form#formset fieldset input#radiobutton_1,
form#formset fieldset input#radiobutton_2,
form#formset fieldset input#radiobutton_3,
form#formset fieldset input#radiobutton_4 {
clear: left;
float: left;
padding: 0px;
border:0;
margin: 0px 0px 0px 0px;
background-color:#07a;
}
form#formset label.konuRadyoButon {
clear: none;
margin: 0px 0px 0px 25px;
padding: 0px 0px 15px 0px;
}
form#formset fieldset input#checkbox_1,
form#formset fieldset input#checkbox_2,
form#formset fieldset input#checkbox_3 {
clear: both;
float: left;
padding: 0px;
margin: 0px;
border:0;
background-color:#07a;
}
form#formset label.onayAlaniIsaretKutusu {
clear: none;
margin: 0px 0px 0px 25px;
padding: 0px 0px 15px 0px;
}
form#formset textarea {
display: block;
margin-top: 3px;
border:1px solid #fff;
border-left:5px solid #fff;
background-color:#09c;
color:#ffc;
}
form#formset blockquote{
margin-bottom:10px;
}
form#formset fieldset em, form#formset blockquote em{
color:#ff0;
}
Yukarıdaki kodlamada önemli görülen tanımları biraz daha açıklamaya çalışalım:

Genel Seçicisi (*{}) kullanarak tüm elementlerin margin ve padding’lerini sıfırlıyoruz, böylece tüm elementler için ayrıca bu tanımı yapmaya gerek duymuyoruz(özel durumlar hariç.)
body seçicisine atadığımız özelikler sayfayı ortalamak için text-align tanımı yapıldı.
form#formset şeklinde forma id vermemizin nedeni sayfa içinde eğer birden fazla form olursa veya sitede genel bir css dosyası kullanıyorsak diğer formları etkilememek. Burada yapılan tanımlar genel tanımlardır.
form#formset fieldset tanımında form alanlarını bir çerçeve içine aldık ve içerikle kenarlık arasına boşluk koyduk. Her bölümü ayrı çerçeveye almamızın nedeni bölümler arasındaki farka vurgu yapmaktır.
form#formset fieldset legend genel tanımı ile form bölümlerinin başlıklarına genel tanımlama yaptık.
form#formset label tanımlaması ile formdaki tüm label’lar düşünülerek genişlik ve mesafe tanımları yapılmıştır.
form#formset fieldset input tanımlaması ile genel kullanıcı girişi(input) görünüm yerine kendi görünümümüze uygun tanımlar yapılmıştır.
form#formset label.adAlani, form#formset label.adresAlani,
form#formset label.sehirAlani,
form#formset label.epostaAlani seçicilerine clear:left tanımı yapılarak bu sınıflara ait alanları formun soluna yerleştiriyoruz.
Daha sonra Formun Genel Bilgiler kısmı içindeki form elementlerine genişlik ve float tanımı yapılıyor. Aynı şekilde kullanıcı girişlerinede(input) aynı tanımlar yapılıyor.
57 - 74 satırları arasında Genel Bilgi Alanındaki diğer alanlardan farklı olan Ev adresi ve Posta Kodu alanlarına özel tanımlamalar yapılıyor. Genelde css kodlarken başta genel tanımalar yapılır sonra genelden farklı olan özel tanımlamalar yapılır.
75 - 87 satırları arasında Form alanının Konu kısmı içeriğindeki radyo butonları ve içerik kısımlarına ait konumlandırma ve mesafe değerleri tanımlanmıştır.
88 - 99 satırları arasında Form alanının Onay kısmı içeriğindeki işaret kutuları ve içerik kısımlarına ait konumlandırma ve mesafe değerleri tanımlanmıştır.
form#formset textarea tanımlaması ile düşüncelerimiz alanı içindeki metin alanı tanımları girilmiştir.
Genelde forumlar oluşturulurken kullanıcıdan bazı alanların zorunlu doldurulması istenir. Bunu için form#formset blockquote tanımlaması yapılmıştır.
Yukarıda gelişmiş form kodlamasını gördük son olarak formda doldurulması gereken bir alanın doldurulmaması halinde çıkacak uyarı mesajı ve bilginin girilmesi gereken alanın kullanıcının daha kolay görmesi için stil tanımını yapalım. XHTML kodunu başına

<div class="hata">
Dikkat aşağıda sarı renk ile belirtilen yerlerde hata var.
</div>
tanımlaması ve hataya neden olan alana(mesela e-posta girilmemiş olsun) sınıf tanımlaması ekleyelim.

<label class="epostaAlani hata">Eposta *
<input name="eposta" type="text" id="eposta" value="" class="hata" />
CSS kodunu ekleyelim

form#formset fieldset input.hata {
display: block;
margin-top: 3px;
border:1px solid #ff0;
border-left:5px solid #ff0;
background-color:#ccc;
color:#ffc;
}
form#formset fieldset label.hata {
color:#ff0;
font-weight:bold;
}
div.hata {
background:#FFFFCC url(images/hata.png) no-repeat scroll 5px;
border:1px solid #FFCC66;
margin:0pt 0pt 10px;
padding:5px 10px 5px 35px;
color:#000;
}
Hata mesajının yanına bir ünlem ikonu koyduk ve farklı zemin rengi ve kenarlığı ile kullanıcının dikkatini buraya çektik. Ayrıca hatanın meydana geldiği alanı sarı renk ile tanımlayarak daha dikkat çekici yaptık. Dikkat ederseniz amaç devamlı kullanıcıya formumuzu daha anlaşılabilir ve kolay erişilebilir yapmak.

En son gönder butonunun css kodunu yazalım.

.formbutton{
cursorointer;
border:0;
background:#999;
color:#666;
font-weight:bold;
padding: 1px 2px;
background:url(images/buton_bg2.gif) repeat-x left top;
}
Buton zeminine degrade 1px genişliğinde bir resim koyarak hoş görünümlü bir buton elde ettik.
gokhanaygun isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Konu Sayısı: 187
Alt 01/03/08, 22:12   #2
Neutralizer
Yasaklı kullanıcı
 
Neutralizer - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Jan 2008
Bulunduğu yer: İstediğin yerden
Mesajlar: 1.883
Tecrübe Puanı: 0 Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute Neutralizer has a reputation beyond repute
Standart

paylaşım için sağol
Neutralizer isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Konu Sayısı: 316
Takımınız:
Alt 14/03/08, 20:40   #3
Bur2
Korgeneral
 
Bur2 - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Oct 2007
Bulunduğu yer: evde :)
Yaş: 45
Mesajlar: 2.544
Tecrübe Puanı: 50 Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute Bur2 has a reputation beyond repute
Standart

paylaşım için tşkler
__________________

[Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....]

[Bu Adresi (link) Görme Yetkiniz Yok BEDAVA'ya Üye Ol Sitemizden Faydalan....]


Bur2 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Konu Sayısı: 497
Takımınız:
Alt 01/08/08, 12:12   #4
firari
Mareşal
 
firari - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Sep 2007
Mesajlar: 5.835
Tecrübe Puanı: 104 firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute firari has a reputation beyond repute
Standart

tşkler...
__________________



firari isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Konu Sayısı: 613
Takımınız:
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Gitmek istediğiniz klasörü seçiniz


Bütün Zaman Ayarları WEZ +3 olarak düzenlenmiştir. Şu Anki Saat: 09:32 .


Powered by vBulletin
Copyright © 2000-2007 Jelsoft Enterprises Limited.
Sitemap
6, 5, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 113, 16, 17, 18, 19, 81, 20, 27, 22, 23, 24, 25, 26, 48, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 136, 40, 58, 45, 42, 44, 46, 47, 53, 54, 55, 56, 57, 59, 60, 70, 61, 62, 63, 64, 65, 66, 68, 69, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 96, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 97, 100, 101, 102, 103, 106, 104, 105, 112, 109, 108, 107, 110, 111, 114, 115, 118, 116, 117, 119, 148, 154, 124, 165, 122, 120, 123, 121, 150, 153, 125, 128, 129, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 151, 149, 202, 175, 164, 152, 167, 155, 156, 157, 158, 159, 160, 161, 162, 163, 195, 169, 166, 168, 170, 171, 172, 199, 174, 173, 196, 200, 176, 177, 180, 178, 179, 182, 189, 187, 184, 186, 191, 192, 193, 194, 197, 198, 201, 203, 229, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 236, 231, 232, 233, 234, 235, 237, 240, 239, 241, 243, 242, 244,