Card卡片里的图片为啥显示不全?
我用Bootstrap写了个Card组件,但里面的图片总是被裁掉一部分,只显示中间区域。明明图片路径是对的,也设置了宽高,但就是不完整显示,有点懵。
试过加object-fit: contain,也试过把img标签单独包一层,都没用。是不是Card的样式有啥隐藏的限制?
<div class="card" style="width: 18rem;">
<img src="product.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">商品名称</h5>
<p class="card-text">这是一段商品描述。</p>
</div>
</div>
card-img-top默认用了类似cover的行为,所以图片会被裁剪。你试过
object-fit: contain但没用,大概率是CSS优先级被Bootstrap默认样式盖住了。直接这样处理:在img标签上加样式,用
!important强制覆盖:或者如果想全局生效,写一段CSS:
height你根据实际情况调,contain 保证图片完整显示但可能会有留白,cover 才会填满裁剪。你要完整显示就用 contain,介意味边留白就这样搞。改一下img的样式就行:
或者直接内联样式:
你之前说试过object-fit: contain没用,大概率是因为没同时固定height。cover是裁剪填充,contain是完整显示但可能留白,两者都得配合明确的高度才生效。
如果不想留白,就用cover然后接受裁剪,这是正常的业务场景。