javascript - 覆盖 Web 组件的内联 css

标签 javascript html css

在我们的网页上,我们有一个空的 div,它是通过 webcomponent 的 javascript 填充的。 这是一份第三方的医学问卷。

当 div 被填充时,有一个名为

的元素
#shadow-root (open).

在这个元素里面首先有一个样式元素,比如

<style scope="something">

然后是问题的 html。 我们想更改网页 css 文件中的一些样式,例如颜色和字体大小。

我们如何覆盖/否决我们自己的 css 文件中的样式?

我们尝试过类似的东西

:host .caption {font-size: 12px; }
:host() .caption {font-size: 12px; }
:host(.caption) {font-size: 12px; }
.ourdiv .caption {font-size: 12px; }
.theirdiv .caption {font-size: 12px; }

有很多网站都在解释如何制作 web 组件,但没有关于如何否决/覆盖样式的内容。

最佳答案

你去过吗here

这里对shadow DOM有很深的解释。以下是对您重要的内容。

#shadow-root
  <style>
    #panels {
      box-shadow: 0 2px 2px rgba(0, 0, 0, .3);
      background: white;
      ...
    }
    #tabs {
      display: inline-flex;
      ...
    }
  </style>
  <div id="tabs">
    ...
  </div>
  <div id="panels">
    ...
  </div>

shadow roots 元素中的样式将设置元素的样式。

样式表也限定在影子树中:

#shadow-root
  <link rel="stylesheet" href="styles.css">
  <div id="tabs">
    ...
  </div>
  <div id="panels">
    ...
  </div>

关于javascript - 覆盖 Web 组件的内联 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54685389/

相关文章:

javascript - 检查开始日期是否小于结束日期(不使用任何插件)

javascript - 如何将切换开关数据从 PHP 发送到 JSON

html - 将 CSS 样式应用到具有动态 id 的子范围,悬停在具有动态 id 的父 div 上

javascript - 覆盖由 FB js 库设置的 HTML "a"标签的默认属性值

javascript - 在 MEAN 堆栈应用程序中显示图像(服务图像)的有效方法?

javascript - 从 iframe 调用 ITHit.WebDAV.Client.DocManager.EditDocument 时,IE8 显示混合内容警告

css - 如何从样式化组件访问子项的 css 值?

javascript - 我的 C# 函数返回一个 json 字符串。现在我必须在我的 Angular JS 代码中使用它。那么我必须使用哪个标签

javascript - 当提交按钮被隐藏时通过回车提交表单;在 Firefox 中工作,在 Chrome 中不执行任何操作

css - 值等于 A 或 B 的属性选择器?