簡體   English   中英

為什么CSS直接后代選擇器未應用於Angular組件

[英]Why CSS direct descendant selector is not applied on Angular component

我們有這個簡單的main.html

<app>
   <sidebar></sidebar>
   <main-content>
      <router-outlet></router-outlet>
   </main-content>
</app>

當我們通過路由(URL更改)加載簡單組件時,HTML變為:

<app>
   <sidebar></sidebar>
   <main-content>
      <router-outlet></router-outlet>
      <component></component>
   </main-content>
</app>

第一個問題是為什么<component>不嵌套在<router-outlet> ,而是成為同級對象。

但是,此CSS不適用於<component>標簽:

app sidebar main-content > * {
   background: red;
}

當我們檢查時, <router-outlet>具有這種樣式,但是作為<main-content>的直接子<component>沒有這種樣式。

怎么了

根據您指定的代碼:

<app>
   <sidebar></sidebar>
   <main-content>
      <router-outlet></router-outlet>
      <component></component>
   </main-content>
</app>

這個

app sidebar main-content > * {
   background: red;
}

將不會起作用,因為main-content不是sidebar的子sidebar而是同級元素

我建議你試試

app sidebar + main-content > * {
   background: red;
}

甚至

app main-content > * {
   background: red;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM