Come menzionato in un'altra risposta, per definire l'host del DOM ombra, utilizzare il selettore @host
. Nel caso di un elemento personalizzato, l'host dell'elemento personalizzato è esso stesso.
Ecco un esempio di come stile l'elemento host o l'elemento personalizzato stesso all'interno del tag <style>
di un elemento personalizzato.
<!DOCTYPE html>
<html>
<head>
<title>index</title>
<script src="packages/polymer/boot.js"></script>
</head>
<body>
<polymer-element name="my-element">
<template>
<style>
@host {
my-element {
display: block;
border: 1px solid black;
}
}
p {
color: red;
}
#message {
color: pink;
}
.important {
color: green;
}
</style>
<p>Inside element, should be red</p>
<div id="message">
The message should be pink
</div>
<div class="important">
Important is green
</div>
<div>
<content></content>
</div>
</template>
<script type="application/dart" src="index.dart"></script>
</polymer-element>
<p>outside of element, should be black</p>
<div id="message">
The outside message should be black
</div>
<div class="important">
Outside important is black
</div>
<my-element>Hello from content</my-element>
<!-- If the script is just an empty main, it's OK to include inline. -->
<!-- Otherwise, put the app into a separate .dart file. -->
<script type="application/dart">main() {}</script>
</body>
</html>
Avviso del @host
blocco in stile:
@host {
my-element {
display: block;
border: 1px solid black;
}
}
perché questo particolare elemento personalizzato non si estende alcun elemento, non fa di default ad un blocco.
Ecco come si presenta quando stile:
fonte
2013-08-25 13:02:28
In questi giorni non è più necessario un attributo costruttore per polymer.dart. Almeno, non ne avevo bisogno. –