0

我有这样的标记:

<p>Image caption</p><img />

p 是一个内联块。

我希望标题覆盖图像,而不是将图像推到左侧。通常我使用 margin-right -"x"px; 来执行此操作,但由于我不知道图像标题的宽度,我不能使用这种技术。有什么好的选择吗?(文本有背景色,所以我不能使用块元素)

4

5 回答 5

1

您是否考虑过绝对定位相对定位的 div 内的项目?

例如,将 p 和 img 包装在一个 div 中并添加 position:relative 到 div 然后添加 position:absolute 到 p 和 img 并左或右定位这些元素。

于 2012-05-30T11:38:23.477 回答
0

在它周围放一个div

<div><p>Image caption</p><img /></div>

指定 的宽度div并允许 位于 的img顶部p。然后,您可以padding: 0 auto;在 div 上使用以使图像居中。

于 2012-05-30T11:27:51.903 回答
0

我会将 p 和 img 包装在一个 div 中。

<div>
<p>Image caption</p>
<img /> 
</div>

然后使用以下样式:

div {
  position: relative;
  float:left;
}
p {
  position: absolute;
  top: 20px;
  left: 10px;
}

您可以相应地调整顶部和左侧的值,如果您愿意,还可以使用底部或右侧而不是顶部和左侧。

于 2012-05-30T11:36:43.597 回答
0

另一种选择是使用固定大小的 div 并将您的图像用作背景?这样,任何文本都将被覆盖,而无需使用绝对定位和相对定位。垫

于 2012-05-30T11:42:36.423 回答
0

此处编写的解决方案不适用于我的网站(尽管在技术上是正确的)

我的解决方案是

<p>
    <span>Image caption<span>
</p>
<img />

进而

p{
    display:block;
    margin-right -100%;
}

一些额外的标记,但希望它会帮助有人走上和我一样的道路!

于 2012-05-30T11:43:41.883 回答