IE css bug:它将'padding-left'附加到'background-image'的末尾?

时间:2010-06-24 13:34:40

标签: html css internet-explorer

我有一个奇怪的错误 在我的.css文件中,我有以下规则:

.conf-view a
{
    padding-left: 10px; 
    background-image: url("images/bullet-green.gif");
    background-position: center left;
    background-repeat: no-repeat;
}

问题是IE以某种方式解释它:

.conf-view A /* NOTE - this is copied from the IE-Developer tools css tab. */
    background-image : url(images/bullet-green.gif); PADDING-LEFT: 10px
    background-repeat : no-repeat
    background-position : left center

看到那里的填充物?
现在浏览器只是忽略填充规则,导致布局失败..

这是一个已知的错误吗?任何人都可以找到解决方法吗?

非常感谢 幼狮

3 个答案:

答案 0 :(得分:3)

IE开发者工具中似乎是一个错误,如果您单独指定了背景图像,那么显示代码只会吞噬下一个非背景定义(按字母顺序排序)。你的文字没有在任何一个链接上的那个页面上重叠你的背景图像,所以对我来说似乎无论如何都正确地解释了CSS;你能解释为什么你认为情况并非如此吗?

我不知道他们是如何设法创建该错误的,但是如果你想让它消失,那么在速记中指定背景定义似乎没有表现出这种行为:

background:transparent url("images/bullet-green.gif") scroll no-repeat left center;

答案 1 :(得分:2)

它似乎是应用背景图像的不同方式...在保存代码并使用样式表设置进行播放时,填充到50会移动图像和文本,这样就不会忽略填充,只是它以不同的方式处理背景图像的定位。

有趣的是,faileN的建议与我解决它的方法相去甚远。如果你把“display:inline-block;”那似乎适用于IE7和FF。当然,在使用它之前,你会想要测试它没有副作用。

答案 2 :(得分:0)

也许这是因为a - 元素通常是内联元素。这些元素具有背景图像和填充/边距并不常见,即使它是允许的。将display: block;放入a-style-definition中。也许它可以帮助你摆脱这种情况。

修改

等待您的示例代码:)