美文网首页
「CSS」让页面自动根据显示区域大小按比例居中缩放

「CSS」让页面自动根据显示区域大小按比例居中缩放

作者: Frost_ZX | 来源:发表于2020-07-24 19:13 被阅读0次

示例 HTML

将自动缩放的内容放置于 <div class="main"></div> 内部,且使用 rem 单位。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自动缩放</title>
    <link rel="stylesheet" href="scale.css">
</head>
<body>
    <div class="main">
        <p>按比例缩放</p>
    </div>
</body>
</html>

示例 CSS

文件名:scale.css

@charset "utf-8";

* {
    margin: 0;
    padding: 0;
    outline: none;
}

/* 媒体查询 */
/* 以高度为准 */
@media screen and (min-aspect-ratio: 36 / 64) {
    html {
        font-size: calc(100vh / 40) !important;
    }
}
/* 以宽度为准 */
@media screen and (max-aspect-ratio: 36 / 64) {
    html {
        font-size: calc(100vw / 22.5) !important;
    }
}

/* 根元素 */
html {
    font-size: 16px;
}

/* 自动缩放的内容所在的 DIV */
.main {
    /* 页面居中 */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* 设定高度 & 宽度 */
    height: 40rem;
    width: 22.5rem;
    /* 背景颜色 */
    background-color: #2196F3;
}

/* 示例文本 */
.main > p {
    padding-top: 16rem;
    text-align: center;
    font-size: 2rem;
    color: #FFF;
}

操作步骤

  1. 根据需要设定页面比例

例如:宽:高 = 36:64

  1. 在 CSS 中设置媒体查询,把“页面比例”填入到对应的地方

例如:36 / 64

/* 以高度为准 */
@media screen and (min-aspect-ratio: 36 / 64) {
}
/* 以宽度为准 */
@media screen and (max-aspect-ratio: 36 / 64) {
}
  1. 在 CSS 中将根元素的 font-size 设为 16px
html {
    font-size: 16px;
}
  1. 根据 16px = 1rem 计算出页面默认的高度和宽度(单位:rem),并在 CSS 中设置

例如:默认高度 640px,宽度 360px;则高度设为 40rem,宽度设为 22.5rem

.main {
    height: 40rem;
    width: 22.5rem;
}
  1. 在 CSS 中将数值分别写入到 第 2 步 设置的媒体查询中对应的地方

“数值”是在 第 3 步 中计算得到的高度和宽度值(不带单位)
例如:calc(100vh / 40)calc(100vw / 22.5)

/* 以高度为准 */
@media screen and (min-aspect-ratio: 36 / 64) {
    html {
        font-size: calc(100vh / 40) !important;
    }
}
/* 以宽度为准 */
@media screen and (max-aspect-ratio: 36 / 64) {
    html {
        font-size: calc(100vw / 22.5) !important;
    }
}

效果

效果图

相关文章

网友评论

      本文标题:「CSS」让页面自动根据显示区域大小按比例居中缩放

      本文链接:https://www.haomeiwen.com/subject/bcjslktx.html