2010-01-07 95 views
0

在IE6中,带有彩色背景颜色的display:block将该颜色扩展到页面的最右侧。更改为显示:内联修复了问题,但现在颜色立即在我的最后一个字符后结束,尽管我已经在CSS中指定了填充右侧:1em 。填充左侧正在工作,但没有填充右侧。任何解决方法?我一直在Google上搜寻几个小时,但找不到答案。用于显示的填充权限:IE6中的内联元素

+0

你能发表一些代码来重现问题吗? – 2010-01-07 19:09:07

+0

在试图这样做的时候,我现在看到了IE6中的正确行为以及我的简单示例。 <风格类型= “文本/ CSS”> DIV { 背景颜色:黄色; } 。填充 { display:inline; line-height:25px; height:25px; padding-top:12px; padding-bottom:13px; padding-right:50px; padding-left:50px; }

This is a paragraph with specified paddings.
所以我想有一个我的团队的大环境下一些其他的CSS被折腾吧了。对不起,可能是虚惊一场。 – Dave 2010-01-07 19:27:35

+0

即使您的问题是针对IE 6,Firebug也可以用于查看任何其他样式来自何处。 – 2010-01-07 19:35:11

回答

2

我希望display:blockdisplay:inline也可以在其他浏览器中以这种方式工作,而不仅仅是IE6,因为这就是他们的工作方式。块元素占据整个宽度(除非您自己指定宽度,在这种情况下,宽度就是这个宽度),之后有一个换行符,而内联只占用它需要的宽度(即使您给它一个不同的宽度,它将不会使用它)并且没有新行。这就是为什么当背景颜色是块元素时,它会延伸到页面的最右侧。

填充应该可以在内联元素上正常工作,所以可能会有另一个元素或样式发生冲突并导致问题。如果没有看到代码示例,则无法分辨。

您可以尝试使用display:inline-block将保持内联(因此它不占用整行并有换行符),但它将表现为与填充,边距和宽度有关的块元素。

不过,请注意IE6(7)只允许是默认的内联元素(span等)

做不到这一点的元素display:inline-block,您需要提供能重现问题,所以我们可以看到一个代码示例如果别的东西有影响。

+0

display:block尊重宽度属性,但可以用来限制向右的范围。 display-inline没有。您可能是正确的,所有其他浏览器都是错误的,IE6是正确的。我只想知道如何让IE6渲染,因为我希望我可以。感谢您的回答。 – Dave 2010-01-07 19:13:42

+0

对不起,我并不是说块总是应该占据全宽,只有当你自己没有指定宽度时。如果你自己指定一个宽度,那么块元素显然就是这个宽度,而内联总是会使用他们需要的,并且不会改变宽度,即使你为它们指定了一个宽度。我在答复中更新了这一点,以使其更清楚。虽然我可能只是让它更混乱:) – 2010-01-07 19:15:52

+0

谢谢丰富....你的回答很明确。 – Dave 2010-01-07 19:29:26

1

尝试设置要显示的元素:inline-block。这有时会有帮助。

另外...看到上下文中的代码会更容易看到发生了什么。

+0

没有。渲染就像display:block一样。无论如何,谢谢。 – Dave 2010-01-07 19:07:27

0

最好的解决方案是忽略IE 6.仍然使用IE 6的人习惯于获取不良的网页显示,他们大多使用IE 6,因为他们的网络管理员认为让每个人都使用它更安全。

至于第二个选择的解决方案:在文本后面填充一个硬空间(&nbsp;)。

+3

我不同意。您需要分析您的流量情况(在Google Analytics或其他地方),看看IE6对您的业务有多重要。 – Tom 2010-01-07 19:08:54

+0

我不能忽略IE6;该产品必须使用IE6及更高版本,再加上所有优秀的浏览器。文本本身不在我只能在需要时才添加nbsp的地方。谢谢。 – Dave 2010-01-07 19:09:26

+0

我不同意。无论我们喜欢与否,IE6仍然是一个重要因素。 – 2010-01-07 19:36:14