前端开发-视口

视口概述

  • 视口简单理解就是可视区域的大小我们称之为视口
  • 在 PC 端,视口大小就是浏览器窗口可视区域的大小
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板文件</title>
    <style>
    </style>
</head>
<body>
<script>
    console.log(window.innerWidth, window.innerHeight);
</script>
</body>
</html>

image-20211212182854564

  • 在移动端, 视口大小并不等于 窗口 大小, 移动端视口宽度被人为定义为了 980

image-20211212182955034

那么在移动端为什么是 980 而不是其他的值呢,因为过去网页的版心都是 980,乔老爷子为了能够让网页在移动端完美的展示, 所以将 iOS 手机视口的大小定义为了 980,后来谷歌也觉得这是一个非常牛 X 的方案, 所以 Android 手机的视口也定义为了 980。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板文件</title>
    <style>
        div {
            margin: 0 auto;
        }

        .header-in {
            width: 980px;
            height: 100px;
            background: red;
        }

        .main-in {
            width: 980px;
            height: 300px;
            background: green;
        }

        .footer-in {
            width: 980px;
            height: 100px;
            background: blue;
        }
    </style>
</head>
<body>
<div class="header">
    <div class="header-in"></div>
</div>
<div class="main">
    <div class="main-in"></div>
</div>
<div class="footer">
    <div class="footer-in"></div>
</div>
</body>
</html>

image-20211212185124152

image-20211212185207932

移动端自动将视口宽度设置为 980 带来的问题,虽然移动端自动将视口宽度设置为 980 之后让我们可以很完美的看到整个网页,但是由于移动端的物理尺寸(设备宽度)是远远小于视口宽度的,所以为了能够在较小的范围内看到视口中所有的内容, 那么就必须将内容缩小,(和前面文章当中讲解的 Canvas 时讲解的 viewbox 一样, 近大远小原理)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板文件</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>
<body>
<div></div>
</body>
</html>

image-20211212185523186

image-20211212185556887

如何保证在移动端不自动缩放网页的尺寸,通过 meta 设置视口大小:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • width=device-width:设置视口宽度等于设备的宽度
  • initial-scale=1.0:初始缩放比例, 1 不缩放
  • maximum-scale:允许用户缩放到的最大比例
  • minimum-scale:允许用户缩放到的最小比例
  • user-scalable:用户是否可以手动缩放
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模板文件</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>
<body>
<div></div>
</body>
</html>

image-20211212185523186

image-20211212185814733

posted @   BNTang  阅读(131)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示