web-component - Svelte Web 组件 - 样式化 Slotted HTML 标签
问题描述
有没有办法在影子根中包含开槽的 html 标记?默认开槽标签在 Shadow Root 外部呈现,而在其中有对它们的引用。我的目标是使用 customElement 范围样式(alert.css)来设置开槽标签的样式。
索引.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>
解决方案
您可以在父组件中设置子组件的样式。这也适用于插槽。这可以这样实现(在示例中,插槽内的跨度被设置为具有白色文本颜色):
<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
推荐阅读
- github - Github 分叉和收听来自公共 github 的更新
- python - 获取分组数据框中列的最大计数
- javascript - 如何理解网站正在将上传的文件发送到其服务器?
- c# - DbUpdateException 使用 LINQ to Database 更新记录时
- typescript - 打字稿获取字段名称但不获取属性(或至少仅获取)
- jenkins - 如何使用 nunit 控制台运行程序从命令行运行多个测试?
- python - 如何将单词与列表中的元素分开?
- python - 视频到 ASCII 转换器——优化
- laravel - 是否可以在 firstOrNew、firstOrCreate、updateOrCreate 上使用 WhereIn / WhereNull 或 Condition?
- swiftui - 如何将 String?-type 对象分配给 String-type 变量?