移动端适配方案

2023-11-15

总共的方法:

1)通过媒体查询的方式

2)以天猫首页为代表的 flex 弹性布局

3)以淘宝首页为代表的 rem+viewport缩放

4)rem 方式

1.基本知识点:

物理像素:硬件上屏幕上横向和纵向有多少个像素点。

逻辑像素dp:程序认为屏幕上横向和纵向有多少个像素点。

设备像素比(device pixel ratio ):设备像素比(dpr) = 物理像素 / 设备独立像素

1px = (dpr)的平方*dp

2.Viewport(视口)

layout viewport布局视口如果把移动设备上浏览器的可视区域设为viewport的话,某些网站就会因为viewport太窄而显示错乱,所以这些浏览器就决定默认情况下把viewport设为一个较宽的值,比如980px,这样的话即使是那些为桌面设计的网站也能在移动浏览器上正常显示了。把这个浏览器默认的viewport叫做 layout viewport

document.documentElement.clientWidth/Height返回布局视口的尺寸

visual viewport视觉视口浏览器可视区域的大小。window.innerWidth/Height返回视觉视口的尺寸

ideal viewport理想视口完美适配移动设备的viewport,首先不需要用户缩放和横向滚动条就能正常的查看网站的所有内容;第二,显示的文字的大小是合适,比如一段14px大小的文字,不会因为在一个高密度像素的屏幕里显示得太小而无法看清,理想的情况应该是无论是在何种密度屏幕,何种分辨率下,显示出来的大小都是差不多的。不只是文字,

设置告诉浏览器使用它的理想视口:

<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable =no">

3.适配方案

一.适配方案讲解

1)视口要如下设置

<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">

initial-scale ----- 初始的缩放比例

minimum-scale ----- 允许用户缩放到的最小比例

maximum-scale ----- 允许用户缩放到的最大比例

2)先拿设计稿竖着的横向分辨率除以100得到body元素的宽度

如果设计稿基于iphone6,横向分辨率为750,body的width为750 / 100 = 7.5rem

3)通过以下代码设置html的font-size:

document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px';

5)布局时,设计图标注的尺寸除以100得到css中的尺寸

二,单位讲解

px:相对于显示器屏幕分辨率而言的。

em:相对于父级字体大小

任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

rem:相对于根元素的字体大小(html)

vh:等于viewport高度的1/100。例如,如果浏览器的高是900px,1vh求得的值为9px。

vw:如果显示窗口宽度为750px,1vw求得的值为7.5px。

二.通过媒体查询

它主要是通过查询设备的宽度来执行不同的 css 代码,最终达到界面的配置。

1》媒体查询的引入

1)在屏幕最大是600px的时候加载“smallscreen.css”

<link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css" />

2)也就是在特定屏幕下加载style.css

<style type="text/css" media="screen and (max-width: 600px)"> 
    @import url("css/style.css");
  </style>

3)

@media screen and (max-width: 600px) {
    选择器 {
      属性:属性值;
    }
  }

width  ----  viewport的宽度(width=device-width意思是:宽度等于设备宽度)

initial-scale ----- 初始的缩放比例

minimum-scale ----- 允许用户缩放到的最小比例

maximum-scale ----- 允许用户缩放到的最大比例

user-scalable ----- 用户是否可以手动缩放

2》缺点:

1)代码量比较大,维护不方便

2)为了兼顾大屏幕或高清设备,会造成其他设备资源浪费,特别是加载图片资源

