[移动端] “viewport“ content=“width=device-width, initial-scale=1.0“ 什么意思

布局视口, 代码如下

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    body,
    html {
      margin: 0;
      padding: 0;
    }

    .box {
      width: 200px;
      height: 200px;
      background-color: pink;
    }
  </style>
</head>

<body>
  <div class="box"></div>
</body>

</html>

怎么换成移动端就这么小了呢?

因为默认视口是980px,这个盒子相对980等比缩小就变成这样了

那怎么办?加参数!!

假如我的视口是400px

 <meta name="viewport" content="width=400px ">

就会得到以下情况

 没错,占了一半!!

但是总不能写死这个宽度,为了让页面显示完整,可以让视口宽度等于设备宽度

<meta name="viewport" content="width=device-width, initial-scale=1.0"> 

  • width=device-width 表示网页的宽度应该等于设备的宽度,这样可以确保网页在不同设备上以正确的比例显示,不会出现水平滚动条。
  • initial-scale=1.0 表示网页的初始缩放比例为1.0,也就是默认大小,不进行缩放。

 如果你不想别人放大,你可以设置

  <meta name="viewport" content="width=200px, initial-scale=1.0,user-scalable=no">

确保万一 ,最小最大值都设置1

  <meta name="viewport" content="width=200px, initial-scale=1.0,

  user-scalable=no, maxmun-scale=1.0,minmun-scale=1.0">

 可参考京东

如何自适应

上面只是等比例放小而已,有没有根据不同屏幕大小来放大缩小

方案一:百分比适配

因为不同属性的百分比值相对的可能是不同参照物, 所以百分比在移动端适配中使用是非常少的;
 

方案二:rem+动态的font-size值

只要考虑2件事情

问题一: 针对不同的屏幕,设置html不同的font-size
问题二: 将原来要设置的尺寸,转化成rem单位

媒体查询

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=00px, initial-scale=1.0,
  user-scalable=no, maxmun-scale=1.0,minmun-scale=1.0">

  <title>Document</title>
  <style>
    @media screen and (max-width:320px) {
      html {
        font-size: 7px;
      }
    }

    @media screen and (min-width:375px) {
      html {
        font-size: 16px;
      }
    }

    @media screen and (min-width:426px) {
      html {
        font-size: 20px;
      }
    }

    body,
    html {
      margin: 0;
      padding: 0;
    }

    .box {
      width: 15rem;
      height: 15rem;
      background-color: pink;
    }
  </style>
</head>

<body>
  <div class="box"></div>
</body>

</html>

 缺点如下

1.我们需要针对不同的屏幕编写大量的媒体查询

2,如果动态改变尺寸,不会实时的进行更新,而是大于某个范围才更新

方案二

 

    //获取html元素
    let html = document.documentElement;
    function setREM() {
      //重新计算html-px值
      const htmlFontSize = html.clientWidth / 10;
      //重新赋值htmlpx值
      html.style.fontSize = htmlFontSize + 'px'
    }
    //上来就初始化启动一次
    setREM()
    //监听大小重新启动
    window.addEventListener('resize', setREM)

 方案三:github库

https://github.com/amfe/lib-flexible/tree/2.0

方案二:vw

方案四:flex

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/579910.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“无媒体,不活动”,这句话怎么理解?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 “无媒体&#xff0c;不活动”通常指的是在现代社会中&#xff0c;媒体对于各种活动&#xff0c;尤其是公共活动和事件的推广、宣传和影响力是至关重要的。它强调了媒体在塑造公众意识、…

通往AGI路上,DPU将如何构建生成式AI时代的坚实算力基石?

4月19日&#xff0c;在以“重构世界 奔赴未来”为主题的2024中国生成式AI大会上&#xff0c;中科驭数作为DPU新型算力基础设施代表&#xff0c;受邀出席了中国智算中心创新论坛&#xff0c;发表了题为《以网络为中心的AI算力底座构建之路》主题演讲&#xff0c;勾勒出在通往AGI…

Python_AI库 Pandas的数据结构及基本操作

Python_AI库 Pandas的数据结构及基本操作 本文默认读者具备以下技能&#xff1a; 熟悉python基础知识&#xff0c;vscode或其它编辑工具 熟悉表格文件的基本操作 具备自主扩展学习能力 本文篇幅较长&#xff0c;但比较重要&#xff0c;希望读者可以认真看完并实例运行。 Pa…

不可重复读,幻读和脏读

不可重复读一般在读未提交&#xff0c;读已提交这两种隔离级别出现&#xff0c;第一次读和第二次读的数据不一致。 幻读一般在读未提交&#xff0c;读已提交&#xff0c;可重复读出现&#xff0c;原因是第一个事务执行时&#xff0c;第二个事务完成了提交&#xff0c;在第一个…

Xilinx 7系列MMCM/PLL的使用模型

本文展示了MMCM的一些使用模型&#xff08;同样适用于PLL&#xff09;&#xff0c;如时钟网络去偏斜、具有内部反馈的MMCM和零延迟缓冲区等。 1、时钟网络去偏斜&#xff08;Clock Network Deskew&#xff09; MMCM的主要用途之一是用于时钟网络去偏斜。图3-11和图3-12展示了…

