Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
CSS content özelliği, bir öğenin veya sözde öğenin içeriğine metin, görsel ya da başka bir değer eklemek için kullanılır. En yaygın kullanım alanı ::before ve ::after sözde öğeleridir. Normal öğeye metin dizesi vermek, onun HTML metnini güncelleme yöntemi değildir. Normal öğelerde content: url(...) ile görsel değiştirme gibi ayrı kullanımlar bulunsa da bu rehber metin ve dekoratif sözde öğe üretimine odaklanır.

Örneğin bir bağlantının başına dekoratif bir işaret eklemek için:

Kod:
<a class="harici-link" href="https://example.com">Örnek site</a>

Kod:
.harici-link::before {
  content: "↗";
  margin-right: 0.35rem;
  color: #555;
}

Tarayıcıda bağlantı metninin başında yukarı-sağa bakan ok görünür. Ok görünmüyorsa seçicinin gerçekten ilgili elemana uygulanıp uygulanmadığını, CSS dosyasının yüklendiğini ve content bildiriminin ::before veya ::after üzerinde bulunduğunu kontrol edin.

content nasıl çalışır?​


::before, seçilen öğenin içeriğinden önce; ::after ise sonra sanal bir içerik alanı oluşturur. Bu alanın görünür olması için çoğu durumda content tanımlanır. Boş içerik gerektiğinde content: ""; yazılabilir. Ardından display, position, renk, boyut veya arka plan gibi özelliklerle bu alan biçimlendirilir.

content ile sabit metin eklenebilir:

Kod:
.uyari::before {
  content: "Uyarı: ";
  font-weight: 700;
}

Ayrıca HTML özniteliğinin değeri de okunabilir. Aşağıdaki örnekte CSS, data-label özniteliğini kullanır:

Kod:
<span class="etiket" data-label="Yeni">Ürün</span>

Kod:
.etiket::before {
  content: attr(data-label);
  margin-right: 0.4rem;
  padding: 0.2rem 0.4rem;
  background: #eee;
}

Burada data-label değeri değiştirildiğinde CSS kodunu değiştirmeden görünen etiket de değişir. Ancak content ile eklenen metin, uygulamanın temel içeriği olmamalıdır. Önemli başlık, açıklama, form talimatı veya erişilebilirlik açısından gerekli bilgi HTML içinde bulunmalıdır.

Hangi değer ne için kullanılır?​


Aşağıdaki seçim, content kullanım amacını belirlemeyi kolaylaştırır.

DeğerÖrnekKullanım
Metincontent: "Yeni";Sabit dekoratif veya kısa yardımcı ifade
Boş içerikcontent: "";Biçimlendirilecek sanal kutu oluşturma
Öznitelikcontent: attr(data-label);HTML özniteliğinden değer alma
Sayaçcontent: counter(item);Numaralandırılmış içerik oluşturma

Dekoratif bir ikon için Unicode karakteri kullanılabilir; fakat simgenin anlamı kritikse yalnızca content ile verilmemesi daha güvenlidir. Kullanıcıların CSS kapalıyken de anlamı görebilmesi gerekiyorsa aynı bilgi HTML metninde yer almalıdır. Benzer şekilde, liste işareti veya tırnak gibi görsel ayrıntılar için content uygundur; bir makalenin asıl paragrafını bu özellikle üretmek uygun değildir.

Uygulanabilir mini örnek​


Aşağıdaki örnek, HTML içeriğini koruyup yalnızca görsel bir işaret ekler:

Kod:
<p class="tamamlandi">İşlem tamamlandı</p>

<style>
.tamamlandi::before {
  content: "✓";
  margin-right: 0.4rem;
  color: green;
}
</style>

Beklenen sonuç, paragrafın başında onay işareti ve ardından “İşlem tamamlandı” metnidir. İşaret görünmüyorsa ::before yazımını, sınıf adını ve stil bloğunun sayfaya gerçekten eklendiğini kontrol edin. Metni CSS ile ekleyip HTML'den kaldırmak yerine, CSS'yi yalnızca sunum katmanında tutun. İçeriğin konumu, metni veya anlamı değiştiğinde ilk tercih HTML'yi güncellemek olmalıdır.

Sık yapılan hatalar​


  • content özelliğini normal bir div veya p öğesine verip metin eklenmesini beklemek. Bunun yerine ::before ya da ::after kullanın.
  • Metin içeren sözde öğeye content yazmayı unutmak. content yoksa sözde öğe beklenen içeriği üretmez.
  • Ekran okuyucular için gerekli bilgiyi yalnızca CSS ile oluşturmak. Temel içerik HTML'de bulunmalıdır.
  • attr() ile okunacak özniteliği HTML'de tanımlamamak. Öznitelik yoksa beklenen değer gösterilmez.
  • Büyük miktarda metni content ile üretmek. Bu yaklaşım düzenleme, arama, kopyalama ve erişilebilirlik açısından sorun çıkarabilir.

Kaynaklar​



Sık sorulan sorular​


content ile resim eklenebilir mi?​


Evet, sözde öğede content: url("ikon.svg"); kullanılabilir; ancak boyutlandırma ve yerleşim için çoğu durumda background-image veya HTML içindeki gerçek img öğesi daha kontrollüdür. Anlam taşıyan görseller için alternatif metin gereksinimini de ayrıca düşünün.

content ile CSS değişkeni kullanılabilir mi?​


Evet. Örneğin content: var(--etiket); yazılabilir. Değişken tırnaklı bir CSS dizesi taşımalıdır: örneğin --etiket: "Yeni";. Eksik tanım için content: var(--etiket, ""); kullanılabilir. Tırnaksız gelişigüzel bir sözcük geçerli content değeri sayılmaz.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.