【问题标题】:Svelte Web components - Styling Slotted HTML tagsSvelte Web 组件 - 样式化 Slotted HTML 标签
【发布时间】:2021-04-04 20:44:09
【问题描述】:

有没有办法在影子根中包含开槽的 html 标记? 默认开槽标签在 Shadow Root 外部呈现,而在其中有对它们的引用。 我的目标是使用 customElement 范围样式( alert.css )来设置开槽标签的样式。

index.html

<custom-alert types="col-5 btn-default" name="alert">
    <h3 slot="slotname">I'm not blue :(</h3>
    <p slot="slotname">Nullam pretium neque a risus tincidunt, et semper augue.</p>
</custom-alert>

alert.svelte

<style>
    @import "../css/alert.css";
</style>

<div class="alert">
    <div>
        <slot name="slotname"></slot>
        <h3>Yes I'm Blue :)</h3>
    </div>
    <i class="bi bi-x" data-bs-dismiss="alert" aria-label="Close" role="button"></i>
</div>

【问题讨论】:

    标签: web-component svelte


    【解决方案1】:

    您可以在父组件中设置子组件的样式。这也适用于插槽。 这可以这样实现(在示例中,插槽内的跨度被设置为具有白色文本颜色):

    <style>
      .parent {
        width: 50px;
        background-color: red;
        height: 50px;
      }
      
      .parent :global(span) {
        color: white;
      }
    </style>
    
    <div class="parent">
      <slot/>
    </div>

    您可以在 REPL 中使用此示例:https://svelte.dev/repl/98d2511bf24c41758b5d4520e000a74d?version=3.37.0

    【讨论】:

    • 我已经知道 :global 功能,但我正在寻找另一种解决方案,以便在不需要任何更改的情况下应用 alert.css 中的所有 css 规则。有没有办法进行全局导入或其他?
    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 2020-11-15
    • 2023-01-08
    • 2019-02-05
    • 2012-12-20
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多