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

示例 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相应的技术进行归类、整理、说明,没有特别详细的技术要点说...
    Joel_zh阅读 931评论 0 1
  • 本文目录 1.什么是 BFC机制? 2.讲一讲用css绘制三角形的实现过程 3.link[http://3.lin...
    前端辉羽阅读 417评论 0 14
  • 前言 如今屏幕分辨率的范围已经从320px(iPhone)涵盖到2560px(大显示器)或者更高了。用户不单单在桌...
    Sachie阅读 10,793评论 2 8
  • 一、静态布局(Static Layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位。 1、布...
    阿良__阅读 945评论 0 7
  • 1.关于自适应布局的一些基本概念 px (pixel):像素,是屏幕上显示数据的最基本的点,表示相对大小。不同分辨...
    jluemmmm阅读 16,896评论 0 6