3)为了兼顾移动端和PC端各自响应式的展示效果,难免会损失各自特有的交互方式

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动端适配方案 的相关文章

  • Unix_Linux_AIX_常用命令总结

    目录 Java常用知识总结 前言 常用链接 Shell 自动化 处理相关 需要使用到的命令 编码思想 编码规范 shell脚本 循环处理 1 循环小火车 2 循环cup性能 各种命令 0 cd 1 uname 2 ifconfig 3 wh
  • PHP入门-PHP OOP类的继承(构造函数;public、protected和private;self、parent、final )

    0x00 写在前面 从零学习php 最终目的实现代码审计入门 软件采用sublime text 环境使用phpstudy搭建 需要有简单的html基础和php基础 跟随流沙前辈视频学习记录 OOP编程即面对对象编程 本篇学习面向对象中的继承
  • STM32(一)STM32简介

    一 什么是STM32 意法半导体 ST 集团于1988年6月成立 是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成 1998年5月 SGS THOMSON Microelectronics将公司名称改为意法半导体有限公司
  • Linux下的硬件驱动——USB设备(上)(驱动配置部分)

    USB设备越来越多 而Linux在硬件配置上仍然没有做到完全即插即用 对于Linux怎样配置和使用他们 也越来越成为困扰我们的一大问题 本文着力从Linux系统下设备驱动的架构 去阐述怎样去使用和配置以及怎样编制USB设备驱动 对于一般用户
  • python程序基本格式

    缩进风格 恰当的空格 缩进问题 逻辑行首的空白 空格和制表符 用来决定逻辑行的缩进层次 从而用来决定语句的分组 语句从新行的第一列开始 缩进风格统一 每个缩进层次使用 单个制表符 或四个空格 IDE会自动将制表符设置成4个空格 Python
  • 软件测试过程

    目录 软件测试过程模型 计划和控制 测试计划 分析与设计 实现与执行 评估与报告 结束活动 标准的测试流程包括 计划与控制 分析与设计 实现与执行 评估与报告和结束活动 实际测试过程中分为 测试计划 测试方案 测试用例 测试执行 测试报告五
  • 用VS Code搞Qt6:编译源代码与基本配置

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • JAVA(Spring)学习笔记---->Scope(作用域)

    这篇文章笔者和大家来聊一聊Spring中的两个标签配置范围 即singleton和prototype 前者意味单例的 后者则是多例的 Scope取值 实例化个数 实例化时机 对象创建 对象运行 对象销毁 singleton 单例 饿汉式 1
  • 华为配置端口流量统计

    配置端口流量统计 方便我们检查端口流量使用情况 排除问题 进行优化管理 以下是端口流量 统计的配置方法 步骤如下 a 先定义acl 匹配ping的源 目的IP地址 x和y是您这边测试的地址 ACL的编号自己随便定义 必须是3000以上 具体
  • Selenium图片下载到本地的实例

    目录 一 实例 指定网站 下载到本地的图片 今天与大家分享一个小案例 简单来说就是通过Selenium爬取京东 html页面的商品信息 图片 一 实例 指定网站 下载到本地的图片 效果展示 下载到本地图片 最后的通过Selenium下载到本
  • docker--扩展学习-理论--01

    docker 扩展学习 理论 01 一 Docker的应用场景 Web 应用的自动化打包和发布 自动化测试和持续集成 发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的 OpenShift 或 Cloud Foun
  • 微信开发

    近期在做模板消息推送用户的时候 遇到了报错码40001 但这是腾讯的万能报错码 感觉什么都是这个码顶锅 其实access token并不一定是真的过期导致的 先放一个官方调试工具在这 微信公众平台接口调试工具 1 有可能access tok
  • Python第三方库——rdflib

    实验要求 使用Python的第三方库rdflib 执行核心代码 如操作RDF OWL 执行SPARQL语句 参考资料 rdflib及其使用方法 rdflib 5 0 0 实验过程 在PyCharm上安装第三方库 点击PyCharm左下方的T
  • 如何设计日志系统_如何快速搭建日志系统

    易哥 高级软件架构师 网络工程师 数据库工程师 注册电气工程师 我们开发的业务系统通常会提供给很多人使用 那在使用的过程中 日志系统变得非常重要 日志系统记录的用户行为有以下的作用 从系统用户角度看 它展示了用户自身的操作历史和具体对象的变
  • C++ 虚函数 (virtual function) 介绍

    文章目录 1 什么是虚函数 2 虚函数与非虚函数的区别 3 派生类中的虚函数 4 构造 析构函数可以是虚函数吗 5 纯虚函数 5 1 纯虚函数的定义 5 1 纯虚函数的特定 1 什么是虚函数 C 对象有三大特性 继承 封装 多态 虚函数就是
  • 深入了解Bear Necessities Hackathon黑客松的优胜者们

    生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者 不论是线上虚拟的还是现场的 然而 很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力 本次黑客松共有755人参与 共提
  • 下载MedShapeNet

    iTomxy data medshapenet 在 1 可下载 MedShapeNet 数据集 在其 Download 页 可选直接 GUI 下 或者先下一个索引文件 txt 的 每行一条文件的下载链接 然后用 wget 逐条下 这里放下
  • IDEA、DataGrip、WebStorm....激活时间2100,激活码激活

    DataGrip 1 下载jar包 JetbrainsCrack 3 1 release enc jar 2 到软件安装的 bin 目录 把这个jar包粘贴进去 image png 3 编辑文件中参数 datagrip exe vmopti
  • 如何用函数指针调用函数

    先举一个用函数指针调用函数的例子 int Func int x 声明一个函数 int p int x 定义一个函数指针 p Func 将Func函数的首地址赋给指针变量p int Func int x 这一句是声明一个函数 是我们要被函数指
  • java通过idea进行远程调试

    1 基于SpringBoot使用IDEA工具 在pom xml中配置 里配置jvmArguments参数 Xdebug Xrunjdwp transport dt socket address 8008 server y suspend n

