CSS ile Devamını Oku Butonu Tasarımı
::after Pseudo Class'i ile Bir Elemana Verilen float Özelliğini Kaldırmak
Bu çalışmamızda :after pseudo classı ile clear both nasıl yapılır? Bulmaya çalışacağız.
Şu şekilde bir kodlama yaptığımızı hayal edelim.
<style>
.flist{display:block;max-width:25%;height:auto;padding:3rem;margin:.3rem;background:red;float:left;}
.kap{width:80%;height:auto;display:block;background:blue;}
.kap::after{clear:both;content:"";display:table;clear:left;font-size:0;height:0;} .kapIki{width:3rem;height:3rem;background:green;display:block;color:white;padding:2rem;margin:.5rem 0;}
</style>
<div class="kap">
<div class="flist">1</div>
<div class="flist">2</div>
<div class="flist">3</div>
<div class="flist">4</div>
</div>
<div class="kapIki">2. kap</div>
Görünümü bu şekilde olacaktır.
Clearfix ya da clear işlemi uygulanmadan önce
Görüldüğü gibi kırmızı kutulara float:left özelliği verildiğinden dolayı dolayı yeşil kutu olması gereken yerde değil. Ayrıca kapsayıcı olan mavi arka planlı kutuyu da göremiyoruz. Çünkü kırmızı kutularla aynı float değerinde değil. Normalde bu problemi çözmek için araya clear:both özellikli bir temizleme divi koyarız. Ama bu şekilde kutucukların çok kullanıldığı bir tasarımda pek çok defa bu clear:div özellikli elemanı yazmamız gerekir. Sürekli kod tekrarı yapmamak ve gereksiz HTML kod kalabalığı yapmamak için :after pseudo classını kullanacağız. Aynı kodun Style kısmına kırmızı ile işaretli kod satırını ekleyelim.
<style>
.flist{display:block;max-width:25%;height:auto;padding:3rem;margin:.3rem;background:red;float:left;}
.kap{width:80%;height:auto;display:block;background:blue;}
.kap::after{ content:""; display:table;clear:both; font-size:0;height:0;}
.kapIki{width:3rem;height:3rem;background:green;display:block;color:white;padding:2rem;margin:.5rem 0;}
</style>
Eklendikten sonraki sonuç
Gördüğünüz gibi kırmızı kutucukların kapsayıcısına :after pseudo classı ile clear:both özelliğini ekledik. Classın oluşturduğu eleman tasarımda yer kaplamasın diye font-size:0; ve height:0; özelliklerini de ekledikten sonra mavi kutumuz kırmızı kutuları otomatik olarak kapladığı gibi, bir sonraki elemanın da tam olarak olmasını istediğimiz yerden devam etmesini sağladı. Bu çözüm Firefox 84.0.1 Microsoft Edge, Safari 14.1.1 ve Chrome 90.0.4430.212 sürümlerinde denendi ekran görüntüsü Chrome'dan alındı. Diğer tarayıcılarda denemedim. Kontrol etmeden kullanmayınız.
Sidebar İçin Özet Metin Kutusu(Elipsisli-3 noktalı) HTML-CSS
JS ve CSS ile HTML Elemanlarının Sıralamasını Nasıl Değiştiririz?
HTML elemanlarının sıralarını değiştirebilmeniz için kapsayıcı elemanının display değerinin flex olması gerekmektedir. Sonrasında javascript ile verdiğiniz order değerine göre sıralanacaktır.
Aşağıdaki kodlar butona basıldığında elemanların sırasının karışık olarak değişmesini sağlamaktadır.
<style>
.kapsayici {
display: flex;
display: -webkit-flex;
flex-direction: column;
max-width: 92px;
height: auto;
margin: 0px auto;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: stretch;
align-content: stretch;
}
.eleman,
.karistirButon {
padding: 3%;
border: solid 1px #f00;
margin: 2px;
max-width: 92px;
text-align: center;
}
.karistirButon {
background-color: red;
color: #fff;
margin: 0px auto;
margin-top: 5px;
cursor: pointer;
display: block;
padding: 1%;
max-width: 92px;
}
</style>
<script>
function siraDegistir() {
var sira = 0;
var siraliste = [];
var i = 0;
var elemanlar = document.querySelectorAll(".eleman");
for (i = 0; i < elemanlar.length; i++) {
sira = Math.floor(Math.random() * (elemanlar.length)) + 1;
if (!siraliste.includes(sira)) {
siraliste.push(sira);
elemanlar[i].style.order = sira;
} else {
i--;
}
}
}
</script>
<div class="kapsayici">
<div class="eleman">1</div>
<div class="eleman">2</div>
<div class="eleman">3</div>
<div class="eleman">4</div>
</div>
<div class="karistirButon" onclick="siraDegistir();">Sırayı Karıştır</div>
Bu kodların çalışır hali
Saygılarımla...
Turgut ARSLAN
CSS Hazır Basit Product Box Kodu(Transition Efektli)
Saygılarımla...
Turgut ARSLAN
CSS Transition Background Efektli Kutucuklar
- Hangi özelliğe uygulanacak?
- Ne kadar sürecek?
- Zamanlama(Burada zamanlamadan kastımız geçiş efektinin belirlenen zman içinde ne şekilde tamamlanacağıdır. transition-timing-function: olarak bilinir.)
- "transition" kodunu hangi elemana uygulaycaksanız, o elemanın CSS kuralları içine ekleyin.
- Değişmesini istediğiniz CSS kuralının(genişlik, yükseklik, arakaplan rengi vs.) transition kodunu eklediğiniz elemanın kuralları içinde olduğuna emin olun.
- Değişikliğin uygulanmasını istediğiniz aksiyon tanımlarında(:hover, :focus gibi) değişecek olan CSS kurallarının son hallerini yazın. Aynı arkaplan efekt sonunda beyaz olacak ise buradaki örnekte " background-color: #fff;" yazdığımız gibi.
CSS Timeline Side Bar
Responsive CSS Hazır Metin Kutusu
CSS'de ">", "+" ve "~" sembolleri ne manaya gelir?
Web sitesi yapmak zahmetli ama eğlenceli bir iştir. Tasarımından, front-end ve back-end yazılımına ve UI/UX testlerine kadar pek çok alanı kapsayan kompleks bir iştir. Ben özellikle front-end kısmını çok severim. Kullanıcı arayüzlerini programlamak, tasarımı sadece bir resim halinden çıkarıp, canlı ve etkileşimli bir HTML dokümanı haline getirmek, saatlerce sıkılmadan yapabileceğim bir iştir.
Bu işi yaparken karşılaştığım zorlukları aşabilmek için pek çok web sitesinden ilham ve/veya çözüm yöntemi ararım. Benzer durumları nasıl çözdüğünü incelerim. Front-end kullanılan kodlar tarayıcıda çalışan scriptlerden oluştuğu için sürekli herkese açıktır ve ön yüz geliştiricileri birbirlerinin kodları görebilirler ve inceleyebilirler. İncelenen bir sitenin CSSsyi nasıl kurgulamış, uygulanan JS çözümleri neye göre yazıldığı gibi pek çok araştırmalar yaparken ortak bir akıl gibi davranır ve sorunlarımızı beraberce çözeriz. Bu yazımda bazı web sitelerinde CSS kodlarını incelerken sık sık gördüğümüz özel karakterlerden bahsedeceğim.
Bazı sitelerde, kaynak kodlarını incelerken, CSS kodlarında >, + ve ~ sembollerinin selektörler arasında kullanıldığını görürsünüz. Bildiğiniz gibi selektör CSS'de stili düzenlenecek HTML'elemanını seçmek için kullanılır.
Normalde alışık olduğunuz gibi bir CSS selektör yapısında, '#', '.', ':' gibi bazı semboller ile çeşitli erişim yolları kurarız. Ancak yukarıda belirttiğim semboller bazı özel durumlarda bize yardımcı olmaktadırlar.
Örneğin aşağıdaki gibi bir yazımda id'si kutu olan div içindeki tüm p elemanların yazı karakterleri bold olacaktır.
<style>
div#kutu p{
font-weight:bold;
}
</style>
<div id="kutu">
<p>İlk paragraf elemanı </p>
<div id="icKutu">
<p>İçerdeki Div'in içindeki paragraf elemanı</p>
</div>
<p>İkinci paragraf elemanı</p>
<p>Üçüncü paragraf elemanı</p>
</div>
CSS'de '>' sembolünün kullanımı
Diyelim ki biz sadece #kutu divi içindeki p'lerin bold olmasını, #icKutu elemanındaki p'nin normal olmasını istiyoruz Bunun için CSS koduna,
#icKutu p{font-weight:normal !important;}
Şeklinde bir satır ekleyerek p elemanına etki eden önceki CSS kodunu ezmemiz gerekmektedir.
CSS kodlarken kod ezme işlemleri genelde istenmeyen bir durumdur. Mümkün olduğu kadar bu yoldan kaçınmak gerekir. İşte > işareti tam da bu noktada imdadımıza yetişiyor. Kodu yeniden düzenleyelim.
<style>
div#kutu > p{
font-weight:bold;
}
</style>
<div id="kutu">
<p>İlk paragraf elemanı </p>
<div id="icKutu">
<p>İçerdeki Div'in içindeki paragraf elemanı</p>
</div>
<p>İkinci paragraf elemanı</p>
<p>Üçüncü paragraf elemanı</p>
</div>
Başka bir kod yazmadan sadece araya > işaretini koyarak tarayıcıya dedik ki, ey tarayıcı sadece doğrudan #kutu divindeki p'leri bold yap eğer p elemanı başka bir şeyin içindeyse ona dokunma. Bu koda göre tarayıcımız #kutu divi içindeki tüm p'leri bold yapacak ama #icKutu divin içinde yazılmış olan p elemanı da #kutu divi içinde olmasına rağmen bold olmayacaktır.
CSS'de '+' sembolü kullanımı
Bu sembol de belirli elemandan sonra gelen ilk belirli elemanı hedeflemek için kullanılır
Örneğin div elemanından sonra gelen ilk p elemanını seç gibi.
<style>
div + p{
color:red
}
</style>
<div id="kutu">
<p>İlk paragraf elemanı </p>
<div id="icKutu">
<p>İçerdeki Div'in içindeki paragraf elemanı</p>
</div>
<p>İkinci paragraf elemanı</p>
</div>
<p>Üçüncü paragraf elemanı</p>
Bu kodlama örneğinde tarayıcıya divlerden sonra gelen ilk p elemanını kırmızı yap şeklinde bir talimat vermiş oluyoruz.
See the Pen CSS'de '+' sembolü kullanımı by Turgut Arslan (@draguth) on CodePen.
CSS'de '~' sembolünün kullanımı
Evet geldik en ilginç işarete ~ sembolü belirli bir elemandan sonraki tüm belirli elemanları seçmeye yarar.
Örneğin bir div elemanından sonra gelen tüm p elemanları seç gibi.
<style>
div#icKutu ~ p{
color:blue
}
</style>
<div id="kutu">
<p>İlk paragraf elemanı </p>
<div id="icKutu">
<p>İçerdeki Div'in içindeki paragraf elemanı</p>
</div>
<p>İkinci paragraf elemanı</p>
<p>Üçüncü paragraf elemanı</p>
<div id="icKutu2">
<p>İçerdeki Div'in içindeki paragraf elemanı2</p>
</div>
</div>
<p>Dördüncü paragraf elemanı</p>
Bu kodlama örneğinde tarayıcı #icKutu divinden sonra gelen ve #kutu divi içinde olan tüm p kardeşlerini mavi yapacaktır. Ancak bu seçimin #icKutu2 divindeki p'yi kapsamadığına dikkat edin.
See the Pen CSS'de '~' sembolünün kullanımı by Turgut Arslan (@draguth) on CodePen.
Firefox ile Bir Sitenin TLS Versiyonunu Nasıl Öğrenirsiniz?
TLS (Transport Layer Security), internet üzerinden yapılan iletişimi güvence altına alan bir protokoldür. Bir web sitesinin hangi TLS versiy...
-
Google Ads reklamlarının TBM maliyetleri enflasyon ve rekabetin etkisiyle giderek artmakta. Artık eskisi gibi ucuz CPC'lerle reklam yapm...
-
Bu çalışmamda JavaScript ile bir geri sayım sayacı yaptım. Input elemanına bitiş zamanını yazıp butona tıkladığınızda belirlediğiniz saate ...
-
Google Maksimum Performans Kampanyalarının En İyi Kurulum Ayarları Google Maksimum Performans Kampanyaları (MKP), Google Ads'in en yen...