Co oznacza selektor CSS " ~ " (tilde/squiggle/twiddle)?
Wyszukiwanie postaci ~
nie jest łatwe. Przeglądałem jakiś CSS i znalazłem to
.check:checked ~ .content {
}
Co to znaczy? 5 answers
Selektor
~
jest w rzeczywistości ogólny kombinator rodzeństwa (przemianowany na następny-kombinator rodzeństwa na poziomie selektorów 4):
Ogólny kombinator rodzeństwa jest wykonany z "tyldy" (U+007E, ~) znak, który oddziela dwie sekwencje prostych selektorów. Na elementy reprezentowane przez dwie sekwencje mają ten sam rodzic w drzewo dokumentu i element reprezentowany przez pierwszą sekwencję poprzedza (niekoniecznie od razu) element reprezentowany przez drugi.
Rozważ następujący przykład:
.a ~ .b {
background-color: powderblue;
}
<ul>
<li class="b">1st</li>
<li class="a">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="b">5th</li>
</ul>
.a ~ .b
pasuje do 4 i 5 pozycji listy, ponieważ:
- są
.b
elementami - są rodzeństwem
.a
- pojawiają się po
.a
w kolejności źródeł HTML.
Podobnie, .check:checked ~ .content
dopasowuje wszystkie .content
elementy, które są rodzeństwem .check:checked
i pojawiają się po nim.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-01 15:49:23
General sibling combinator
Ogólny selektor kombinatora rodzeństwa jest bardzo podobny do sąsiedniego selektora kombinatora rodzeństwa. Różnica polega na tym, że wybrany element nie musi od razu zastąpić pierwszego elementu, ale może pojawić się w dowolnym miejscu po nim.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-21 21:43:15
Dobrze jest również sprawdzić inne kombinatory w rodzinie i wrócić do tego, co jest tym konkretnym.
ul li
ul > li
-
ul + ul
ul ~ ul
Przykładowa lista kontrolna:
-
ul li
- Looking inside - wybiera wszystkieli
elementy umieszczone (w dowolnym miejscu) wewnątrzul
; Selektor Potomków -
ul > li
- Looking inside - Selects tylko bezpośrednili
elementyul
; tzn. wybierze tylko bezpośrednie dziecili
zul
; Selektor Dla Dzieci lub Selektor dla dzieci -
ul + ul
- patrząc na zewnątrz - zaznaczaul
bezpośrednio poul
; nie zagląda do środka, ale na zewnątrz w poszukiwaniu bezpośrednio następującego elementu; sąsiadujący Selektor rodzeństwa -
ul ~ ul
- patrząc na zewnątrz - wybiera wszystkieul
co następuje poul
nie ma znaczenia, gdzie jest, ale obaul
powinny mieć tego samego rodzica; ogólny Selektor rodzeństwa
Ten, na który tu patrzymy, to ogólny Selektor rodzeństwa
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-25 17:26:27
Jest to General sibling combinator
i jest bardzo dobrze wyjaśnione w odpowiedzi @ Salaman.
Brakowało mi Adjacent sibling combinator
, która jest +
i jest ściśle związana z ~
.
Przykładem może być
.a + .b {
background-color: #ff0000;
}
<ul>
<li class="a">1st</li>
<li class="b">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="a">5th</li>
</ul>
- dopasowuje elementy, które są
.b
- sąsiadują z
.a
- Po
.a
W HTML
W powyższym przykładzie oznacza 2nd li
, ale nie 4th.
.a + .b {
background-color: #ff0000;
}
<ul>
<li class="a">1st</li>
<li class="b">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="a">5th</li>
</ul>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 14:14:15
Zauważ, że w selektorze atrybutów (np. [data-components~=wheels]
) tylda
Reprezentuje element z nazwą atrybutu attr, którego wartością jest oddzielona białymi znakami lista słów, z których jeden jest dokładnie wartością.
Https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-24 19:45:52