Selektory Potomków CSS

Jestem trochę zdezorientowany między tymi dwoma selektorami.

Does the descendent selector:

div p

Wybierz wszystkie p w obrębie div czy jest to natychmiastowe zejście? Więc jeśli p znajduje się wewnątrz innego {[5] } to nadal będzie wybrany?

Następnie dziecko selektor:

div > p

Co za różnica? Czy dziecko oznacza natychmiastowe dziecko? Np.

<div><p>

Vs

<div><div><p>

Obie zostaną wybrane, czy nie?

Author: SherylHohman, 2009-07-25

7 answers

Pomyśl tylko, co oznaczają słowa "Dziecko" i "potomek"w języku Angielskim:

  • moja córka jest zarówno moim dzieckiem, jak i moim potomkiem
  • Moja wnuczka nie jest moim dzieckiem, ale jest moim potomkiem.
 418
Author: RichieHindle,
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
2009-07-25 14:46:51

Tak, masz rację. div p będzie pasować do poniższego przykładu, ale div > p nie będzie.

<div><table><tr><td><p> <!...

Pierwszy nazywa się selektorem Potomków , a drugi nazywa się selektorem Potomków.

 44
Author: Çağdaş Tekin,
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
2009-07-25 14:31:27

Bascailly, " A b " wybiera wszystkie b wewnątrz a, podczas gdy" A>b " wybiera B Jakie są tylko dzieci a, nie wybiera B Jakie jest dziecko b Jakie jest dziecko a.

Ten przykład ilustruje różnicę:

div span{background:red}
div>span{background:green}

<div><span>abc</span><span>def<span>ghi</span></span></div>

Kolor tła abc i def będzie zielony, ale ghi będzie miał czerwony kolor tła.

Ważne: Jeśli zmienisz kolejność zasad do:

div>span{background:green}
div span{background:red}

Wszystkie litery będą miały czerwone tło, ponieważ selektor potomka wybiera również potomka.

 21
Author: Ignas2526,
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
2013-12-24 11:36:48

Należy pamiętać, że selektor potomny nie jest obsługiwany w przeglądarce Internet Explorer 6. (Jeśli używasz selektora w selektorze jQuery/Prototype / YUI itp, a nie w arkuszu stylów, nadal działa)

 8
Author: rlovtang,
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
2009-07-25 14:53:20

W teorii: Dziecko = > bezpośredni potomek przodka (np. Joe i jego ojciec)

Descendant = > każdy element, który pochodzi od konkretnego przodka (np. Joe i jego pra-pra-pradziadek)

W praktyce: wypróbuj ten HTML:

<div class="one">
  <span>Span 1.
    <span>Span 2.</span>
  </span>
</div>

<div class="two">
  <span>Span 1.
    <span>Span 2.</span>
  </span>
</div>

Z tym CSS:

span { color: red; } 
div.one span { color: blue; } 
div.two > span { color: green; }

Http://jsfiddle.net/X343c/1/

 7
Author: Snowcrash,
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-05-22 22:52:06
div p 

Wybiera wszystkie elementy 'p', Gdzie rodzicem jest element ' div '

div > p

Oznacza to, że dzieci Zaznacza wszystkie elementy 'p', Gdzie rodzicem jest element' div '

 2
Author: user3351229,
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-04-09 05:18:27

Wybór CSS i zastosowanie stylu do określonego elementu można wykonać poprzez przejście przez element dom [Przykład

Przykład

.a .b .c .d{
    background: #bdbdbd;
}
div>div>div>div:last-child{
    background: red;
}
<div class='a'>The first paragraph.
 <div class='b'>The second paragraph.
  <div class='c'>The third paragraph.
   <div class='d'>The fourth paragraph.</div>
   <div class='e'>The fourth paragraph.</div>
  </div>
 </div>
</div>
 -1
Author: Aravind Cheekkallur,
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-07-21 07:01:54