感谢您的提问!这是我的做法:
在我的主要 HTML 中:
<div is="x-click-counter">
在我的自定义元素中:
<element name="x-click-counter" constructor="CounterComponent" extends="div">
<template>
<button class="button1" on-click="increment()">Click me</button><br />
<span>(click count: {{count}})</span>
<style scoped>
div[is=x-click-counter] span {
color: red;
}
</style>
</template>
<script type="application/dart" src="xclickcounter.dart"></script>
</element>
这里有两件事。
1)我使用的形式,<div is="x-foo">
而不是<x-foo>
。我喜欢第一种形式更向后兼容的方式,并且更明确地说明了我将如何找到元素。
2)我在我的标签<style scoped>
里面放了一个。<template>
Web UI 将看到范围样式标签,并为您生成一个 CSS 文件。它看起来像这样:
/* Auto-generated from components style tags. */
/* DO NOT EDIT. */
/* ====================================================
Component x-click-counter stylesheet
==================================================== */
div[is=x-click-counter] span {
color: #f00;
}
Web UI 还会将此生成的 CSS 文件的链接添加到您的主 HTML 文件中。