html - 垂直居中全屏图像

标签 html css image vertical-alignment centering

我想将全屏图像垂直居中。 我无法在 CSS 中定义图像,因为图像取决于 URL 参数。

<div>
    <img src="photo.jpg">
</div>

div {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

如果我这样定义图像 CSS:

div img {
    width: 100%;
    height: 100%;
}

我的图像将拉伸(stretch)并在高度上变形以适应屏幕。

如果我像这样定义图像 CSS(只是没有定义高度):

div img {
    width: 100%;
}

我的图像不会拉伸(stretch)/变形,但会从图像的 top: 0 开始。我想要的是图像垂直居中并隐藏其高度的溢出。

基本上,我想要在背景居中的 CSS 中获得相同的行为:

background: url(photo.jpg) no-repeat center;
background-size: cover;

编辑:我忘了提到 CSS object-fit: cover 可以解决这个问题,但我正在寻找一个更跨浏览器的解决方案,因为这个属性没有适用于所有浏览器。

最佳答案

试试这个 CSS

div {
    position: fixed;
    top: 50%;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

编辑

同时给图像赋予高度和宽度也是一种不好的做法。这将始终覆盖图像的纵横比并在某个方向拉伸(stretch)它。

将其用于 img

div img {
    width: 100%;    
}

这将首先将分区 50% 置于顶部。也就是说,图像的最顶端部分现在位于页面高度的 50% 处,然后 translate 属性会将图像向上移动其高度的 50%,基本上使图像居中

关于html - 垂直居中全屏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519876/

相关文章:

javascript - carousel 插件和 jquery 库不能一起工作

javascript - 没有 src 属性的 iframe

javascript - JS表单验证功能不起作用

html - CSS 溢出属性问题

java - 从名称和索引中选择图像

javascript - 我可以通过 JavaScript 获取图像的文件大小和 mime 类型吗(仅限 FireFox/Gecko/Mozilla)

javascript - 导航栏和页脚的奇怪样式问题

javascript - 网页设计中的颜色燃烧混合模式

javascript - 通过拖动调整 pre 元素的大小

image - 平滑分割图像的线条