2010-10-04 17 views
7

Sınıfın altındaki tüm divların bir şeyi hizalamak için kullanılacağını düşündüğüm oldukça büyük demoda bir hata var. Şimdi, hizalamak istediğim bölümün dışında, ancak .special'un içinde ekstra bir boşluk eklemem gerektiğini anlıyorum.css sınıfı seçilmiyor mu?

Nasıl yazabilirim. Özel div [NOT someclass]? ya da bunu yapmanın bir yolu yok ve çok fazla html yazmam gerekiyor mu?

+4

geri almak? Örneğin IE6'dan ne haber? Çözümün ne kadar karmaşık olacağını doğrudan etkileyecektir. –

cevap

1

jQuery veya başka bir Javascript Framework ile gitmek istiyorum, seçiciler sadece rock ve sınıf XY değil elde etmek oldukça kolaydır. Pekka'nın işaret ettiği gibi, kardeşlerin hedeflemek istediğinden emin değilim. getElementsByClassName() hemen hemen tüm tarayıcılar tarafından uygulanmaktadır (hangisinin işe yaramadığını biliyorsunuz, değil mi?).

Ben de IE'de çalışması için solution on devshed oldukça şık bulundu:

onload=function(){ 
if (document.getElementsByClassName == undefined) { 
    document.getElementsByClassName = function(className) 
    { 
     var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)"); 
     var allElements = document.getElementsByTagName("*"); 
     var results = []; 

     var element; 
     for (var i = 0; (element = allElements[i]) != null; i++) { 
      var elementClass = element.className; 
      if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) 
       results.push(element); 
     } 

     return results; 
    } 
} 
} 

şimdi yapmanız tüm div sınıfları arasında yineleme ve istediğiniz YAPMAYIN birini iptal etmektir gereken her şey.

+0

Hehe ... "Hedeflemek istediğiniz kardeşlerin ne olduğundan emin değilim". Böyle bir şey olsaydı size mizah verdim :) –

+0

'typeof x == 'undefined'' 'x == undefined''den daha iyidir çünkü' undefined' yalnızca bir şey için ayarlanabilen global bir değişken ama 'typeof' her zaman doğru dizeyi döndüren bir anahtar kelimedir. – casablanca

+1

@ Šime whoops Gelecekte eğlenmek için olduğu gibi bırakacağım @casablanca Her zaman ikincisiyle gittim, ama açıklaman bana daha iyi bir yol olduğunu söylüyor. Teşekkürler! –

8

CSS3, not() seçiciyi içerir. Tek sorun (tahmin ettiniz) IE uyumluluğu yok. Eğer IE < 9 kullanıcısından Javascript'i kullanmak istiyorsanız, IE9.js. ile IE uyumluluğunu alabilirsiniz. Yukarıdaki her iki yanıt için

5

+1. Ben bazı şeyleri kurtulmak başardı ekleyeceğiz ama css bloğunda bu yazma etkiyi size uyumlu olması gerekiyor hangi tarayıcılar

some-type: inherit; 
+0

Bu BRILLIANT - tam ihtiyacım olan şey! – n8wrl

İlgili konular