javascript - 样式不适用于 Safari/Firefox 中的 LitElement

标签 javascript html css web-component lit-element

2020 年 1 月更新:应该用 https://github.com/Polymer/lit-element/pull/712 修复

如果undefinedrender 返回LitElement的方法|在组件的第一次渲染期间,然后返回带有一些 css 类的 lit-html TemplateResult(样式在 styles 静态 getter 方法中定义),这些样式不会应用。

enter image description here

有一个简单的JSFiddle重现此问题。

如果渲染方法在第一次渲染组件后返回 lit-html TemplateResult,则 <style>标签存在于 shadow DOM 中。 enter image description here

如果 render 方法返回 undefined第一次渲染后,<style>标签在影子 DOM 中丢失,并且即使在下一次渲染调用中使用 lit-html TemplateResult 也从未添加。 enter image description here

对于 Chrome 它工作正常。该问题在 SafariFirefox 中重现。

更新:它应该用 https://github.com/Polymer/lit-element/pull/712 修复

最佳答案

解决方案是确保您始终从 render 方法返回 lit-html TemplateResult,即使它是空的!

render() {
   return html``;
}

但是我不完全明白为什么会出现这个问题?有人可以澄清一下吗?

关于javascript - 样式不适用于 Safari/Firefox 中的 LitElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58519848/

相关文章:

ems 中的 CSS 媒体查询被浏览器字体大小抛出

javascript - PHP 中的 CSS 样式在 "onclick"脚本后丢失 — 需要帮助保持 HTML 表格具有原始 CSS 样式

html - 在 Span 中,如何更改文本的颜色

javascript - HTML5 向 LI 添加占位符属性

html - 重叠边界悬停

jquery - fullcalendar fc-highlight 覆盖 fc-event-container 背景色

javascript - 这段代码有什么问题吗? .checked 可能是我没有正确使用的那个

javascript - Ajax 请求接收 html 页面作为响应,但网页上未显示相同的响应 : Codeigniter

javascript - 使用 knockout 绑定(bind)在 get 方法中显示加载图像

html - 相对定位的 block 元素会影响其父元素的大小