Ich lerne Web-Komponenten mit einer Schattenwurzel und kann nicht auf Google finden, wenn das Laden externer Stylesheets mit Out-of-the-Box-Code möglich ist? Ich benutze (noch) kein Polymer oder irgendeine andere Webkomponentenbibliothek. Code unten:Externe Stylesheets für Schatten-Dom in Web-Komponenten
<script src="../../libs/jquery-2.1.1.min.js"></script>
<script>
var hollaProto = Object.create(HTMLElement.prototype);
hollaProto.createdCallback = function() {
var shadow = this.createShadowRoot();
var content = document.querySelector('link[rel=import]').import.querySelector("div");
$("button[data-command=holla]", content).on("click", function() { alert("Holla!"); });
shadow.appendChild(content);
};
var hollaWidget = document.registerElement("holla-back", {
prototype: hollaProto
});
</script>
<div class="holla-back">
<button data-command="holla">Holla!</button>
</div>
Wenn ich bis oben meinen Link-Tag legte, über dem ersten Skript-Tag, Stil, den ich das ganze Web-Alters, nicht aber die Web-Komponente.
Wenn ich es unter div.holla-back
setze es style nichts.
Wie verwenden Sie externe Stylesheets mit Webkomponenten?
Können Sie mit @import klären? –
Sie können so etwas tun: http://jsbin.com/qefoyi/1/edit, aber die starke Verwendung von @import wird viele HTTP-Anfragen verursachen und Ihre Seite wirklich verlangsamen. Der empfohlene Ansatz ist die Verwendung von Stilelementen, in denen bereits alle Markups enthalten sind. – robdodson
Ich sehe was du meinst. Es ist hässlich, aber es erreicht, was ich wollte, obwohl es richtig ist, dass es viele Anfragen enthält. –