我有这个html和CSS
<div class="kalim"><img src=""></div>
CSS
.kalim {display: inline-block;}
.kalim img {max-width: 800px;width: auto;max-height: 800px;}
此代码的问题在于,在调整浏览器大小时,图像的宽度不响应。如果我设置width:100%
,那么超过800像素的肖像图像会变形。
是否有解决方法,使图像响应并具有最大高度和最大宽度设置?
答案 0 :(得分:4)
您应该将宽度限制添加到外部元素而不是图像。外部元素的大小不会超过最大宽度和最大高度,但图像的宽度始终为100%。这样您的图像就会响应。
HTML
<div class="kalim"><img src=""></div>
CSS
.kalim {display: inline-block; max-width: 800px; max-height: 800px;}
.kalim img {max-width: 100%; height:auto;}
答案 1 :(得分:0)
像img-responsive或img-fluid bs4的bootstrap class css
<img src="chicago.jpg" style="max-width: 100%; height: auto; width: 800px"/>
答案 2 :(得分:0)
在Bootstrap 4中,您可以添加类img-fluid
并设置width
和height
属性。
<img class="img-fluid" src="https://source.unsplash.com/random/1600x1600" width="800" height="800">
您可以尽量将图片的尺寸设置为1600x1600,但不会超过网页中的800x800。这也是响应性的。
<html>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<img class="img-fluid" src="https://source.unsplash.com/random/1600x1600" width="800" height="800" alt="Image from unsplash">
</html>
答案 3 :(得分:0)
我们可以使用 object-fit 来简化答案:
.kalim img {max-width: 800px; max-height: 800px; object-fit: contain;}
或
.kalim img {max-width: 800px; max-height: 800px; object-fit: cover;}