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

时间:2015-02-24 19:09:41

标签: html css css3 css-selectors

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

这样的东西
body:in('index.html') {
    some properties;
}

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

再次,仅限css。我知道使用php,js,jquery ......等简单的解决方案。

2 个答案:

答案 0 :(得分:7)

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

从历史上看,有一个@document用于查询当前网址的规则,但它已从Conditional Rules Level 3 module中移除。最可能的原因是缺乏跨供应商实现,因为Gecko中唯一已知的实现存在@-moz-document。它太糟糕了,你在野外发现它的唯一用途是基于某个页面应用CSS,而只是作为Firefox的CSS黑客攻击

正如您所说,最简单的解决方法是让每个页面为htmlbody元素应用一个唯一的类,并根据该类选择是否通过硬编码,或动态地。

答案 1 :(得分:0)

您可以将id属性添加到body标记,并使用以下内容设置其中的内容:

body#contact div{
background:#376;
color:#857;
/*etc*/
}

有关http://www.w3.org/TR/css3-selectors/

中选择器的更多信息