【发布时间】:2021-08-28 05:31:45
【问题描述】:
我正在开发我的网站的移动版本。我将一个元素放置在另一个元素下方(红色下方蓝色)。
这些元素的形状为:clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 100% 62%, 50% 85%, 0% 62%)。
他们还得到了一个覆盖,其中有一个文本定位在里面。我的目标是为每个显示分辨率修复右下角的这个文本块。
它在每台设备上的外观:
当我更改视口宽度时它的外观:
首先我写了几个@media (...) 查询来定位文本块。
我注意到我必须为几乎每个设备单独编写查询,因为所需的文本块的顶部间距和角度总是在变化。
所以我尝试计算top 所需的角度和所需的值。我在stackoverflow上找到了一个看起来像这样的方法:
function calculate() {
const deviceWidth = screen.width;
const viewportWidth = window.innerWidth;
const currentRatio = viewportWidth / deviceWidth;
const angle = currentRatio * ...; // I don't know
const top = ...; // I don't know
document.querySelector('.text-container').style.transform = `rotate(${angle}deg)`;
document.querySelector('.text-container').style.top = `${top}vh`;
}
calculate();
window.addEventListener('resize', calculate);
我很确定,这种方法是一个有用的基础,但我不知道如何继续。
谢谢。
【问题讨论】:
标签: javascript css sass responsive-design