Günümüzün web uygulamalarında kullanıcıya elimizden geldiğince fazla bilgi vermeye, uygulamaları mümkün olduğunca erişilebilir ve kullanıcı dostu kılmaya gayret gösteriyoruz (göstermeliyiz). Bu yazımızda CSS’in bize sağladığı özellik seçiciler yardımıyla kullanıcı dostu linkler hazırlayacağız.
CSS dokümanımız içerisinden seçicileri kullanarak XHTML elemanlarını seçer ve bunlara görsellik kazandırırız. Bu seçme işlemini eğer bir XHTML elemanın özelliğine göre yapmak istersek özellik seçicileri kullanırız.
XHTML içeriğimiz;
<p>Lorem ipsum dolor <a href="http://www.yahoo.com">YAHOO</a>, consectetur <a href="#">adipiscing elit</a>. Vestibulum scelerisque. consectetur <a href="http://www.herhangibiryer.com/herhangibirdosya.pdf">adipiscing elit</a>. Vestibulum scelerisque. <a href="http://www.adobe.com">ADOBE</a> pharetra asapien vel <a href="herhangibirdosya.doc">turpis</a>, <a href="herhangibirdosya.pdf">Aliquam nisi</a> eros, luctus tincidunt, dignissim eget</p>
Dikkat ederseniz içeriğimizde toplam altı adet link var. Bunların iki tanesi Yahoo ve Adobe harici linklerini, bir tanesi dâhili (#) bir linki, bir tanesi bir word dokümanını ve kalan iki tanesi de biri harici biri dahili olmak üzere iki pdf dokümanını işaret ediyor. Şimdi sırayla bütün linklerimizi seçelim;
/* Genel link tanımlamamız */
a{
color:#06F;
text-decoration:underline;
}
/* Genel link :hover durumu tanımlamamız */
a:hover{
color:#0CF;
text-decoration:noner;
}
/* href="http..." ile başlayan linkleri seç */
a[href^='http'] {
background:url(harici.gif) no-repeat right top;
padding:0 13px 0 0;
}
/* href="... .pdf" ile biten linkleri seç */
a[href$='.pdf'] {
background:url(pdf.gif) no-repeat right top;
padding:0 15px 0 0;
}
/* href="... .doc" ile biten linkleri seç */
a[href$='.doc'] {
background:url(word.gif) no-repeat right top;
padding:0 15px 0 0;
}
/* href="... .pdf" ile biten,
href="http..."ile başlayan linkleri seç */
a[href$='.pdf'][href^='http'] {
background:url(pdfexternal.gif) no-repeat right top;
padding:0 25px 0 0;
}
Burada ilk iki kuralımız, bütün <a> etiketlerini etkileyen genel tanımlamalarımızı içeriyor. Üçüncü kuralımızda linkler içerisinde href=”http…” ile başlayanları seçmiş olduk. Burada ^ işaretini “http ile başlayanlar” diyebilmek için kullanıyoruz. Dördüncü kuralımızda ise href=”…pdf” ile bitenleri seçebilmek için kullanıyoruz. Burada $ işaretini “.pdf ile bitenler” diyebilmek için kullanıyoruz. Beşinci kuralımız dördüncünün aynısı, burada da word dokümanlarını işaret eden linkleri seçmiş oluyoruz. Altıcı kural da ise çoklu bir özellik seçimi tanımladık. Çünkü örnek vermek gerekirse; bazı linkler örneğimizde olduğu gibi site dışındaki bir pdf dokümanına gidebilir. Bu çoklu tanımlamayla hem “http” ile başlayan hem de “.pdf” ile biten linkleri seçmiş olduk.
Uygulamanın çalışan halini buradan görebilirsiniz…
Özellik seçiciler CSS üzerinden, çok daha spesifik seçimler yapmamıza imkan tanıyor. IExplorer 6′nın özellik seçicileri desteklemediğini söylesem pek şaşırmazsınız herhalde. Bu sorunu isterseniz Javascript kullanarak aşabilirsiniz. Bir sonraki yazımızda IE6 ve diğer bütün standart dışı tarayıcılar için bu işi bir de JQuery kullanarak yapacağız.
O zamana kadar konuyla ilgili görüş ve önerilerinizi bekliyorum. Sağlıcakla kalın…
Fırından yeni çıkmış yazılardan haberdar olmak için RSS yayınıma abone olabilir ya da beni Twitter'dan takip edebilirsiniz.
Yorumla BakalımBu Makale için toplam 5 adet yorum bulunmaktadır...
Bu Makale 12 February, 2009 ve saat 13:51 itibariyle CSS kategorisi altına kaydedilmiştir. Bu makale ile ilgili yorumları RSS 2.0 beslemesinden takip edebilirsiniz.. Bu makale için yorum yapabilir, veya kendi web sitenize trackback sağlayabilirsiniz...
12 February, 2009 ve saat 21:48:23'de gönderdi...
Gayet güzel bir paylaşım. a[href^='http'] kodcağazı beni şaşıttı. İlk defa böyle bi’şeyle karşılaştım. CSS’nin öğeleri bu şekilde de çözelbilmesi beni şaşırttı. bende a[target='_blank'] şekilde kullanarak, yeni pencerede açılacak bağlantıların seçilebilmesini keşfetmiş oldum. Çok iyi oldu bu, Güzel
Peki tagına bağlantı veriyoruz da niye div veya başka ögelere bağlantı veremiyoruz? Veya div veya başka tag lara href özelliğini nasıl veririz?
12 February, 2009 ve saat 22:39:28'de gönderdi...
@yedincisenol merhaba,
CSS gücünü seçicilerinden alır, bu anlamda özellik seçiciler oldukça önemli ve arabirim geliştiricisinin elini güçlendiriyor. Ne yazık ki IExplorer bu konuda mızıkçılık yapıyor
Normalde XHTML 1.0 kapsamı içerisinde href özelliği birkaç yerde kullanılabiliyor. Bu anlamda div, span, p gibi etiketlerin href özelliği bulunmuyor. Bunların tıklandığında bir sayfaya açılmasını sağlamak için Javascript kullanılanilir.
Ek olarak şu anda W3C’un üzerinde çalıştığı XHTML2 teknolojisinde href özelliğinin diğer pek çok etikete adaptasyonu düşünülüyor. Bu da a etiketini gereksiz kılıyor, ama XHTML2′de de a etiketini tutmaya devam edecekler…
24 May, 2009 ve saat 18:18:11'de gönderdi...
@oztecnic sayende CSS’nin bilmediğim bu özelliklerini de öğrenmiş oldum. JQuery ile ilgili makalelerini sabırsızlıkla bekliyorum, RSS’ne üyeyim. lütfen devam et.. çok teşekkürler..
5 June, 2009 ve saat 11:36:09'de gönderdi...
@joyologo, iş yoğunluğu nedeniyle bir süre ara vermek durumunda kaldım, ama yakında yeni paylaşımlarla devam edeceğim…
KOlay gelsin…
23 August, 2009 ve saat 23:52:10'de gönderdi...
CSS nin bu özelliğini bilmiyordum. Çok teşekkürler