html - 居中、保持纵横比并覆盖屏幕的 CSS Canvas 或 Div 元素?

标签 html css

试图找到一种优雅的 CSS 方式来保持 Div(或 Canvas )元素的纵横比,同时覆盖屏幕并保持 div 居中。

假设我们希望 div 为 16:9,但如果屏幕太窄,则允许 div 宽度向左和向右(裁剪)等量超出屏幕,同时填充 100% 的高度。如果屏幕太宽,则相反。

(模拟图像的 object-fit:cover 属性,但对 div 元素本身这样做)

最佳答案

Flexbox将是一个解决方案。

您需要容器上的 height100vh(以覆盖页面的整个高度),以及 display: flexalign-items: centerjustify-content: center

然后您需要做的就是在子元素上指定固定的宽度高度

元素将始终位于中心,同时还保留其尺寸和纵横比。这可以从以下方面看出:

body {
  margin: 0;
}

.container {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.element {
  border: 1px solid black;
  height: 100px;
  width: 100px;
}
<div class="container">
  <div class="element"></div>
</div>

关于html - 居中、保持纵横比并覆盖屏幕的 CSS Canvas 或 Div 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815600/

相关文章:

jquery - 使用 jquery 添加 css 属性

javascript - css旋转2个具有不同宽度的元素以保持相同的距离

html - Gulp Uncss 破坏了 Bootstrap 下拉导航栏导航

html - a-Hover 菜单在鼠标悬停时不断消失

php - 我有 4 个标题公告。但只出现一个标题公告。如何让所有的标题都显示出来?

javascript - 在文本区域内获取第一个 block 引用

html - Bootstrap awesome 复选框 css 不应用样式

html - 删除 ajaxtoolkit Combobox 按钮的内联样式

html - 鼠标悬停在 Firefox 上不起作用

css - Flexbox 在 Safari 中没有正确排列盒子