感謝您的問題!下面是我如何做到這一點:
在我的主要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>
有兩件事情會在這裏。我使用<div is="x-foo">
而不是<x-foo>
的形式。我喜歡第一種形式是如何向後兼容的,而且我更加明確地知道如何找到元素。
2)我把<style scoped>
放在我的<template>
標籤裏面。
網頁界面會看到範圍樣式標籤,併爲您生成一個CSS文件。它看起來像這樣:
/* Auto-generated from components style tags. */
/* DO NOT EDIT. */
/* ====================================================
Component x-click-counter stylesheet
==================================================== */
div[is=x-click-counter] span {
color: #f00;
}
Web用戶界面還添加一個鏈接到這個生成的CSS文件到您的主HTML文件。
你能否解釋一下/爲什麼/這種方式的工作方式? 「 – 2013-05-03 05:52:27
」注意:範圍樣式尚未受支持。「因此,這只是簡單的解決方法(?)來製作我認爲的範圍化的樣式。我想這個頁面[外觀部分](http://www.dartlang.org/articles/web-ui/spec.html#appearance)將在實際的作用域樣式開始工作時更新。人們會認爲它會在被支持時自動對寫入的css進行範圍。 – Ciantic 2013-05-22 21:26:24