在polymer 3中导入外部样式表

在polymer 3中导入外部样式表,polymer,polymer-3.x,Polymer,Polymer 3.x,有没有办法导入只影响阴影DOM的外部css文件?我正在使用sass并自动创建css文件,因此任何使用javascript导入的技巧都无法完成 现在,我得到的是: static get template() { return html` <style> :host { display: block; } </style> .... } 静态获取模板(){ 返回html` :主持人{ 显示:块; } .... } 在聚合物2中,可以做如下操作:

有没有办法导入只影响阴影DOM的外部css文件?我正在使用sass并自动创建css文件,因此任何使用javascript导入的技巧都无法完成

现在,我得到的是:

static get template() {
return html`
  <style>
  :host {
    display: block;
  }
  </style>
  ....
}
静态获取模板(){
返回html`
:主持人{
显示:块;
}
....
}
在聚合物2中,可以做如下操作:

 <dom-module id="my-app">
   <link rel="stylesheet" href="style.css">
   <template></template>
 </dom-module>


有没有一种方法可以实现同样的目标?

您可以在html标记中使用变量,如下所示:

import { htmlLiteral } from '@polymer/polymer/lib/utils/html-tag.js';

import myCSS from "style.css";
let myCSSLiteral = htmlLiteral(myCSS);
...
class MyElement extends PolymerElement {
  static get template() {
    return html`<style>${myCSSLiteral}</style>...`;
    ...
  }
  ...
}
从'@polymer/polymer/lib/utils/html tag.js'导入{htmlLiteral};
从“style.css”导入myCSS;
设myCSSLiteral=htmliteral(myCSS);
...
类MyElement扩展了聚合关系{
静态获取模板(){
返回html`${myCSSLiteral}…`;
...
}
...
}

请注意:要在
html标记中使用变量,您必须将变量从字符串转换为htmlLiteral,尽管我不知道为什么Polymer不直接支持原始字符串变量。祝你好运

这对我来说太好了

return html`
      <link rel="stylesheet" href="//cdn.jsdelivr.net/chartist.js/latest/chartist.min.css">
      <style>

/* I had to put !important to override the css imported above. */
      </style>

      <divclass="blablabla"></div>
    `;
返回html`
/*我必须把它放进去!重要的是要覆盖上面导入的css*/
`;

所说的“使用javascript导入的技巧”还意味着
require()
在运行时删除.css文件?我的意思是我不能/不想将编译后的css文件变成javascript字符串。我希望css文件的输出只包含css内容。如果不清楚,请告诉我。