首頁 > web前端 > css教學 > 如何覆蓋影子根元素中的樣式?

如何覆蓋影子根元素中的樣式?

Susan Sarandon
發布: 2024-11-12 22:41:02
原創
335 人瀏覽過

How to Override Styles in a Shadow-Root Element?

覆蓋Shadow 根元素中的樣式

Shadow DOM 隔離其範圍內的樣式,這使得使用全域CSS 規則修改它們變得具有挑戰性。要解決此問題,請考慮以下解決方法:

將樣式直接注入到Shadow Root 中:

建立一個新的樣式元素並將其insideHTML 設定為所需的樣式變更:

var style = document.createElement('style');
style.innerHTML = '.the-class-name { property-name: my-value; }';
登入後複製

接下來,將樣式元素附加到陰影上root:

host.shadowRoot.appendChild(style);
登入後複製

注意:此方法需要將Shadow DOM設定為“開啟”模式。

Chrome 73 和Opera 60 增強功能:

在這些瀏覽器的最新版本中,可以實例化CSSStyleSheet 物件並直接應用於Shadow DOM:

var sheet = new CSSStyleSheet;
sheet.replaceSync(`.color { color: pink }`);
host.shadowRoot.adoptedStyleSheets.push(sheet);
登入後複製

注意: 不要將相同的樣式表多次加入所採用的StyleSheets 陣列中,尤其是在SPA 頁面重新載入期間。

以上是如何覆蓋影子根元素中的樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板