FvB*_*FvB 2 html css css-selectors
对于我正在开发的应用程序,我想内置生成发票的功能。该发票是可配置的,我想在我的页面中显示预览。根据我发送回 C# 后端的数据,我将生成一个可供下载的 .PDF 文件。
在后端生成过程中,我将无法访问样式表,并且必须完全内联定义所有类。因为我希望我的预览真正匹配发票最终的外观,所以我需要能够从预览元素中排除所有其他样式。
有没有办法做到这一点?
例子:
<link href="Content/style.css" rel="stylesheet" />
<div>
    <p>Use classes defined in style.css</p>
    <div EXCLUDE CSS OUTSIDE THIS SCOPE>
        <p>No access to style.css</p>
    </div>
</div>
我知道我可以通过简单地确保预览器放置在我注入 CSS 的范围之外来实现所需的效果,但由于我的项目的结构,这不是一个选项。
额外信息:
我正在使用我正在执行此项目的公司购买的样式表。然而,样式表的设置非常糟糕,并且包含各种默认样式,例如:
table {
    color: black !important;
}
我正在寻找一种方法来排除所有样式,而不必单独覆盖该样式表中设置的每个属性。
有all属性和initial将属性重置为浏览器默认设置的值。因此,如果您将想要从样式中“排除”的部分包装到一个标签中,并应用如下所示的类(即与选择器组合*),它应该具有您想要的效果:
.unset * {
  all: initial;
}
在 HTML 中:
<div>
    <p>Use classes defined in style.css</p>
    <div class="unset">
        <p>No access to style.css</p>
    </div>
</div>
但不幸的是,all尚未在 IE/Edge 中工作,它“正在考虑中”:http://caniuse.com/#search=all
不过,如果您的样式表没有使用太多不同的属性(并且如果您知道它们),您可以initial使用如上所示的选择器列出这些属性,将它们全部定义为并应用它。例子:
.unset * {
  font-size: initial;
  color: initial;
  background: initial;
  text-decoration: initial;
  margin: initial;
  padding: initial;
}