2015-12-14 134 views
1

我为列表中的每个项目呈现动态CSS。每个项目将有可能是唯一的CSS规则的元素,即如何限制内联CSS的范围?

<div id="thing1" class="vegas"> 
    <style> 
    p { 
    font-size: 14pt; // this stuff is generated dynamically and i have no control over it 
    color: green; 
    } 
    </style> 
    <p> 
    I'm thing 1! 
    </p> 
</div> 

<div id="thing2" class="vegas" > 
    <style> 
    p { 
    font-size: 9pt; // so is this stuff 
    color: red; 
    } 
    </style> 
    <p> 
    I'm thing 2! 
    </p> 
</div> 

有没有办法来包装在一般的CSS规则,将每个项目的相关CSS的范围限制到项目本身的每个项目?像

.vegas > * { 
    whatever-happens-in-here: stays in here; 
} 

或者任何其他方式来处理范围知道什么样的动态特定的CSS?

+0

我认为你正在寻找'!important' http://stackoverflow.com/questions/9245353/what-does-important-in-css-mean – thanksd

+0

我无法编辑或修改动态CSS进来,所以我不认为我可以使用'!important',或者? – irbanana

+0

你是说你想忽略在这个'拉斯维加斯'类以外的任何地方设置的任何css属性的继承? – thanksd

回答

0

级联样式表是能够处理特定元素的造型孩子,所以:

div#thing1 p { 
    rule: value; // Only applies to p in div with id="thing1" 
} 

div#thing2 p { 
    rule: value; // Only applies to p in div with id="thing2" 
} 
0

您需要了解全球风格,浏览器也有。对于例如,看到以下列表:

  • font-family
  • line-height
  • text-align

上面有他们的默认值inherit,这意味着他们从他们的父母得到的属性值,无论。所以如果你改变父母的财产,你的孩子也会被改变。

而且你还有其他属性,如:

  • margin
  • padding
  • border
  • width
  • height

这些不会更改,或从父项继承。所以,如果你想做一些你想要的事情,你需要给你的后代或直系孩子,不要继承或为孩子们继承。

0

为什么不使用内联样式属性?

<p style="color:red;align:center"> Hello </p> 

上述CSS样式只会应用于该特定的段落标签。 您也可以将内联样式语句用于其他标签和HTML元素。

或者您可以包含一个外部常用样式表,并在需要变体的地方使用内联语句.CSS应用它所遇到的最新样式描述。因此,内联语句将覆盖常见的CSS样式表效果。