使用视口缩放 div 位置

Scale div position with viewport

我正在做一个找不同的游戏。

到目前为止,我有一张带有红色圆圈显示的差异的图像用于测试。

我还有一个点(一个按钮,目前用于测试是蓝色的,但对于最终是透明的),这将是用户单击以获取差异的按钮。

我需要帮助让点在浏览器 window 调整大小时保持在红色圆圈内。

这是我的 JSFIDDLE 的 link 代码如下

CSS:

.position001{position:relative}.block001{position:absolute;top:50px;left:673px;background-color:#7fffd4;border-radius:50%}.button001{background-color:transparent;border:1px solid transparent;width:45px;height:42px}.hide001{outline:0;border:none}

HTML

<div class="position001">
    <div id="board001">
        <button class="hide001" onclick="incorrect001()">
            <img src="https://stefan.admark.co.uk/jimny.jpg" width="90%" />
        </button>
        <div class="block001">
            <div id="disappear001">
                <button class="button001" onclick="correct001()"></button>
            </div>
        </div>
    </div>
</div>

这可能会帮助您开始!

您必须在 vw 中使用 heightwidth,因为屏幕会发生变化,圆圈的大小也应与视口对齐。

其次,您可以使用 Media query 但是我认为这对您来说不是一个可行的选择,除非您非常擅长在屏幕分辨率发生变化时处理媒体查询,而不是按照我的回答中的建议可以使用 vw 作为高度、宽度并正确放置另一个圆圈,剩下的 属性 会处理它。

.position001 {
  position: relative;
}

.block001 {
  position: absolute;
  background-color: aquamarine;
  border-radius: 50%;
  top: 9.2%;
  left: 61.4%;
  width: 5vw;
  height: 5vw;
}

.button001 {
  background-color: transparent;
  border: 1px solid transparent;
  width: 45px;
  height: 42px;
}

.hide001 {
  border: none;
  outline: none;
}
<div class="position001">
  <div id="board001">
    <button class="hide001" onclick="incorrect001()">
                    <img src="https://stefan.admark.co.uk/jimny.jpg" width="90%" />
                </button>
    <div class="block001">
      <div id="disappear001">
        <button class="button001" onclick="correct001()"></button>
      </div>
    </div>
  </div>
</div>

您应该将蓝点和红圈放在 div 元素下。然后让 div 的位置为 relative,点和圆的位置为 absolute 然后你可以定位 div 以便同时定位红色圆圈和蓝点。他们将永远在同一个区域,彼此之上。

这是因为绝对位置将使一个元素定位在0, 0,而不管那里是否有另一个元素,甚至100个元素。但是因为如果元素在相对定位的元素下可以修改绝对位置,我们可以利用它轻松定位点和圆,并将它们放在彼此之上。

此处的图形演示:https://css-tricks.com/how-to-stack-elements-in-css/