1

我有一个看起来像这样的标记:

<div style="width: 150px; height: 250px;">
    <img src="Image1.jpg" />

    <div class="YellowExclaimIcon iconsBlack"></div>
</div>

我想要达到的目标如下:

结果

这意味着图像应始终放置在父 div 的中心(水平和垂直),警告图标应位于图像顶部,右侧和底部的边距为 5。

另外需要注意的是,图像的宽度和高度并不总是相同的,但是警告图标的位置应该始终是正确的位置。

YellowExclaimIcon 类包含背景图像,但如果需要,可以将其更改为图像。需要考虑的是图像还具有最大宽度和最大高度。

我尝试了这个线程CSS Help - div over image中的答案,但我无法让它与居中一起使用。

4

4 回答 4

5

如果图像宽度和高度是可变的,则只能通过更改标记来实现,如下所示:

<style type="text/css">
    div.container {
        width:150px; height:250px; display:table-cell; vertical-align:middle; 
        text-align:center; background-color:#ededed}
    div.image {
        position:relative; display:inline-block; }
    div.image img {
        display:block; }
    div.YellowExclaimIcon {
        position:absolute; width:80px; height:80px; bottom:5px; right:5px; 
        background:transparent url(your-icon.png) no-repeat 100% 100%}
</style>

<div class="container">
    <div class="image">
        <img src="Image.jpg" alt="" />
        <div class="YellowExclaimIcon"></div>
    </div>
</div>

上面的示例将始终在中心水平和垂直对齐图像,右下角有一个图标,5px 边距。

检查工作示例:http: //jsfiddle.net/Q9uhV/

于 2013-01-10T10:41:16.420 回答
2

用于position:relative外部 div 和absolute内部 div

HTML

    <div class="outer">

    <div class="YellowExclaimIcon"></div>
</div>

CSS

 .outer{
  width: 150px; height: 250px; 
  border:solid red 1px;
  position:relative;
  vertical-align:middle;
  background:url(http://icons.iconarchive.com/icons/everaldo/kids-icons/128/penguin-icon.png) no-repeat center center;
}
.outer img{text-align:center; vertical-align:middle}
.YellowExclaimIcon{  
  position:absolute;
  width:100%;
  height:100%;
  top:0; left:0; background:url(http://da.countyofventura.org/images/buttons/images/warning-icon.gif) no-repeat center 95%;
}

演示

于 2013-01-10T09:18:29.593 回答
0

您需要使用 z-index 和一些定位,如下所示:

<div style="width: 150px; height: 250px;">
    <img src="Image1.jpg" style="z-index:-1" />

    <div class="YellowExclaimIcon iconsBlack" style="z-index:1; margin-left:10px; margin-bottom:10px"></div>
</div>

..例如,将您的边距设置为您需要的。

于 2013-01-10T09:20:44.480 回答
0

制作警告图像absolute,以便您可以将其放置在指定位置的其他图像之上。

HTML:

<div class="container">
  <img src="penguin.png" />
  <img class="warning" src="warning.png" />
</div>

CSS:

.warning {
  position:absolute;
  left:80px;
  top:80px
}

有关演示,请参阅此 jsFiddle

于 2013-01-10T09:24:21.140 回答