变换:使用视口单位缩放

时间:2018-09-23 16:05:36

标签: css transform viewport-units

我想使用一个变换:缩放比例,其中我的宽度更改为80vw,我的高度为自动。这就是我想要的= transform: scale(80vw, auto);。不幸的是,这行不通。还有另一种方法来获得这种效果。最好不要使用javascript。

2 个答案:

答案 0 :(得分:0)

transform Scale()不使用单位。它更像是一个比率,所以scaleX(0.5)会将div缩放到一半,依此类推。

.normal{
 background: red;
 }
 .scaled{
  width:100vw;
  transform:scaleX(0.8);
  background:green;
  }
<div class="normal">
  normal
</div>
<div class="scaled">
  scaled
</div>

答案 1 :(得分:0)

var range = 1 / 400;
var vw = range * Math.min(window.innerWidth, window.innerHeight);

document.documentElement.style.setProperty('--vw-scale', `${vw}`);

window.addEventListener('resize', () => {
  document.documentElement.style.setProperty('--vw-scale', `${range * Math.min(window.innerWidth, window.innerHeight)}`);
});
.scale-element {
  width: 400px;
  transform: scale(var(--vw-scale));
  transform-origin: left top;
}

h1 {
  font-size: 25px;
}
<div class="scale-element">
  <h1>Test title</h1>
  <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sed, et. Deserunt officiis provident quod perferendis dolore dolores enim sint veniam ea odio ratione, repudiandae distinctio, aliquid possimus commodi cupiditate voluptas!
  </p>
</div>

即使不直接使用 calc 函数,它也可以接近它。 对于测试和调整屏幕大小,您应该在整页选项中查看它。

相关问题