2010-01-13 70 views
3

对于HTML创建此报告& CSS左边框消失在IE 7 & 6.他们正确地显示在IE 8,火狐,Chrome,Opera等缺少左边框在IE 7

我正在申请的风格,三种不同的CSS类:

.LeftBorder 
{ 
    border-left: 1px solid black; 
} 
.LeftBorderHeadingShaded 
{ 
    background-color: gray; 
    color: black; 
    text-align: left; 
    font-weight: bold; 
    border-top: 2px solid black; 
    border-left: 1px solid black; 
} 
.noshadeLeftBorder 
{ 
    background-color: white; 
    border-left: 1px solid black; 
} 

而且这些类应用于特定的TR和TD标签,但左边框没有出现在任何这些。一些底部的边界被忽略了,但那不是什么大问题。

我做了一个屏幕截图,并排显示IE 7,6和8。我绕过了问题区域。这里是full HTML/CSS

Internet Explorer sucks at CSS http://www.mckeeth.org/test/missing-border.png

+1

请记住IE6有相同元素的多个类的麻烦。这似乎不是你的问题的原因,因为它不能在IE 7中工作,但仍然。 – 2010-01-13 23:03:04

+0

我只为每个元素应用一个类。不同的元素只有不同的类。 – 2010-01-13 23:09:34

+0

为了阐明Pekka所说的内容,不是像'

'这样的多个类的元素,而是像'div.class-one.class-two {/ * properties * /}'一样在css中使用多个类选择器。这个选择器应该正确评估(并且在FF,Safari中),但在IE中不起作用。 – prodigitalson 2010-01-14 00:37:42

回答

2

EDIT

那么该选择器仅仅意味着“应用属性的是与这个类LeftBorder一个tr元素的子类型td的元素”。如果那对你的结构不正确,我为这个混淆而道歉,我只看到了你在fire bug中的代码,并且看到了LeftBorder类的tr。底线是,虽然你需要申请边界td和/或table ...不是tr

那么首先我不认为你想像上边框应用到tr他们在TD所以你需要针对他们像tr.LeftBorder td

+0

+1 Yup,'tr'上的'border'肯定是错误的。 – 2010-01-13 23:03:57

+0

解决的办法是将** LeftBorder *样式应用到** TR **中的第一个** TD **。当然,其中一些样式也有其他格式,但它会起作用。 – 2010-02-03 01:13:47