css - 在不使用背景图像的情况下裁剪和居中图像

标签 css web

我想在一个页面上创建多个大小相同的图像,我想裁剪源图像并将其居中而不调整它们的大小。我找到了几个满足我需要的答案(如 here ),但它们似乎都使用背景图像。不过,我制作的图像是黑白的,悬停时会变为彩色,因此它们是它们自己的类,我不能使用背景图像解决方案。

希望这是有道理的,已经很晚了。请让我知道是否有任何方法可以在没有背景图像的情况下进行居中/裁剪,或者对背景图像产生 b/w->color 效果。谢谢!

最佳答案

如果使用 CSS transforms是一个选项,即使图像的尺寸未知也可以这样做。

他们的关键点是 translate() 符号的百分比值是相对于 bounding box 的大小的。 ,而 top/left 属性的百分比值指的是框的包含 block 的大小。

.center-cropped {
  width: 100px;
  height: 100px;
  position: relative;
  overflow: hidden;

  border: 1px solid black;
  margin: 0 auto;
}

.center-cropped img {
  position: absolute;
  top: 50%; left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
<div class="center-cropped">
    <img src="http://placehold.it/200x200" alt="" />
</div>

值得注意的是,IE9+ 支持 CSS 转换。

关于css - 在不使用背景图像的情况下裁剪和居中图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753033/

相关文章:

javascript - 全屏 HTML5 视频自定义 Controller

css - 无法更改 Wordpress Woocommerce 类别中当前猫的颜色

javascript - 对同一域发出 CORS 错误的获取请求

javascript - 如何在react.js中创建可重用的组件或部分组件?

reflection - 使用-webkit-box-reflect 时如何设置反射的不透明度?

javascript - 工具提示中的 HTML 表格未使用 Bootstrap 4.3.1 显示

javascript - 如何将文本从 DIV 流向 DIV?

android - 在移动设备上通过 Facebook Native App 在 Web 上登录时, session 丢失

javascript - 给定三个水平对齐的 div,如何在浏览器窗口调整大小时使中心 div 清除其他两个?

python - Scrapy 没有以正确的顺序执行