随机推荐

  • wsl arch linux图形,WSL Arch Linux简单开箱

    arch是一个非常好的Linux发行版 使用起来可以说简单的不要不要的 新手安装时可能有点小小小的问题 现在微软商店上架了WSL arch 昨天简单刚装 第一步 打开商店搜索并下载安装 第二步 打开arch 应该默认root用户启动 我是这
  • AI编程时代,开发者路在何方?

    AI 正颠覆人们的想象 重塑各行各业 AI 技术改变编程范式 有效提升开发者效率 可能人人有机会成为 10倍程序员 在此发展趋势下 开发者不禁担心未来会不会被AI取代 随着 AI 编程时代来临 开发者需要掌握哪些能力来更好地成长 6月28日
  • MAVEN 的下载与配置(详细图解)

    一 maven的下载 二 解压压缩包与变量设置 1 创建本地仓库 创建文件夹如箭头所指 2 配置maven repo为本地仓库 点击conf文件夹 点击setting xml 在文档如图位置补充本地仓库的地址即maven repo文件夹的地
  • 如何快速掌握代币经济学

    如何研究加密世界里的Token 先看一组数据 截至2022年 市面上大约有6000种加密货币 或者更多 这对投资者来说当然是一个很大的机会 然而 在2021年 投资者在Crypto项目遇到欺诈 损失的金额120亿美元 因此 到底如何去表及里
  • Vue工程利用HBuild X打包APP打开一片空白的解决方式

    Vue工程利用HBuild X打包成APP时有时会出现一片空白的情况 这是由于Vue工程打包出来的静态文件路径出现问题造成的 解决方式 在工程下创建vue config js文件 在文件中写入 module exports publicPa
  • CUB200-2011鸟类细粒度数据集训练集和测试集划分python代码

    CUB200 2011数据集介绍 该数据集由加州理工学院再2010年提出的细粒度数据集 也是目前细粒度分类识别研究的基准图像数据集 该数据集共有11788张鸟类图像 包含200类鸟类子类 其中训练数据集有5994张图像 测试集有5794张图
  • Steam账号查询VAC封禁信息

    可以通过SteamID 账号名称来查询 VAC封禁信息 相关网址 1 SteamCN信誉平台 2
  • 一般游戏的反外挂保护方案

    所谓知己知彼方能百战不殆 要想减少或避免外挂对游戏的侵害 必须从根本上知晓外挂的原理 及其常用的技术手段 从而在技术手段上对其进行封堵 一 外挂的分类 外挂一般的分为2类 脱机式 和 内挂式 脱机式外挂的定义 完全脱离官方发布的客户端程序
  • SonarQube使用笔记

    SonarQube使用笔记 简介 SonarQube是一个用于管理代码质量的开放平台 可以快速的定位代码中潜在的或者明显的错误 目前支持java C C C Python PL SQL Cobol JavaScrip Groovy等二十几种
  • 在Linux上搭建sqli-labs

    1 先进入root权限 sudo su 然后输入账号密码 2 开启mysql mysql uroot p 3 改密码 MariaDB none gt SET password for root localhost password root
  • Python实战小游戏飞机大战详解

    大家还记得微信版 经典飞机大战 嘛 今天做的这款 打飞机 小游戏 画面诙谐 精致 完全复刻经典微信飞机大战哦 完全复刻 怎么 大家不信嘛 那跟着小编一起来看看吧 正文 一 环境安装 本文是写的游戏代码 基于Pygame的源码项目 这里是自己
  • Windows环境下Redis安装与配置的两种方式

    安装和配置Redis Redis的安装有两种安装形式 一种是安装包式 另一种是压缩包 注意 windows没有32位的 所以32位机器的朋友考虑换一下机器 一 安装包式 1 windows环境下的redis需要去github上获取 http
  • CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows

    CSWin Transformer A General Vision Transformer Backbone with Cross Shaped Windows 一 引言 二 方法实现 一 CSWin Transformer 二 体系结构
  • 检测SOTA!DEYO:YOLOv5+DETR成就地表最强目标检测器

    点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 后台回复 2D检测综述 获取鱼眼检测 实时检测 通用2D检测等近5年内所有综述 目标检测是计算机视觉中的一个重要课题 后处理
  • Python中的矩阵操作

    Numpy 通过观察Python的自有数据类型 我们可以发现Python原生并不提供多维数组的操作 那么为了处理矩阵 就需要使用第三方提供的相关的包 NumPy 是一个非常优秀的提供矩阵操作的包 NumPy的主要目标 就是提供多维数组 从而
  • html页面跳转的方法

    html页面跳转的方法 1 html中使用meta中跳转 通过meta可以设置跳转时间和页面 2 a标签直接跳转 a href http baidu com 百度一下 a 3 通过javascript中实现跳转 直接跳转window loc
  • python之微信公众号内容爬取一(亲测可用)

    import requests from lxml import etree headers User Agent Mozilla 5 0 Windows NT 10 0 Win64 x64 AppleWebKit 537 36 KHTML
  • 微信小程序实现数值监听(页面和组件属性)

    简介 目前文章主要介绍对页面属性值的监听以及组件属性值的监听 需要异页面监听数据 请跳转至另一个文章介绍 为什么需要监听属性值 当需要通过一个属性变化时候 需要计算相应的方法等 pc网站经常需要监听属性 那么小程序应该怎么去实现 实现方法
  • elementui的表格排序的组件之问题---条件改变样式消失

    这两天写了一个需求 就是当我改变时间的时候 排序功能消失 这我就想不是很简单吗 但是是我太单纯了 这个是一个后台 肯定会用到element的组件 然后果不其然用的就是element里面的表格排序组件 elementUI table 首先熟悉
  • 移动端适配方案

    总共的方法 1 通过媒体查询的方式 2 以天猫首页为代表的 flex 弹性布局 3 以淘宝首页为代表的 rem viewport缩放 4 rem 方式 1 基本知识点 物理像素 硬件上屏幕上横向和纵向有多少个像素点 逻辑像素dp 程序认为屏