【问题标题】:Bootstrap 3 thumbnail: both vertically and horizontally centered imageBootstrap 3缩略图:垂直和水平居中的图像
【发布时间】:2015-08-27 03:46:37
【问题描述】:

我有几个 Bootstrap 3 缩略图。我希望它们的大小相同,所以我已经固定了它们的高度和宽度。他们将显示不同大小和比例的不同图像,我希望它们垂直和水平居中。当图像太大而无法放入其容器中时,我希望将其缩小。

我在this handy post 中找到了使用transform: translate(-50%, -50%); 的部分解决方案,但它不适用于平板电脑或jsfiddle 之类的网站。事实上,固定高度在那里也不起作用。我正在尝试找出良好的跨浏览器兼容性。

jsfiddle link

@import url('http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css');
@import url('http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css');

.thumbnailcontainer
{
    height: 40rem;    
    width: 20rem;
}

img
{
    max-height: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}
    <div class="row">
    
    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">
    <div class="thumbnail">
      <img src="http://animalia-life.com/data_images/mammal/mammal4.jpg" alt="image">
      <div class="caption">
        <div class="thumbnailheader"><h3>Lorem ipsum</h3></div>
        <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
    </div>
    
    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">    
    <div class="thumbnail">
      <div class="img-container">
        <img src="http://upload.wikimedia.org/wikipedia/commons/0/03/Mountain_Bluebird.jpg" alt="image">
      </div>
      <div class="caption">
        <div class="thumbnailheader"><h3>Lorem ipsum.</h3></div>
        <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
    </div>
        
    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">    
    <div class="thumbnail">
      <img src="http://upload.wikimedia.org/wikipedia/commons/8/84/Leaning_Tower_of_Pisa_(April_2012).jpg" alt="image">
      <div class="caption">
        <div class="thumbnailheader"><h3>Lorem ipsum.</h3></div>
        <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
    </div>
        
  </div>

有什么想法吗?

【问题讨论】:

  • Bootstrap 框架处理居中内容。该框架还可以很好地与display: flex; 配合使用,我经常使用它来使项目居中。也就是说,尽量不要与框架抗争,推特上的人真的想到了很多极端情况。

标签: html css twitter-bootstrap-3 center


【解决方案1】:

首先,您的 css 会更改每个图像,而不仅仅是缩略图中的图像,这不是一个好习惯。但是我使用您当前的代码来提出答案。

.thumbnail img { height:100px; width:100%;}

您需要将宽度定义为 100% 并为其指定特定高度。然后,您需要为图像添加响应能力。添加 img 响应类。您还需要将图像居中,并且 bootstrap 3 会为您在课堂上做到这一点:center-block

<img src="http://upload.wikimedia.org/wikipedia/commons/0/03/Mountain_Bluebird.jpg" alt="image" class="img-responsive center-block">

jsfiddle

要保持缩略图高度相同:helpful Link

Jsfiddle - 2


   <div class="row">
    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">
     <div class="thumbnail">
        <img src="http://upload.wikimedia.org/wikipedia/commons/0/03/Mountain_Bluebird.jpg" alt="image">
       <div class="caption">
         <div class="thumbnailheader"><h3>Lorem ipsum</h3></div>
         <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
  </div>

    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">    
    <div class="thumbnail">
      <div class="img-container">
        <img src="http://upload.wikimedia.org/wikipedia/commons/0/03/Mountain_Bluebird.jpg" alt="image" class="img-responsive center-block">
      </div>
      <div class="caption">
        <div class="thumbnailheader"><h3>Lorem ipsum.</h3></div>
        <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
    </div>

    <div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">    
    <div class="thumbnail">
      <img src="http://upload.wikimedia.org/wikipedia/commons/8/84/Leaning_Tower_of_Pisa_(April_2012).jpg" alt="image" class="img-responsive center-block">
      <div class="caption">
        <div class="thumbnailheader"><h3>Lorem ipsum.</h3></div>
        <p>Lorem ipsum ad his scripta blandit partiendo.</p>
        <p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
      </div>
    </div>
    </div>

  </div>

你的CSS:

@import url('http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css');
@import url('http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css');

.thumbnailcontainer
{
    height: 40rem;    
    width: 20rem;
}
.thumbnail img { height:100px; width:100%;}

【讨论】:

  • 是的,在我的原始代码中,我有 img-responsive,当然我不会将该 css 应用于所有图像。这只是一个例子。你的解决方案是缩略图的高度不同,图像的大小相同。我想要实现的是让所有缩略图(容器)大小相同,并且图像(保持它们的比例,而不是拉伸)缩小以适合图像容器。
  • @derkomai Bootstrap 是一个很棒的框架。需要考虑的快速提示...当您要编写实用程序类或需要某种一般规则时(例如使图像居中)。在你做之前谷歌它(例如)“引导中心图像”,我发现框架中存在许多让我的生活更轻松的小类。
  • 谢谢你们! @CodingEnthusiast,新的小提琴对我来说是一样的(使用 Chrome 43)。我看到了新的 javascript,但结果是一样的。
  • @derkomai 用谷歌搜索发现:stackoverflow.com/questions/9278569/…
  • 谢谢你,@CodingEnthusiast,我正在努力让它工作,但到目前为止还没有运气。我今天再试一次,但现在图像要么重叠标题,尽管 max-height、max.width 或缩略图容器被拉伸。也许我应该尝试他们在那个链接上提出的 jQuery 解决方案,但首先我想尝试一个纯 CSS 的解决方案。
猜你喜欢
  • 2019-01-13
  • 2013-05-18
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多