CSS选择器的声明

问题描述:

这是这样一个简单的问题,但我似乎无法找到任何地方一个确切的答案...CSS选择器的声明

简单地说,可我宣布在两个不同的地方选择属性,而不覆盖第一属性声明?

例如,假设我宣布加载到页面的CSS文件中的一个元素的属性:

.x {margin:2px;} 

然后我要声明动态页面中的另一个属性:

.x {padding:2px;} 

同时保持CSS文件的属性。

虽然我明白有很多其他的方式来做到这一点,这样做是正确的吗?

这很好。你可以把声明放在尽可能多的不同的地方,只要你喜欢。

+0

由于病情选择之一。 – Bob 2011-03-04 13:17:35

+0

Cheers〜'课程通常最好将相关的声明保存在一起,但在这种情况下,似乎有一些需要动态生成,还有一些需要修复。 (对吗?) – awm 2011-03-04 13:19:38

+0

你肯定是对的。因为我只想改变一个特定的属性,所以我不想每次都打印一大堆。我想我可以使用多个类,直接添加样式等,但我只是挂在这个解决方案! – Bob 2011-03-04 13:21:59

你可以,是的。首先,将应用页面中包含的CSS文件中声明的样式,然后在页面上指定任何其他指定的样式。

这将工作。由于CSS级联,它会继承样式,并将它们添加到该类中。这就是为什么有些网站在页面加载时发生变化。

首先,要声明一个段落标记,你不会在它之前放一段时间。它应该是:

p {padding:2px;} 

其次,CSS是层叠样式表,因此,你可以打开一个元素声明你想要但是很多次。其中的样式属性将采用最后陈述的对象。 IE:

p {padding:2px; border:1px solid #000;} 

再后来

p {padding:5px;} 

填充现在是5像素,但它保留了它的像素边框。

这是不好的做法!我会占用你创建的“开关”类,这将改变一些CSS属性,而不是dinamicaly稍后在页面上注入它。所以后来将它添加到元素中使用它或删除

<style> 
    .p { margin:2px; } 
    .addition { padding: 2px; } 
</style> 

<p class="p">.....</p> 

切换到新的风格或者与一些Ajax调用,或者您需要什么都jQuery的。

<p class="p addition">....</p> 

要关闭填充只是删除“添加”类或“p”类,如果你想关闭maring。

+0

这不是一个可怕的做法。考虑在一张表中你想声明属性的情况,另一种你想声明与设计有关的属性(背景,颜色等)。 – bradenkeith 2011-03-04 13:25:52

+0

虽然不完全相同。在你的例子中,在两个实例中都设置了填充,所以我必须创建.addition1和.addition2 - 每个填充都有不同的填充。在页内样式中动态切换效率肯定更高效? – Bob 2011-03-04 13:26:04

+0

我并不可怕,但是不好的做法。创建例如styles_colors.css和styles_dim.css并不坏,但它可以非常方便,但我宁愿坚持一个文件:) – 2011-03-04 13:41:11

级联样式表将继承样式,从规范的角度来看,您所做的完全没错,但可能不被认为是最佳实践。 也请注意,如果您开始覆盖其他样式,则可能会应用CSS层次结构:外部>内部>内联。

更多信息,请参阅http://nzwhost.com/article/understanding-css-hierarchy

我认为这样做是逻辑独立的CSS声明..布局在一起,共同的颜色和具体的媒体(如屏幕,打印)在一起的最佳方式。

如果你想让它做动态,你可以做这样的事情:

注: 这是一个PHP的例子。

<?php $back = 'image.jpg'; 
**something else can be executed ie conditionals and 
more variables can be added**) 
?> 

<html> 
<head> 
<style type="text/css"> 
btn{ 
margin:0; 
padding:0; 
background-image: <?php $back; ?> 
height:100px; 
width:200px; 
display:block; 
} 
</style> 
</head> 
<body> 
<div> 
    <div class="btn">Test text</div> 
</div> 
</body> 
</html> 

您可以使用PHP将预先声明的变量或变量组添加到CSS代码中。请注意,CSS需要包含在您正在使用的HTML/PHP文件中。假设你想随机产生背景颜色。 PHP数组(即'#CCC')>随机选择数组中的值>将变量添加到CSS代码中。 #

你的情况,你可以指定两个类,然后根据您的动态代码为迅速回复