2013-08-06 17 views
13

tüm giriş türlerini ı değiştirmek istediğiniziSCSS/CSS seçici bazı giriş tipi (framework itibaren) bu SCSS ayarı vardır sahip

textarea, 
input[type="text"], 
input[type="password"], 
input[type="datetime"], 
... 
input[type="date"], 
input[type="month"], 
input[type="time"], 
input[type="week"], 
{ 
    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); 
} 

seçmek için /, benzer bir şey bütün sıfırlamak

textarea, 
input[type="*"], 
{ 
    @include box-shadow(none); 
} 

Yukarıda çalışmaz, Yeterli özgü değil. Ayrıca,

Tüm olası türleri listelemek yerine bunu yapmanın bir yolu var mı?

Teşekkürler.

+0

Tam olarak tür niteleyicisi olmadan "input" hakkında yeterince spesifik olmayan nedir? Tüm giriş alanlarının bir tipi vardır; eksikse, varsayılan olarak "text" olarak ayarlanır. – Spudley

+0

[SASS: Giriş alanları için mixin oluştur] olası bir kopyası (http://stackoverflow.com/questions/13180807/sass-create-mixin-for-input-fields) – cimmanon

+0

İlgili: http://stackoverflow.com/questions/17369600/scss-sass-mixin-to-return-a-string değeri – cimmanon

cevap

24

Çok sayıda giriş türü vardır. Eğer textareas istiyorum ve daha sonra :not seçici kullanan bazı giriş türlerinin hariç olmak istiyorsanız bir türü olan herhangi bir giriş ... sonra

textarea, 
input[type] { 
    ... 
} 

özniteliği edin. Eğer gerçekten listeyi kaçınamaz böylecehttp://jsfiddle.net/Pnbb8/

textarea, 
input[type]:not([type=search]):not([type=url]):not([type=hidden]) { 

} 

Fakat böyle DÜZENLEME ÖRNEĞİ JSFIDDLE ben, istediğiniz DO türlerinden daha istemek YAPMAYIN çok daha fazla çeşit muhtemelen olduğunu söyledi.

Bunun yerine her zaman bir CSS sınıfı kullanabilirsiniz.

.box-shadowed 
{ 
    @include box-shadow(none); 
} 
+1

Kullanamıyorsunuz:: (değil) CSS'de olduğu gibi - http://stackoverflow.com/questions/10711730/ whats-the-değil-in-the-değil-içinde-değil-seçici-arasında-jquery-ve-css – BoltClock

+0

@BoltClock - Sen benim sözdizimi yanlış oldu, ama sen sözdizimi düzeltilmiş ve aşağıdaki gibi değil zincirleri olabilir: ([type = type1]): değil ([type = type2]) http://jsfiddle.net/Pnbb8/ en son FF veya Chrome –

+0

'da bunu deneyin. Bağlantılı soruya kendi cevabımda aynı şeyi söyledim. – BoltClock

1

Bu yeterli midir?

input[type="text"] { 
    border: 1px red; 
} 

input[type] { 
    border: 1px solid blue; } 
} 

Her ikisi de aynı özelliğe sahiptir, bu nedenle sonuncusu geçersiz kılar.

bakınız jsFiddle: http://jsfiddle.net/TheNix/T2BbG/

Bir başka çözüm ise seçiciden elemanı ommit olacaktır. İkincisi daha yüksek bir özgüllüğe sahip olacaktır - ancak, performans açısından, ilkinin evrensel bir seçici kullanmasına benzer olduğunu bilmelisiniz (bu özellik, DOM'deki tüm öğeleri eşleştirmeye çalıştığı için, özniteliği kontrol etmek için).

[type="text"] { 
    border: 1px red; 
} 

input[type="text"] { 
    border: 1px solid blue; } 
}