我目前正在为一些 CSS 样式创建一个库(也有一些由 jQuery 定义,所以请随意使用 JavaScript/jQuery 作为解决方案 - 我认为无论哪种方式,普通 CSS 都不可能)。
我有一些部分应该只在具有特定类的父元素(在示例中为 .style-container)存在时才应用。
当然,这可以通过在每个 CSS 选择器前面添加类来实现。
这需要更多需要传输的数据,所以我认为也许有可能应用 CSS 文件,它的内容只是针对特定元素,它是子元素而不是整个文档。
想象一下这个 CSS(大大简化):
h1 {
color: #f00;
border-bottom: 1px solid #000;
}
此 HTML 文档(正文中的一部分):
<div class="style-container">
<h1>This should be styled</h1>
</div>
<div>
<h1>This should be standard style</h1>
</div>
现在可能有一些 JavaScript/jQuery 来为类的所有元素及其子元素加载文件。
笔记:
通过 JavaScript/jQuery 可能会出现以前没有的新元素,我真的不想再次加载整个样式,因为那时可能需要大量资源来加载,以防内容变化非常快。
等待也不是一种选择,因为这样在等待的时间里元素就不会被设置样式。
编辑: 再次指出:我正在寻找一个比标准 CSS 子选择器更好的选择,它可以像这样工作:
.style-container h1 {
color: #f00;
border-bottom: 1px solid #000;
}
我想要这个,因为它使用更多的数据从服务器传输到客户端。要理解这一点:我有一部分代码采用最小化形式,带有选择器和不带选择器。有选择器的版本需要 3698 个字符,没有选择器的版本需要 2538 个字符。那是1160个字符的差异。或者,以 kB 为单位,我们有 3.61kB - 2.47kB = 1.14kB 的差异。这看起来很少,但它只是代码的一小部分。我期望代码是原来的十倍。这产生了 11,4kB 的差异。在我看来,这对于移动设备来说是相当大的数量......