Projede karşılaştığım sorunlardan biri textarea elemanı içinde enter’a
basınca alt satıra geçmiyordu. Diğer tarayıcılarda sorun yokken ie
sürümlerinde böyle bir sorun çıkıyordu.
Sonra incelediğimde ve araştırdığımda bu sorunun benim kullandığım
sıfırlama kodundaki bir durumdan kaynaklandığını gördüm.
Sıfırlama kodundaki yukarıdaki kodda white-space:normal; tanımlaması
sorunu çıkarıyor. Bu kodu çıkarınca sorun ortadan kalkıyor. Ancak yinede
ie’nin textarea’daki white-space:normal; kullanımında sorun oluşturduğu
gerçeğini bu ortadan kaldırmıyor.
Birçok kişi bu soruyu sordu ve bende belirli aralıklar bu tip
bir ihtiyacım oldu, sonunda buraya yazmaya karar verdim. Bu işi sadece
CSS kullanarak nasıl yapıldığını yazacağım burada.
Bir kaç yöntem var bu konuda. Burada sabit genişlik ve yükseklikte
alanları sayfanın dikeyde ve yatayda ortalı olması durumu yazımı
yazacağım. position:absolute metodu denen yöntem ile yazacağız kodu.
HTML kodumuz
CSS kodumuz yazmaya başlayalım
İnternet explorer için ilk satırı ve body boşluklarını sıfırlamak içinde
ikinci satırı yazdık.
Sabit genişlik ve yükseklik veriyoruz ve genel tanımlarımızı yapıyoruz.
Şimdi bu alanı ortalamak için kodumuzu yazalım.
Yukarıdaki kodu incelersek, postion:absolute ve left:50% ve top:50%
değerleri ile elemanımızı ortalıyoruz. Bu ortalama elemanımızın sıfır
noktası içindir, ancak bizim elemanımızın belirli bir genişliği ve
yüksekliği olduğu için bu tam bir ortalama sağlamayacaktır.
Tam bir ortalama için ise elemanın genişliğinin yarısı kadar sola
çekmeli ve elemanın yüksekliğinin yarısı kadarda yukarı çekmeliyiz.
Bunun için eksi değerli margin-left ve margin-top kullanıyoruz. Bu
kodlar elemanımızı dikeyde ve yatayda ortalayacaktır.
Kodumuzu ve içeriğimiz biraz daha süslersek
CSS kodumuzu
Border olarak eklediğimiz değerleride çıkardığımız için değerlerimiz
-5px daha azalmıştır.
Aslında başlığı nasıl atacağımı şaşırdığım için kısa bir başlık attım.
Sorun
Sorunumuz tam olarak anlamak için daha önce anlattığım CSS ile buton yapmak adlı makaledeki görselliği arttırılmış esnek butonu örneğini
incelememiz yeterli.
Genelde esnek yapılı bu tip resimli menüler veya butonları oluştururken
bir elemana iki background-image atayamadığımız için iç içe iki eleman
koyarız. (Sliding Door) esnek yapılar olarak adlandırılan yöntem
kullandığımızda başımıza geliyor.
Diğer tarayıcılarda sorun olmazken ie6 ve ie7’de el işareti yerine
normal fare imleci görünüyor.
Aşağıda ie7 ve Firefox görüntüleri yanyana görünmektedir.
IE7 de buton üzerinde normal imleç görünürken Firefox ve diğer
tarayıcılarda normal olarak el işareti görüntülenecektir.
Çözüm
Çözümü çok basit tabi
cursor:pointer özelliğini eklemek yeterli oluyor.
Bu sorunu niye yazdım? Benim gibi kod yazarken unutuyorsanız
hatırlayalım diye. İşin ilginç yanı internette ufak bir araştırma yaptım
ama hiç bu sorun ile karşılaşanı görmedim, belki ben tam anahtar
kelimeleri bulamadım