Bootstrap对齐标题相对于图像宽度而不是容器

时间:2014-04-18 12:19:14

标签: html css twitter-bootstrap-3

我试图列出一些图片,并且对于每张图片我想要一个标题,有一些细节,让我们说标题,现在的问题是标题的宽度是相对于正常的父div,但我希望它相对于图像宽度,但由于我在img上有类img-responsive,我不知道如何实现这一点。也许你们可以帮助我。

以下是一个实例:http://jsbin.com/cudugize/1/edit?html,css,output

这是代码

HTML

  <div class="col-sm-3 col-xs-6 col-md-2 col-lg-3">
  <div class="thumbnail">
  <a href="url"><img width="139" height="161" src="http://lorempixel.com/139/161/nightlife/" class="img-responsive" alt="..."></a>
  <div class="caption img-responsive">
  <h4 class="text-center"><a href="url" title="title" class="homepage anchorhead text-uppercase">Nice title</a></h4>
  <p class="text-center"><a href="#" class="homepage city text-uppercase"><span class="glyphicon glyphicon-globe"></span> usa</a></p>
  </div>
  </div>

  <div class="thumbnail">
  <a href="url"><img width="139" height="161" src="http://lorempixel.com/139/161/nightlife/" class="img-responsive" alt="..."></a>
  <div class="caption img-responsive">
  <h4 class="text-center"><a href="url" title="title" class="homepage anchorhead text-uppercase">Nice title</a></h4>
  <p class="text-center"><a href="#" class="homepage city text-uppercase"><span class="glyphicon glyphicon-globe"></span> usa</a></p>
  </div>
  </div>

  </div>

CSS

Aditional bootstrap core css

.thumbnail{
position: relative;
width: 100%;
border: none !important;
}
.thumbnail .caption{
  position: absolute;
bottom: 0px;
background: rgba(0,0,0,0.50);
width: 100%;
padding: 0px !important;
}

2 个答案:

答案 0 :(得分:2)

http://jsbin.com/cudugize/7

请参阅我的演示代码,它存档了您的需求。

<!DOCTYPE html>
<html>

<head>
    <script src="http://code.jquery.com/jquery.min.js"></script>
    <link href="http://getbootstrap.com/dist/css/bootstrap.css" rel="stylesheet" type="text/css" />
    <script src="http://getbootstrap.com/dist/js/bootstrap.js"></script>
    <meta charset="utf-8">
    <title>JS Bin</title>
    <style>
    .tc {
        text-align:center;
    }
    .thumbnail {
        position: relative;
        display:inline-block;
        *display:inline;
        *zoom:1;
        border: none;
        margin:0 auto;
        padding:0;
    }
    .thumbnail .caption {
        position: absolute;
        bottom: 0px;
        background: rgba(0, 0, 0, 0.50);
        width: 100%;
        padding: 0px !important;
    }
    </style>
</head>

<body>
    <div class="col-sm-3 col-xs-6 col-md-2 col-lg-3">

        <div class="tc">
            <div class="thumbnail">
                <a href="url">
                    <img width="139" height="161" src="http://lorempixel.com/139/161/nightlife/" class="img-responsive" alt="...">
                </a>
                <div class="caption img-responsive">
                    <h4 class="text-center"><a href="url" title="title" class="homepage anchorhead text-uppercase">Nice title</a>
                    </h4>
                    <p class="text-center">
                        <a href="#" class="homepage city text-uppercase">
                            <span class="glyphicon glyphicon-globe"></span>usa</a>
                    </p>
                </div>
            </div>
        </div>

        <div class="tc">
            <div class="thumbnail">
                <a href="url">
                    <img width="139" height="161" src="http://lorempixel.com/139/161/nightlife/" class="img-responsive" alt="...">
                </a>
                <div class="caption img-responsive">
                    <h4 class="text-center"><a href="url" title="title" class="homepage anchorhead text-uppercase">Nice title</a>
                    </h4>
                    <p class="text-center">
                        <a href="#" class="homepage city text-uppercase">
                            <span class="glyphicon glyphicon-globe"></span>usa</a>
                    </p>
                </div>
            </div>
        </div>

    </div>
</body>

</html>

答案 1 :(得分:1)

这个CSS应该可以解决问题:

.thumbnail {
  display: inline-block;
  position: relative;
  border: none !important;
  padding: 0;
}
.thumbnail .caption{
  position: absolute;
  bottom: 0px;
  background: rgba(0,0,0,0.50);
  width: 100%;
  padding: 0px !important;
}