情景:父元件fathercomponent中使用了子元件childcomponent,父元件有自己的css檔案,子元件也有自己的css檔案,在父元件中修改了子元件的樣式,但不起作用。
檢視html元素的樣式表,發現 定義的樣式後面都加了個 _ngcontent-c#,這是angular為了區分自己的樣式,特意加的標記。
使用特殊選擇器:元件樣式中有一些從影子 dom 樣式範圍 (shadow dom style scoping) 領域引入的特殊選擇器:
:defined:匹配任何已定義的元素,包括內建元素和定義的自定義元素customelementregistry.define()。
:host:選擇包含其內部使用的css 的shadow dom的影子主機。
:host():選擇包含其內部使用的css 的陰影dom的陰影主機(因此您可以從其陰影dom中選擇自定義元素) - 但僅當作為函式引數給出的選擇器與陰影主機匹配時。
:host-context():選擇包含其內部使用的css 的影子dom的影子主機(因此您可以從其影子dom中選擇乙個自定義元素) - 但僅當作為函式引數給出的選擇器與影子主機的祖先匹配時它位於dom層次結構中的位置。
/***fathercomponent.html***/
/***childcomponent.html***/
showchildname
/***childcomponent.css***/
.child-name
/***fathercomponent.css***/
.father .child-name
這個時候渲染出的showchildname的樣式:pink & 12px;
/***childcomponent.css***/
.child-name
:host-context(.father) .child-name
/***fathercomponent.css***/
不寫樣式
這個時候渲染出的showchildname的樣式:red & 16px;
/***childcomponent.css***/
.child-name
/***fathercomponent.css***/
:host
這個時候渲染出的showchildname的樣式:red & 16px;
angular2新建元件
1,使用 ng g c hello 建立乙個新的元件 它建立了4個檔案,並更新了 如果想訪問這個元件,只需要新增它的路由 成功訪問這個元件 import語句定義了我們需要用到的哪些模組,import 語句的結構 import from wherever.這種寫法叫解構。解構是 es6和 typesc...
Angular2如何修改父子元件樣式
場景 需要根據實際專案需求,修改引入的第三方元件的部分樣式 修改父元件的元素的樣式 一 修改父元件的元素的樣式 host host偽類,這是在元件內部獲取到其宿主元素的唯一方式,會向上一直查詢到根元素body 具體使用方法 預設當前在乙個元件中,該元件位於乙個父元件中,且該元件引入了第三方子元件 以...
angular 父元件和子元件
export class childcomponent implements oninit ngoninit greeting name string 按鈕呼叫child2的greeting方法 viewchild child1 child1 childcomponent ngoninit void...