我有以下HTML:
<DIV class="foo bar"></DIV>我正在尝试创建一个与所述元素匹配的CSS类声明。浏览一下specs on section 8.2.3,我想这应该是可行的:
DIV.foo.bar { border-color: black; }但是我已经在IE和Safari上测试过了,它们都不影响元素。有什么窍门可以让它工作吗?
发布于 2009-07-15 14:47:45
我认为这是因为您指定了"border-color: black“,而没有指定边框宽度或边框样式。尝试设置“边框:实心1px黑”,看看是否有效。
发布于 2009-07-15 14:42:25
这里有三个潜在的问题。
你的表达式和是否正确?
您的div没有边框宽度(根据您发布的内容),因此您可能得不到边框。尝试:
<div class="foo bar"></div>使用
div.foo.bar { border: 1px solid black; }2.你的有高度吗?
您的div (基于您发布的内容)没有高度。现在,在一些浏览器上,将呈现为边框粗细的实线。根据邻近元素和边框折叠设置(特别是在Firefox上比IE/Safari更多),边框在某些情况下可能会消失。
3. IE6不能正确支持多个类选择器
多类选择器在IE6中不工作(正确)。请参见multiple classes和browser support table。
通常,这里的技巧是嵌套div:
<div class="foo"><div class="bar"></div></div>当然,然后:
div.foo div.bar { ... }显然不是一回事,但你没有太多的选择。另一种方法是手动组合这些类:
div.foo { background: red; }
div.bar { border: 1px solid black; }
div.foobar { background: red; border: 1px solid black; }
<div class="foobar"></div>再说一次,这离理想还很远。但是在IE6上你能做的就这么多了。
发布于 2009-07-15 14:49:10
在同一元素上有多个类的IE6 doesn't support选择器。据推测,IE-7.js脚本可以解决这个问题。
您的选择器应该可以在IE7+和最新版本的Safari中正常工作。
https://stackoverflow.com/questions/1131819
复制相似问题