html - 是否可以仅使用 CSS 选择基于当前页面的元素?

标签 html css css-selectors

考虑到我的整个网站只有一个 css 文件(这样做是一种常用技术),我想知道是否有一种方法可以选择网站范围的属性,例如 body(或实际上任何其他属性)根据仅使用 css 的当前页面。

有点像

body:in('index.html') {
    some properties;
}

body:in('contact.html') {
    other properties;
}

同样,仅限CSS。我知道使用 php、js、jquery 之类的简单解决方案...

最佳答案

除了 DOM 树中显示的内容之外,选择器没有关于文档的信息,并且 DOM 不会根据其文件名、URL 或任何其他此类属性公开有关页面的信息。

历史上有一个用于查询当前 URL 的 @document at 规则,但它已从 Conditional Rules Level 3 module 中删除.最可能的原因是缺乏跨供应商的实现,因为 Gecko 中存在唯一已知的实现,如 @-moz-document .这太糟糕了,您在野外发现的唯一用途是不是基于特定页面应用 CSS,而只是作为 Firefox 的 CSS hack。

如您所述,最简单的解决方法是让每个页面将一个唯一的类应用到 htmlbody 元素并根据该类进行选择,无论是通过硬编码还是动态。

关于html - 是否可以仅使用 CSS 选择基于当前页面的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28704182/

相关文章:

html - padding-top 影响 div 中的其他类

jquery - 如何让jquery函数只影响 'this'的子元素

html - CSS网格空单元格布局问题

html - CSS 选择器无法正确使用逗号

css - 为什么灰色框不会进入白色框内

html - 宽度 :auto floating divs problem (IE6)

javascript - 添加点击操作以搜索 Bootstrap

html - 更少的 CSS - & :focus not working in variable selector

css - 如何避免在 CSS 中重复只改变一件事的元素?

css - 最后一个 child 到第一个 child