7

我正在使用带有响应式布局的twitter bootstrap 2.1.1,我想在图像的右下角浮动一个标签。我遇到的问题之一是因为当缩略图更宽时它会响应,然后图像浮动太远。另一个问题是我似乎无法让它向右浮动。我还应该补充一点,虽然我希望它在右下角,但我确实希望它偏移几个像素,因为它不在图像的边缘。此外,文本可能总是缺少照片,即显示默认图像时。

到目前为止,这是我的 html

<li class="span4">
  <div class="photo-group thumbnail">
    <a href="/recipes/50500235aa113eb1870001d8" class="photo-wrapper"> 
      <img alt="300x200&amp;text=photo" src="http://www.placehold.it/300x200&amp;text=Photo">
      <span class="label label-inverse photo-label">Photo Missing</span>
    </a>
    <div class="caption">
      <div class="pull-right">
        by <a href="/users/50494983aa113ebd5c000001">
     hadees
        </a>
      </div>
      <a href="/recipes/50500235aa113eb1870001d8">Chocolate Crackle Cookies</a>
    </div>
  </div>
</li>

这是我的CSS

.content-header {
    padding-bottom: 10px;
}

.thumbnail > a > img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.photo-group .photo-wrapper {
  position: relative;
}

.photo-group .photo-wrapper .photo-label {
  position: absolute;      
  bottom: 0;
}

.photo-group .photo-wrapper .photo-label {
  float: right;
}​

我还有一个jsfiddle作为更好的例子。

也许处理这个问题的正确方法是让照片组的最大宽度为 300,但我认为这种在桌面全屏上看起来很有趣。

4

1 回答 1

8

这是我的小提琴版本:http: //jsfiddle.net/AdVCT/9/

本质上,您需要在图像和标签周围放置一个包装器,以便您可以在此包装器中绝对定位标签:

        <div class="photo">
            <img alt="..." src="..." />

            <span class="label label-inverse photo-label">Photo Missing</span>
        </div>

然后使用一些 CSS,您可以将 .photo 更改为居中,但也只能与其中的图像一样大(标题是绝对定位的,因此它有效地从页面流中取出,并且不会影响父母的宽度ETC。):

.photo-group .photo-wrapper .photo {
    position: relative;
    margin: 0 auto;
    display: table;
}

并从 .thumbnail > a > img 规则中删除 margin-left: auto/margin-right: auto 。最后,要从图像的侧面稍微偏移标签,请使用:

.photo-group .photo-wrapper .photo-label {
  position: absolute;      
  bottom: 5px;
  right: 5px;
}

并将 5px 设置为您想要的偏移量。

于 2012-09-16T10:30:50.913 回答