Bu fonksiyonun varlığından haberdar değilken küçücük bir css komutunun yaptığı işi javascript ile yapmak için satırlarca kod yazmak zorunda kalıyordum. calc() fonksiyonu hayatımıza CSS3 ile girdi, günümüzde kullanılan tüm tarayıcıların son sürümleri tarafından desteklenmektedir, yanlızca Blackbarry browser için -webkit ön ekini kullanmak zorundayız.
Lafı fazla uzatmadan ne iş yaptığına ve nasıl kullandığına gözatalım.
calc() fonklsiyonu CSS'te matematiksel (toplama, çıkartma, çarpma, bölme) gibi işlemleri yapmamızı sağlar. örnek kullanım için aşağıdaki kodu inceleyebiliriz.
.hede { width: calc(3 * 50px); }
Yukarıdaki örnekte .hede class ının genişliğini 150px yaptık, bu örnek pek kullanışlı değil bunun yerine 150px de yazabilirdik diye düşünenler şimdi hazır olun :)
<div class="sol">sol taraf</div> <div class="sag">sağ taraf</div>
.sol { width: calc(100% - 200px); float: left; height: 150px; background-color: #268580 } .sag { width: 200px; float: left; height: 150px; background-color: #E6E6E6 }
Örneği incelemek için tıklayın
Yukarıdaki örneği eğer javascript ile yazıyor olsaydık sırasıyla yapacaklarımızı yazalım.
- Program çalışınca ekranın toplam genişliğini al
- Toplam genişlikten 200px çıkart
- .sol class ın genişliğini çıkan sonuç kadar yap
- Ekran resize ını dinle
- Ekranın toplam genişliğini al
- Toplam genişlikten 200px çıkart
- .sol class ın genişliğini sonuç kadar yap
Örnekte de gördüğümüz gibi calc() fonksiyonu bizi uzun uzun yazılan js kodundan kurtarıyor, yanlız kullanırken -webkit ön ekini kullanmayı unutmayın, calc() fonksiyonu kullanıyorsanız kodunuzun son hali aşağıdaki gibi olmalıdır.
.hede { width: calc(3 * 50px); width: -webkit-calc(3 * 50px); }
Tarayıcı uyumluluk tablosu için tıklayın.
Eyvallah, gayet güzel bir anlatım olmuş. Bilmediğim ve çok işime yarayacak bir fonksiyon.
Yazan Emre Çetin | Tarih : 9 Mart 2014 , Pazar 23:35
Eyvallah hocam
Yazan Mert Köseoğlu | Tarih : 10 Mart 2014 , Pazartesi 00:03
Mobilde webkit motorlu tarayıcılarda -webkit-calc etiketine konmadıkça çalışmıyor. Ve yine mobilde bazen çökme yapıp tarayıcı kapattığı handikaplar çıktığınıda tecrübe notu olarak düşeyim. Destek konusundaki gecikmeler ömürümüzü yedi bitirdi..
Yazan alico | Tarih : 10 Mart 2014 , Pazartesi 09:35
@alico bilgi için teşekkürler.
Yazan Yunus BAŞŞAHAN | Tarih : 10 Mart 2014 , Pazartesi 09:37
Yazan Yunus BAŞŞAHAN | Tarih : 10 Mart 2014 , Pazartesi 09:54
Önemli değil :)
Yazan alico | Tarih : 10 Mart 2014 , Pazartesi 09:59
Bu özelliği yeni öğrendim ve çok kullanışlı gibi gözüküyor. Ancak birçok tarayıcının desteklememesi (Android 2.x gibi) bu özelliği kullanmanın doğru olmayacağı izlenimi bıraktı bende.
Yazan Mehmet | Tarih : 11 Mart 2014 , Salı 09:43
@mehmet maalesef 4.4 ten sonra destek geldi :(
Yazan Yunus BAŞŞAHAN | Tarih : 11 Mart 2014 , Salı 09:46
Yunus hocam yer imlerime eklemiştim konuyu açıkçası iyi ki saklamışım. Bu tarayıcı uyumlulukları konusun da blog için eklenti yapabilirsiniz. Ayrı bir link eklenmemiş olur hem. Sadece bir fikir tekrardan teşekkür ederiz konu için :)
Yazan bulut | Tarih : 11 Mart 2014 , Salı 16:53
@bulut fikir için çok teşekkür ederim en kısa zamanda değerlendireceğim :)
Yazan Yunus BAŞŞAHAN | Tarih : 11 Mart 2014 , Salı 17:02