javascript - 如何用子图像覆盖固定大小的容器,保持全宽/高比?
问题描述
所以我有一个 300x300 的方形容器和<img src="" />
里面的图像。
我想要的是覆盖整个容器的图像,但保持其宽度/高度比。
- 如果图像的宽度小于其高度(纵向),则它应该具有 100% 的宽度和要裁剪的部分高度。
- 如果高度小于宽度(横向),它应该有 100% 的高度和要裁剪的额外宽度。
如果它们都是横向或全纵向的,我可以通过将宽度或高度设置100%
为并将高度或宽度分别设置为auto
:
.container {
border: 1px solid black;
margin: 30px;
display: inline-block;
width: 300px;
height: 300px;
overflow: hidden;
}
img {
width: 100%;
height: auto;
}
<div class="container">
<img src="https://images.pexels.com/photos/949587/pexels-photo-949587.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" />
</div>
<div class="container">
<img src="https://yada.org/wp-content/uploads/2019/05/55846576-textured-floral-dark-blue-background-abstract-vertical-background-.jpg" />
</div>
但是是否有任何通用的HTML/CSS ONLY方法可以使其自动覆盖容器而不管方向?
注 1:内部图像不应以任何方式扭曲。它应该只符合上述规则的容器。
注2:我对一种并不暗示的方法感到好奇 background-image: url('')
解决方案
试试这个
.container {
border: 1px solid black;
margin: 30px;
display: inline-block;
width: 300px;
height: 300px;
overflow: hidden;
}
img {
width: fit-content;
min-height:300px;
}
<div class="container">
<img src="https://images.pexels.com/photos/949587/pexels-photo-949587.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" />
</div>
<div class="container">
<img src="https://yada.org/wp-content/uploads/2019/05/55846576-textured-floral-dark-blue-background-abstract-vertical-background-.jpg" />
</div>
推荐阅读
- 3d - ARKit + SceneKit:光照快速增加多边形数量
- c# - 服务如何将通用 JsonPatchDocument<> 转移到另一个服务?
- c# - 无法在 MVC 中上传文件
- python-3.x - Python pandas:统一来自 CSV 输入的日期时间列格式
- html - ui-bootstrap datetime-picker 将 show-meridian 定义为 false
- excel - 处理不正确的密码运行时错误
- json - 如何从 Cosmos DB 导出数据
- c# - WebApi Core 中的 WebSocket IsWebSocketRequest 为 False
- scala - 如何查看已写入的文档数量并正确处理错误?
- angular - 带 Ionic 框架的锁设备