html - 内部 div 相对于背景图像的 CSS 位置

标签 html css

我有以下 HTML 用于将外部 div 居中并包含背景图像。这很好用。我想创建一个相对于图像大小的内部 div,以将 div 放置在图像中的黑色方 block 中。图像大小为 1783x1481,内部 div 的 Angular 应为 TopLeft:397,318 TopRight:1140,318 BottomLeft:397,903 BottomRight:1140,903

我不确定如何处理这个问题,我可以使用百分比吗?我应该使用 View 高度缩放吗?

#outer {
  position: relative;
  background-image: url(https://jrwr.io/terminal.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  height: 100vh;
  margin-left: auto;
  margin-right: auto;
  display: block;
}
<div id="outer">
  <div id="inner">Example Text here</div>
<div>

你可以在我的网站上看到这个问题的例子 jrwr.io和/或来自 imgur 上的此视频

最佳答案

如果你想用视口(viewport)缩放图像而不扭曲它,你可以使用 aspect-ratio 属性:

* {
  margin: 0;
  padding: 0;
}

html,
body {
  background-color: rgb(78, 3, 78);
  overflow: hidden;
}

#outer {
  position: relative;
  background-color: rgb(78, 3, 78);
  background-image: url(/image/QhkFU.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  margin: auto;
  width: calc(min(100vw, 120vmin - 10px));
  /* aspect ratio calculates the height */
  aspect-ratio: 1.2/1;
}

#inner {
  position: absolute;
  top: 21%;
  left: 22%;
  width: 42%;
  height: 40%;
  background-color: black;
  font: 2vmin monospace;
  color: limegreen;
}
<div id="outer">
  <div id="inner">
    <br>
  <p>&nbsp;Testing Terminal</p>&nbsp;&gt; <span>ping www.google.com -t </span></div>
</div>


这里,宽度设置为calc(min(100vw, 120vmin - 10px))

  • 如果视口(viewport)高度(vh) > 视口(viewport)宽度(vw),则vmin = vw,将使用100vw,图像高度将根据纵横比自动计算(1783/1481= 1.2).
  • 如果 vh < vw 那么,vmin = vh。宽度将设置为 vh 的 120%。 -10px 用于避免滚动条。您可以在主体上使用 overflow:hidden

关于html - 内部 div 相对于背景图像的 CSS 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70118487/

相关文章:

javascript - 打印网页上的所有选项卡

jquery - 如何获取距日期选择器中所选日期 15 天以上的日期?

html - css 中的标签问题。无法编辑html

html - 指定大于 7% 的值会使列宽不均匀。有人可以解释为什么吗?

wordpress - 背景图片在手机上不缩放

javascript - 使用过渡更改 <p> 元素的 innerHTML

javascript - 当未选择选择元素的第二个选项时禁用按钮

css - 想借助 CSS3 将占位符添加到输入中

html - 在中断的内联元素上创建背景颜色

Java - FXML,CSS