🔰slotted node styles

╱🚧 under construction -> CSS 繼承

webcomponentslot ⟩ slotted node styles

slotted nodes 雖然是插入 <slot> 的節點,但卻屬於 light DOM 的一部分,無法使用 shadow DOM 的樣式,不過可以用 ::slotted() 這個 pseudo-element 來規範樣式 。

控制樣式的方式

📁 <template> 內部 CSS:用::slotted() (pseudo-element)

<template id="my-component-template">
  
  <style>
    /* ⭐️ slotted: <p> element */
    ::slotted(p) { ... }
    
    /* ⭐️ slotted: all nodes */
    ::slotted(*) { ... }
    
    /* ⭐️ slotted:  class="highlight" */
    ::slotted(.highlight) { ... }
  </style>
  
  <slot></slot>
</template>

⚠️::slotted() 有限制:

  • 只能設定部分樣式,如:fonttextmarginpaddingborderbackground 等。

  • 複雜的樣式可能無法運作,如: displayfloatwidthheight 等。

  • 無法選擇後代元素。如:::slotted(p span)無效的。

Last updated