使用空格处理css id和类

时间:2012-02-14 22:55:27

标签: css

我有一个段落

<p id="para one" class="paragraph one">Content</p>

如何用css中的空格表示id和类

当我使用

#para#one{
}

.paragraph.one{
}

它不适用于上面的CSS。

6 个答案:

答案 0 :(得分:36)

我自己遇到了这个(设置现有页面无法更改ID)。

这就是我以前用id来设置它的样式:

p[id='para one']{
}

而且,如前所述,.paragraph.one会选择两个类 - 这意味着它还会选择class=" one paragraph"class="not a paragraph this one"的元素。

答案 1 :(得分:25)

你的班级CSS是正确的。你没有一个带空格的类,你有两个类,“段落”和“一个”。您的CSS正确选择了具有这两个类的元素:

.paragraph.one { color: red; }

这是一种将元素的facet分割成可单独组合的单独类的有用技巧。另请注意,<p class="one paragraph">将匹配相同的选择器。

答案 2 :(得分:12)

id值或类名中不能包含空格。当class属性的值中包含空格时,它指定了适用于该元素的多个类:

<p class="paragraph one"> <!--Has both "paragraph" and "one" class-->

对于id值,规则(HTML4)声明如下:

  

ID和NAME令牌必须以字母([A-Za-z])开头,可能是   后跟任意数量的字母,数字([0-9]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。

如您所见,空格无效。 HTML5 spec更宽松,但仍然不允许使用空格(强调添加):

  

id属性指定其元素的唯一标识符(ID)。该   value必须在元素的home子树中的所有ID中唯一   并且必须至少包含一个字符。 该值不得包含   任何空格字符

答案 3 :(得分:10)

class="paragraph one" 

实际上代表两个不同的类

id="para one"

不起作用,但你可能最终会得到一个实际的id

答案 4 :(得分:1)

现代浏览器实际上支持id空格。所以在Chrome 54上有效:

p#para\ one {
}

现代浏览器不支持[id="..."]语法,所以

p[id='para one'] {
}

在Chrome 54中不起作用。

答案 5 :(得分:0)

你根本就没有空格。如果你使用空格,这意味着你正在使用两个不同的类。一个是para,另一个是one