CSS2多分类

Adr*_*ong 0 html css class

我有以下HTML:

<DIV class="foo bar"></DIV>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个匹配所述元素的CSS类声明.通过8.2.3节规范,我想这应该有效:

DIV.foo.bar { border-color: black; }
Run Code Online (Sandbox Code Playgroud)

但我已经在IE和Safari上测试过,两者都不会影响元素.任何技巧如何使这项工作?

cle*_*tus 5

这里有三个问题.

1.你的表达和HTML是否正确?

您的div没有边框宽度(根据您发布的内容),因此您可能无法获得边框.尝试:

<div class="foo bar"></div>
Run Code Online (Sandbox Code Playgroud)

div.foo.bar { border: 1px solid black; }
Run Code Online (Sandbox Code Playgroud)

你有高度吗?

你的div(基于你发布的内容)没有高度.现在在某些浏览器上,它们将呈现为边框粗细的实线.根据相邻元素和边框折叠设置(特别是在Firefox上而不是IE/Safari),在某些情况下,该边框可能会消失.

3. IE6不能正确支持多个类选择器

多个类选择器在IE6中无法正常工作.查看多个类浏览器支持表.

通常这里的技巧是嵌套div:

<div class="foo"><div class="bar"></div></div>
Run Code Online (Sandbox Code Playgroud)

然后当然:

div.foo div.bar { ... }
Run Code Online (Sandbox Code Playgroud)

显然不是一回事,但你没有太多选择.另一种方法是手动组合类:

div.foo { background: red; }
div.bar { border: 1px solid black; }
div.foobar { background: red; border: 1px solid black; }

<div class="foobar"></div>
Run Code Online (Sandbox Code Playgroud)

再次,远非理想.但是在IE6上你只能做很多事情.