2015-09-03 61 views
4

我在聚合物1.1自定義元素中包裝第三方控件。該控件附帶一個CSS文件,我想將其範圍擴展到我的自定義元素。這樣做的建議方法是什麼?浮現在腦海中的一些可能的選項包括:Polymer自定義元素中的外部樣式表

  1. 包含指向我的CSS文件在我的自定義元素
  2. 使用HTML導入一個普通的老鏈接標籤。
  3. 在聚合物1.1中,有一個新概念被稱爲樣式模塊,根據聚合文檔應該取代外部樣式表: https://www.polymer-project.org/1.0/docs/devguide/styling.html 是另一種在樣式模塊中指定外部樣式表的方法嗎?

我不知道上述任何方法對我的情況是否可行。

更新

我用風格模塊如下但由於某些原因的風格模塊中指定的第三方的CSS文件未加載一個答案建議嘗試。任何想法爲什麼?

我的風格,module.html:

<dom-module id="my-style-module"> 
    <template> 
     <link rel="import" href="http://url_of_third_party_css_file"> 
    </template> 
</dom-module> 

我定製-element.html(樣品):

<!-- import the module --> 
<link rel="import" href="my-style-module.html"> 

<dom-module id="my-custom-element"> 
    <template> 
    <!-- include the style module by name --> 
    <style include="my-style-module"></style> 
    <style>:host { display: block; }</style> 
    <span>Hello</span> 
    </template>  
</dom-module> 

回答

1

1.0不贊成使用的方法是在這裏https://www.polymer-project.org/1.0/docs/devguide/styling.html#external-stylesheets和我做了一個簡單的例子這裏:http://polymerjs.newfivefour.com/post/126638694607/sharing-css-styles-across-elements基本上,您使用您提到的外部CSS文件並使用自定義導入。

但是現在,從1.1開始,有一種新的方法,將CSS放入組件中,並通過HTML導入,然後在組件中包含樣式包含標籤:https://blog.polymer-project.org/announcements/2015/08/13/1.1-release/您似乎應該使用此方法,儘管已棄用的內容仍然可以根據他們的博客文章工作。

+0

就在昨天我正在擺弄這個問題。由於在這個版本中,Polymer使用了陰暗的dom,所以全局樣式表(鏈接標籤的老式方式)似乎正常工作。如果使用新的Polymer方法,則最終可能會生成不工作的樣式表,因爲所有選擇器都會自動命名空間以防止滲入其他dom模塊。在dom-inspector中滾動到頂部並查看樣式元素。你看到聚合物如何重寫所有樣式表定義... – Kjell

相關問題