Merhaba...
HTML ile hazırlanan formlar CSS ile daha estetik bir görünüme sahip olabilir. CSS'te form elemanları için özel seçiciler kullanılıyorken , formları biçimlendirmek için formlara özgü özellikler bulunmaz. Ancak mevcut CSS özellikleri form elemanlarına uygulanabilir.
CSS ile form elemanlarını biçimlendirebiliriz. Örneğin metin kutularının, iç boşlukları, genişlikleri, kenarlıkları , margin değerleri gibi özellilkeri ile oynayabilir , elemanların çeşitli olaylardaki (focus , valid vs) özellikleri yada placeholder gibi parametre yazıları biçimlendirelebilir..
From elemanlarının genişlik , margin, padding , border vb gibi özellikleri üzerinde istediğimiz değişiklikleri yapabiliyoruz. Örneğin temel özellikler ile biçimlendirilmiş bazı form elemanları yapalım.
input , select , button {
width:50%;
color:skayblue;
padding:.5rem;
margin :.3rem 0;
display:block;
border:1px solid skyblue;
border-radius:5px;
}
input:last-child {
border:none;
border-bottom:3px solid skyblue ;
background:none;
}
<input type="text" placeholder="Adınız..">
<input type="text" placeholder="Soyadınız..">
<select>
<option> FORM SELECT </option>
<option> FORM SELECT </option>
<select>
<button type="submit"> GÖNDER </button>
Yukarıda metin kutuları , açılır kutu (select) ve buton genel CSS özelliklerini almış olurlar.. Bu şekilde diğer form elemanları da biçimlendirilebilir..
Form elemanları için CSS yazılırken , biçimlendirilecek form elemanı için ayrıca seçici belirtebiliryoruz.. Örneğin sadece "TEXT" tipi inputları seçmek yada "NUMBER" tipi inputları seçmek istersek aşağıdaki seçici yapısını kullanmamız gerekir..
/*Tüm inputlar */
input { padding:1rem;}
/* sadece text tipi inputlar */
input[type=text] { background-color:#da3d00; color:#fff}
<input type="text" placeholder="Adınız..">
<input type="number" placeholder="Telefonu Numaranız..">
<input type="mail" placeholder="Mail Adresiniz..">
Yukarıda "TEXT" , "NUMBER" ve "MAIL" tipinde 3 form elemanıda CSS input seçicisiyle tanımlanan padding değerini alır.. Ancak input[type=text] ile tanımlanan arka plan ve yazı rengini sadece tipi "TEXT" olan form elemanı alır.
Formlardaki elelamnlar tıklandığında odaklanmış (focus) olurlar. bu durumda tarayıcılar odağın belli olması için bazı özellikler kullanırlar. Bunları biçimlendirmek için :FOCUS sözde sınıfı kullanılır. Focus gerçekleştiğinde BORDER dışında form elemanlarına özgü olan OUTLINE (dış çizgi) özelliği belirir. Yukarıdaki metin kutuunda görebilirsiniz. Bunu kapatmak için OUTLINE : NONE özelliği kullanılır.
input:focus {
outline:none;
background-color:#eee;
width:100%;
}
<input type="text" placeholder="Adınız..">
Yukarıdaki metin kutusu tıklandığında, siyah border görünmeyecek ve arka planı grileşecektir.. Ayrıca trasnition özelliğinden dolayı , metin kutusu animasyon ile 100% genişliğine ulaşacaktır..
Metin kutularında sıkça kullanılan placeholder yazıları ::PLACEHOLDER sözde elemanı ile değiştirilebilir.. Örneğin yukarıdaki metin kutusu iç.in belirlenen "Adınız.." palceholder yazısını kırmızı yapalım..
input::placeholder { color:orange; }
<input type="text" placeholder="Adınız..">
MEtin kutuları içerisine , arka plan resmi olarak simge eklenebilir. Arka plan resmi olarak simge eklendiğine yazının üzerine gelmemesi için PADDING özelliğinin de ayarlanması gerekir.
input {
background-image: url("ikon.png");
background-size: 30px;
background-repeat: no-repeat;
background-position: left center;
padding-left:33px;
}
<input type="text" placeholder="Telefon..">
Uzun metin girişleri için kullanılan textarea elemanlarının sağ alt köşesinden uzatarak yada çekerek tekrar boyutlansırılması mümnkün olmaktadır. Ancak CSS RESIZE özelliği ile bu durum engellenebilir.
textarea{
width:200px;
height:150px;
border:1px solid #4682b4;
}
textarea.noresize {
resize:none;
}
<textarea> TEXTAREA 1 </textarea>
<textarea class="noresize"> TEXTAREA 2 </textarea>
Yukardıa soldaki normal textarera , sağ alt köşesinden tutularak boyutlandırılabilirken, sağdaki textarea'nın resize özelliği kapatıldığı için boyutlandırılamayacaktır...
Toplam 30 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.