SpringCloud中网关-详解、案例(代码)

简介&#xff1a;在Spring Cloud中&#xff0c;网关的角色是非常重要的&#xff0c;它负责整个系统的入口流量&#xff0c;并且可以处理路由、过滤、协议转换等操作 目录 1、网关的技术实现 1.1 网关功能 1.2 网关的形式 2、网关实现步骤 2.1 添加相关依赖 2.2 创建此mod…

获取1年免费的SSL证书

之所以写这篇帖子是因为一直使用的阿里云和腾讯云免费的ssl证书由一年有效期相继改为了3个月&#xff0c;3个月换一次证书想太过麻烦了&#xff0c;还是需要一年有效期的证书更为适合 有两个站点推荐:(本次以FreeSSL为例) .JoySSL一个提供免费HTTPS证书申请的网站 FreeSSL.c…

156.25MHz的差分晶体振荡器SG3225VEN

数字经济正焕发出勃勃生机,云计算,大数据,5G和人工智能等新技术的发展给行业带来了新的机遇。无论是在数据中心内部还是在数据中心之间,提供低成本,高速的100/200/400G小型化解决方案都是光模块的发展需求。为了使DSP稳定工作&#xff0c;需要一个小型的封装晶体振荡器来提供参…

嵌入式学习63-C++

知识零碎&#xff1a; newmalloc friend 友元函数 …

面向对象练习题【从零开始学Java】

Java零基础系列课程-JavaSE基础篇 Lecture&#xff1a;波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。…

nginx修改http为https

Linux运维工具-ywtool 目录 一. 获取 SSL 证书1.安装openssl2.自签名证书 二.安装SSL证书三.配置Nginx支持HTTPS四.重启nginx 一. 获取 SSL 证书 SSL/TLS证书是用来验证服务器身份和提供一个安全的连接通道的 获取SSL/TLS证书有几种方法 1.购买域名,购买SSL证书 2.自签名证书…

[linux网络编程]UDP协议和TCP协议的使用

目录 看以下内容前&#xff0c;你要先了解main函数带参数有什么用、 了解socket的相关函数接口 如果不了解socket的相关函数接口请先看我这篇文章 main函数带参数有什么用 UDP udp_server 1.生成socket文件描述符 2.填充sockaddr_in信息 3.bind 4.发&#xff08;收&…

序列化与反序列化

【一】序列化跟反序列化 # api接口开发&#xff0c;最核心最常见的一个过程就是序列化&#xff0c;所谓序列化就是把数据转换格式&#xff0c;序列化可以分两个阶段&#xff1a;【序列化值的是转换数据格式&#xff1a;序列化&#xff0c;返序列化】# 序列化&#xff1a; 把我们…

使用frp实现内网穿透教程

文章目录 简介frp 是什么&#xff1f;为什么选择 frp&#xff1f; 概念工作原理代理类型 内网穿透教程服务端安装和配置本地Windows&#xff08;客户端&#xff09;安装和配置本地Linux虚拟机&#xff08;客户端&#xff09;安装和配置使用 systemd 管理服务端注意事项 简介 f…

openapi3和openapi2的注解区别

最近在该项目&#xff0c;发现openapi3版本相比起2版本已经发生了很大的变化&#xff0c;原来的注解全部失效了&#xff0c;取而代之的是新的注解

基于Transformer深度学习的翻译模型(英->中)源码系统

第一步&#xff1a;Transformer介绍 Transformer是一种基于注意力机制的序列到序列模型&#xff0c;它在机器翻译任务中表现出色并逐渐成为自然语言处理领域的主流模型。Transformer模型的核心思想是使用自注意力机制&#xff08;self-attention&#xff09;来捕捉输入序列中各…

【Java系列】给大家出一些JavaSE基础第七天的内容案例 , 让大家更好的理解与掌握

面向对象 好的&#xff0c;以下是一些Java面向对象基础的案例&#xff1a; 案例一 1. 定义一个学生类Student&#xff0c;包含姓名、年龄、性别等属性&#xff0c;以及学习、吃饭等行为。然后创建一个学生对象&#xff0c;调用其行为方法。 public class Student {private St…

Linux驱动开发:深入理解I2C时序

目录标题 I2C简介I2C时序关键点Linux内核中的I2C时序处理I2C适配器I2C算法I2C核心 代码示例&#xff1a;I2C设备访问调试I2C时序问题 在Linux驱动开发中&#xff0c;理解和正确处理I2C时序对于确保I2C设备正常工作至关重要。本文将详细介绍I2C通信协议的时序特征&#xff0c;并…

西门子程序专业备份软件BUDdy for S7和使用说明

西门子程序专业备份软件BUDdy for S7和使用说明

基于Springboot的web后端开发三层架构上手实操

引言 我们拿到了xml文件 我们要将将xml文件中的数据加载并解析 完成数据的处理 并且返回给前端页面(result格式) 1.将xml文件放在resources目录下 xml是我们需要解析的文件 查看xml文件 2.在springboot中引入dom4j依赖 解析xml需要在springboot中引入dom4j依赖 这边我们…
最新文章