上面的图片显示了当我用各种图像填充我的引导程序图库时会发生什么。 html看起来像这样:
<ul class="row">
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/1920x1080"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/1920x1080"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/800x600"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/1920x1080"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/1920x1080"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/800x600"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/800x600"></li>
<li class="col-lg-3 col-md-3 col-sm-6"><img class="img-responsive img-thumbnail" src="http://placehold.it/800x600"></li>
</ul>
有没有办法让图像标准化为4:3而无需预处理或使它们无响应?
答案 0 :(得分:7)
您可以使用百分比padding
技巧(相对于其容器宽度)设置元素的比率
因此,您必须将img
元素替换为div
,并将图像设置为背景。使用background-size:cover
将缩放图像以填充其容器而不拉伸。当然会发生一些种植*)
所以你的html变成了
<ul class="row">
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/1920x1080')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/1920x1080')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/800x600')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/1920x1080')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/1920x1080')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/800x600')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/800x600')"></div>
</li>
<li class="col-lg-3 col-md-3 col-sm-6">
<div class="img-responsive img-thumbnail ratio-4-3" style="background-image:url('http://placehold.it/800x600')"></div>
</li>
</ul>
和你的CSS
/* CSS used here will be applied after bootstrap.css */
ul{
list-style:none;
margin:0;
padding:0;
}
.ratio-4-3{
width:100%;
position:relative;
background:url() 50% 50% no-repeat;
background-size:cover;
background-clip:content-box;
}
.ratio-4-3:before{
display:block;
content:"";
padding-top:75%;
}
演示
答案 1 :(得分:-4)
将此添加到您的css:
img {
width: 100%;
}