前端网页或者pwa如何实现只横屏显示,设备竖着的时候依然保持横屏

103 阅读1分钟

开发的时候,就是以横屏的样式开发的,所以横屏的展示效果就是:

当设备竖着的时候,会进行缩放,展示效果不友好,所以需要设备竖着的时候,也横屏显示:

实现原理就是:使用css监听设备朝向

当设备竖着的时候,就让body旋转90度,并且宽高要进行缩放:

/* 竖屏 */
@media screen and (orientation: portrait) {
    body {
        transform: rotate(90deg) scale(1, 0.78);
    }
}

代码说明:

@media screen and (orientation: portrait) {
  /* 当设备方向为竖屏时,应用以下样式 */
  body {
    transform: rotate(90deg); /* 将 body 内容旋转 90 度 */
    transform-origin: left top; /* 设置旋转的基准点为左上角 */
    width: 100vh; /* 将宽度设置为视口高度的 100% */
    height: 100vw; /* 将高度设置为视口宽度的 100% */
    overflow-x: hidden; /* 隐藏水平滚动条 */
    position: absolute; /* 使用绝对定位,使 body 脱离文档流 */
    top: 100%; /* 将 body 向下移动 100% 的高度 */
    left: 0; /* 将 body 向左对齐 */
  }
}

scale说明:scale() - CSS:层叠样式表 | MDN