2011-04-27 72 views
1

我有一个<p>标记,周围填充9px。在FF和IE8中看起来不错,但不是IE7。它“缩小”<p>标签。由于<p>标签具有用于背景的半透明PNG,因此您可以看到它不像其他2个浏览器中那样碰到包含<div>的右侧,因此对于查看者来说这变得很明显。有没有指定尺寸的IE7填充解决方法?

没有进入“为什么”,我的问题是这样的:有没有办法让填充9px的填充的<p>标记填充IE7中的可用空间,而不必指定宽度(像素或百分比) ?

谢谢!

的HTML代码示例:

<a href="#"> 
    <img class="off" src="image1.png" /> 
    <img class="on" src="image2.png" /> 
    <p>Some copy.</p> 
</a> 

样品的CSS代码:

a { 
    position: absolute; 
    top: 100px; 
    left: 100px; 
} 

a img.on { 
    visibility: hidden; 
    position: absolute; 
    top: -10px; 
    left: -10px; 
} 

a:hover img.on, a:hover p { 
    visibility: visible; 
} 

a p { 
    position: absolute; 
    visibility: hidden; 
    bottom: 0px; 
    left: 0px; 
    padding: 8px; 
    background: url(bg.png) repeat; 
} 
+0

你可以请张贴一些代码吗?或链接? – 2011-04-27 16:49:47

+0

@faraz:刚发布。 – linnium 2011-04-27 17:16:23

回答

0

你举的例子并不能真正帮助我,因为它并没有真正说明问题。尝试设置你的p的宽度和高度为100%。你可能会发现这会使它稍大,在这种情况下,你需要将IE6/7的宽度和高度设置为直接像素大小的高度和宽度减去填充值(x2作为其两侧)。

0

不幸的是,由于第二张图片比第一张图片大,所以将<p>设置为100%宽度确实会使图片太长。

我在JQuery中创建了一个动态解决问题的解决方案。它通过从中获得顶点值(在CSS中定义),将其乘以2,然后从第一个图像的宽度(.off)中减去它来设置<p>宽度。这似乎是一种更好的方法,因为您可以更新CSS中的填充而无需更新JQuery代码,并且不必将静态宽度信息放入CSS文件中。这似乎适用于所有浏览器。

相关问题