html - CSS 适合视口(viewport)内的 div,同时保持纵横比

标签 html css

我想在页面中央放置一个 div(红白框)。黑色区域代表页面布局 当宽度无法拉伸(stretch)以保持宽高比时,div 的高度需要为 100%;当高度无法拉伸(stretch)时,宽度需要为 100%。我不确定应该使用什么属性来计算

同样重要的是,div 不会溢出页面,这样就不会显示滚动条

我尝试过:设置高度:100%;宽度:自动;宽度:100%; height: auto; 两者都可以达到目标的一半,但我需要将它们结合在一起

*更新: 我已经通过 @Paulie_D 的答案实现了 1:1 的宽高比,但是如果 div 需要为 16:9 或 4:3 该怎么办?

最佳答案

您可以使用vmin来管理它

Codepen Demo

vmin Equal to the smaller of vw and vh.

MDN

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #000;
}

div {
  width: 100vmin;
  height: 100vmin;
  background: white;
  margin: auto;
  border: 5px solid red;
}
<div></div>

关于html - CSS 适合视口(viewport)内的 div,同时保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60391447/

相关文章:

javascript - 通过 javascript 代码隐藏到 jsp 元素的可见性

html - 2010 年不使用文档类型的原因是什么?

php - 如何使用 PHP 将长字符串插入 mySQL 数据库?

html - 导航栏底部的图标不会根据框架的大小调整而移动

css - YUI-3 网格 && 谷歌浏览器 : Overlapping text

html - 视口(viewport)不起作用

html - 如何使用 CSS 为所有浏览器垂直居中 div 元素?

html - CSS 侧边栏背景色全宽

css - Bootstrap 4 将图像移出卡片标题的容器

javascript - 模拟 CSS 悬停 :before and hover:after behavior tooltips for touchscreens