如果2页有相同的ID,如何给css赋予不同的风格?

时间:2010-01-26 07:47:15

标签: jquery css xhtml

在同一网站中我在2个不同的部分有2次页面免责声明

公司> disclaimer.html 消费者> disclaimer.html

一个好处,我公司的自定义cms为每个页面生成正文id

但问题是他生成的id与网页名称相同,我无法更改名称,也无法提供不同的ID

这两个页​​面具有相同的ID <body id="disclaimer">

我想将两种不同的风格应用于<p>两个页面

喜欢

for corporate&gt; disclaimer.html我需要这个p { color:#666}

消费者

&gt; disclaimer.html我需要这个p { color:#000}

怎么做,有没有纯粹的CSS方式?如果纯css不可能,那就给我jquery解决方案。

更新

我无法在<head>中添加每页基础css文件。

4 个答案:

答案 0 :(得分:2)

如果除了URL之外页面相同,您似乎无法使用纯CSS。

基本javascript解决方案的伪代码:

var path, section, body;
path = window.location.pathname;
section = parseToSection(path);
body = window.document.body;
if ('corporate' === section){
    body.addClass('corporate');
} else if ('consumer' === section){
    body.addClass('consumer');
}

然后将以下规则添加到您的css中:

body.corporate p{
    color:#666
}

body.consumer p{
    color:#000;
}

在您的解决方案中,您可能希望使用jquery的元素选择器而不是直接使用window对象。编写parseToSection()函数的代码也取决于你。

答案 1 :(得分:1)

你能在它们上面获取两个不同的css文件吗?

答案 2 :(得分:0)

准备三个css文件:

  1. 表示所有页面都相同,
  2. 表示特定于消费者的样式
  3. 用于特定于公司的样式
  4. 所有页面将参考[1],然后是[2]或[3],具体取决于哪些相关。

答案 3 :(得分:0)

在jQuery中很容易:

$(document).ready(function() {
  var color = (document.location.pathname.match(/corporate/)) ? "#666" : "#000";
  $("body#disclaimer p").css("color", color);
}

但是使用纯CSS我认为这是不可能的。