html - 垂直居中对齐 div 中的裁剪图像

标签 html css

我正在尝试创建一个 CSS 样式,它将获取图像并将其缩放以最适合信箱形状的 div。溢出将被裁掉。我很接近这个,它目前看起来像这样:

current appearance

原图为

original image

我想对此进行修改,使图像在 div 中垂直居中,而不是顶部对齐。我在这里错过了什么?我的 html 是

.crop {
  width: 670px;
  height: 200px;
  overflow: hidden;
}

.crop img {
  width: 670px;
}
<div class='crop'>
  <img src='http://cycle.travel/images/600/amsterdam_ccby_conor_luddy.jpg' />
</div>

我不能假设图像的高度在我使用它的任何地方都是相同的。

最佳答案

您可以相对定位图像,然后让浏览器使用 top:-50%; 将其向上提升 50%:

.crop {
  width: 670px;
  height: 200px;
  overflow: hidden;
}

.crop img {
  width: 670px;
  position:relative;
  top:-50%;
}
<div class='crop'>
  <img src='http://cycle.travel/images/600/amsterdam_ccby_conor_luddy.jpg' />
</div>

关于html - 垂直居中对齐 div 中的裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686186/

相关文章:

html - css 图片在左边,标题和文字在右边

javascript - 当我转换它们时,div 左侧出现一条线

javascript - 在表单action=中使用javascript和html表单输入

javascript - 从 API 获取数据( Angular )

CSS:标签和链接,两者都应该有效

cross-browser - 如何让 text-shadow 和 box-shadow 在所有浏览器上使用文本颜色?

html - 在按钮内添加一个三 Angular 形图标,让用户知道这个按钮有一个下拉菜单

javascript - 使用 oninput 事件克隆 html 表单

javascript - 响应元素增长的事件

javascript - Angular-vs-scroll 不适用于表中的隐藏元素