Uczę się komponentów internetowych z shadow root i nie mogę znaleźć w Google, czy ładowanie zewnętrznych arkuszy stylów jest możliwe za pomocą gotowego kodu? NIE używam polimeru ani żadnej innej biblioteki komponentów internetowych (jeszcze). Kod poniżej:Zewnętrzne arkusze stylów dla shadow house w komponentach sieciowych
<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>
Jeśli umieściłem mój tag linku u góry, nad pierwszym znacznikiem skryptu, stylizuję całą wiek internetowy, ale nie komponent sieciowy.
Jeśli umieściłem go pod div.holla-back
, nic nie jest w stylu.
Jak korzystać z zewnętrznych arkuszy stylów z komponentami sieciowymi?
Czy możesz wyjaśnić, używając @import? –
Możesz zrobić coś takiego: http://jsbin.com/qefoyi/1/edit, ale intensywne użycie @import spowoduje wiele żądań http i naprawdę spowolni twoją stronę. Zalecanym podejściem jest używanie już elementów stylu ze wszystkimi znacznikami. – robdodson
Widzę, co masz na myśli. To brzydkie, ale osiąga to, co chciałem, chociaż masz rację, ponieważ dodaje wiele próśb. –