造型Vue插槽

Ary*_*NYC 4 vue.js vue-component vuejs2

有没有办法在Vue组件中设置插槽的样式?

<slot style="position: absolute"></slot>
Run Code Online (Sandbox Code Playgroud)

<slot class="slot"></slot>
Run Code Online (Sandbox Code Playgroud)

不工作.

小智 9

  • 您可以使用 :slotted 选择器:
:slotted(.classInsideSlot) { 
  color: red;
}
Run Code Online (Sandbox Code Playgroud)


Dec*_*oon 8

将插槽换成a <div><div>改为样式:

<div style="...">
  <slot></slot>
</div>
Run Code Online (Sandbox Code Playgroud)

如果你真的需要设置slot元素的样式,你可以使用这样的CSS选择器:

<div class="wrapper">
  <slot></slot>
</div>
Run Code Online (Sandbox Code Playgroud)
.wrapper > * {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

  • `.wrapper &gt; *` 将针对每个槽元素。如果您只需要定位特定的槽元素,则可以使用“.wrapper &gt; *:nth-child(2)”或“.wrapper &gt; .child”。你具体想做什么?您是否希望能够绑定每个槽元素的动态“样式”,或者使用外部 CSS 就足够了? (2认同)

Roy*_*ber 6

您可以像这样从父级传递一个类:

在组件模板中:

<slot name="quoteText"></slot>
Run Code Online (Sandbox Code Playgroud)

当传递到插槽时:

<p slot="quoteText" class="mb-md-100">Text</p>
Run Code Online (Sandbox Code Playgroud)

  • vue3 已弃用 `slot` 属性 (2认同)