* * CSS seçici ne yapar?


97

Son zamanlarda rastladı * *içinde CSS .

Site referansı - Site Bağlantısı .

*CSS stil sayfasında tek bir kullanım için, İnternet ve Stack Overflow örneklerle doludur, ancak * *CSS'de iki sembol kullanmak konusunda emin değilim .

Googledim, ancak bununla ilgili herhangi bir bilgi bulamadım, çünkü tek bir *tüm öğeleri seçiyor, ancak sitenin neden iki kez kullandığından emin değilim. Bunun eksik kısmı nedir ve neden bu hack kullanılıyor (eğer bir hack ise)?

Yanıtlar:


138

Tıpkı diğer iki seçiciyi ardı ardına koyduğunuzda olduğu gibi (örneğin li a), alt birleştiriciyi elde edersiniz. Diğer * *herhangi bir öğenin soyundan gelen herhangi bir öğe de öyledir - başka bir deyişle, tüm belgenin kök öğesi olmayan herhangi bir öğe .


cevap için teşekkürler.. düşündüğüm şey buydu, ancak topluluktan sormayı düşünmedim ... yakında kabul
edeceğim

1
sorulacak bir şey daha var - * * kullanmak gerçekten alakalı mı? Kavramı kavradığım halde pratik anlamda
anlamadığım halde

2
@swapnesh bir tarayıcı hackine benziyor. Bir * { font-size: XXX }kural ve bir * * { font-size: YYY }kural vardır. Ayrıntıları anlamak için sabrım olmasa da, biri çoğu tarayıcı için, diğeri ise belirli bir hataya sahip tarayıcılar için geçerlidir. * htmlEski IE'yi tespit etmek için eskiden yaygın olarak kullanılan hack'e benzer .
hobbs

yorumların altına son ayrıntılı bloğu eklemek için teşekkürler.. bu neredeyse mükemmel bir tane.. bunun için daha fazla beyin fırtınası yapmaya gerek yok :) çok
teşekkürler

10
Tarzında unutmayın * html, * * olacak IE6 html elemanı eşleşir.
Alohci

80

Sadece küçük bir büyük örnek:

Bunu sitenize eklemeyi deneyin:

* { outline: 2px dotted red; }
* * { outline: 2px dotted green; }
* * * { outline: 2px dotted orange; }
* * * * { outline: 2px dotted blue; }
* * * * * { outline: 1px solid red; }
* * * * * * { outline: 1px solid green; }
* * * * * * * { outline: 1px solid orange; }
* * * * * * * * { outline: 1px solid blue; }

Demo: http://jsfiddle.net/l2aelba/sFSad/


Örnek 2:

* * CSS seçici ne yapar?

Demo: http://jsfiddle.net/l2aelba/sFSad/34/


7
Bu kesinlikle cevap değil, ama ne kadar güzel bir görselleştirme!
aboy021

1
@ l2aelba gerçekten güzel bir açıklama :) +1
takas

33

* *Üst düzey öğe dışındaki her şeyle eşleşir, ör html.


Teşekkürler Joe, burada ve ayrıca yukarıdaki yorumlara göre test etti : * *seçici, html *eski iyi IE6 dışındaki tüm tarayıcılar için eşdeğerdir :-)
Stano

@Stano * *, html *bir HTML dosyası için ... ile eşdeğerdir . Ancak, diğer türdeki belgelerin stilini belirlemek için CSS kullanılabilir (özellikle SVG).
Sylvain Leroux

11

* verilen stilleri tüm öğelere uygulamak anlamına gelir.

* *verilen stilleri, öğenin tüm alt öğelerine uygulamak anlamına gelir. Misal:

body > * {
  margin: 0;
}

Bu, marj stillerini vücudun tüm alt öğelerine uygular. Aynı şekilde,

* * {
  margin: 0;
}

öğesinin alt öğeleri margin: 0için geçerlidir *. Kısacası, margin: 0hemen hemen her öğe için geçerlidir .

Genelde bir *yeterlidir. İkiye gerek yok * *.


2
+1 .. açıklama için teşekkürler .. son satırda bahsettiğinizden emin olmasam da "Genel olarak * yeterlidir. * * 'a gerek yok. Sanırım."
2013

3
* *stilleri alt öğelere değil, alt öğelere uygular . Alt öğeler >, sizin örneğinizdeki gibi olacaktır , boşluk değil. Torun ve çocuk aynı şey değildir.
BoltClock

7

Bu, başka bir öğenin içine yerleştirilmiş tüm öğeleri seçer, aynı şekilde div a, <a>bir <div>öğenin içinde bir yerde yuvalanmış tüm öğeleri seçer .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.