移动Web开发入门(一) -- 像素、媒体查询、em、rem

2023-11-10

一、移动Web开发

移动web开发是指针对手机、平板电脑等移动设备的web开发。

二、基本概念

分辨率

分辨率(resolution,又称解析度)指显示器所能显示的像素的多少,显示器可显示的像素越多,画面就越精细。
在这里插入图片描述

物理像素

物理像素也称设备像素是屏幕的最小物理单位;

物理像素并不一定是一个小正方形区块,也没有标准的宽高;

只是一个由由红、蓝、绿三原色组成的一个“点”而已;

图片来源于网络

“2532 x 1170 分辨率”指的就是物理像素,表示屏幕水平有1170个物理像素点,垂直有2532个物理像素点。

CSS像素

CSS像素又称为虚拟像素、设备独立像素或逻辑像素也就是web开发中使用的像素(px)。

物理像素和CSS像素的关系

物理像素是屏幕显示页面效果的最小单位;

CSS像素是web开发中使用的像素;

在不同分辨率的屏幕下,由多个物理像素对应一个CSS像素,实现在不同分辨率的屏幕下显示相同的页面效果。

设备像素比(dpr)

设备像素比 = 物理像素 / CSS像素

图片来源于网络
dpr = 2 意味着一个CSS像素需要用2*2个物理像素来绘制;

获取dpr

使用window.devicePixelRatio属性可获取dpr
在这里插入图片描述

注意

放大和缩小改变的是CSS像素;

PPI 、 DPI

ppi (pixels per inch):图像的采样率 (在图像中,每英寸所包含的像素数目);

dpi (dots per inch): 打印分辨率 (每英寸所能打印的点数,即打印精度);

都表示屏幕每英寸所拥有的像素数量;
图片来源于网络

PPI计算公式: 对角线像素个数 / 屏幕尺寸

在这里插入图片描述

视口(viewport)

viewport 是用户网页的可视区域。

手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

设置 Viewport

使用meta 标签设置Viewport;

    <!-- name="viewport" 设置 viewport-->
    <!-- width=device-width 告诉浏览器将视口宽度设置为设备宽度 -->
    <!-- initial-scale=1.0 初始缩放比例 -->
    <!-- content="width=device-width, initial-scale=1.0" 兼容写法 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

除了上述的设置,content还可以设置maximum-scale、minimum-scale、user-scalable。

  • maximum-scale:(0.5) 允许用户缩放到的最大比例;
  • minimum-scale:(5) 允许用户缩放到的最小比例;
  • user-scalable:(yes/on) 用户是否可以手动缩放;

注:user-scalable很多浏览器不支持设置user-scalable

获取视口宽度

通过document.documentElement.clientWidth 属性或 window.innerWidth属性可以获取当前视口宽度,为了保证兼容性将两种方法都写document.documentElement.clientWidth || window.innerWidth
在这里插入图片描述

三、媒体查询

通过查询当前属于哪种设备, 让网页能够在不同的设备下正常渲染显示。

媒体类型

  • all (所有的设备);
  • print (打印设备);
  • screen (电脑屏幕,平板电脑,智能手机);
  • speech 屏幕阅读器等发声设备中加载;
     	
     	/*  and 表示 && screen 和 (min-width: 900px) 都满足时样式才有效*/
        @media screen and (min-width: 900px){
            body{
                background-color: #fff;
            }
        }

媒体查询的逻辑关系

  • and(&&);
  • (||);
  • not (!);
  • only (在不支持媒体查询的浏览器中不添加样式);
   @media screen and (min-width: 900px),screen and (max-width: 1200px){
            body{
                background-color: #fff;
            }
        }

注意:或后面要写媒体类型,没写媒体类型默认值为 all

媒体特征表达式

  • width 输出设备中的页面可见区域宽度;
  • max-width 输出设备中的页面最大可见区域宽度;
  • min-width 输出设备中的页面最小可见区域宽度;
  • -webkit-device-pixel-ratio输出设备的屏幕可见宽度与高度的比率;
  • -webkit-min-device-pixel-ratio 输出设备的屏幕可见宽度与高度的最小比率;
  • -webkit-max-device-pixel-ratio 输出设备的屏幕可见宽度与高度的最大比率;
  • orientation:portrait(竖屏) | landscape(横屏);
       @media (-webkit-device-pixel-ratio:2){
            body{
                background-color: #fff;
            }
        }

常用媒体尺寸

PC优先

	@media screen and (max-width:1200px){  
	}
	@media screen and (max-width:992px){ 
	}
	@media screen and (max-width:768px) {
	}
	@media screen and (max-width:576px){ 
	}

移动优先

@media (min-width: 576px) {
}
@media (min-width: 768px) {
}
@media (min-width: 992px) {
}
@media (min-width: 1200px) {

}

四、移动端常用单位

px

px绝对长度单位,也就是我们实际开发中最常用的单位。

em

em是相对长度单位,相对于自身的font-size属性进行计算

如果当前元素未设置font-size属性,则从父元素上继承fontsize属性。

	<div>
        <p>em</p>
    </div>
        html{
            font-size: 14px;
        }
        div{
            font-size: 15px;
        }
        p{
            font-size: 20px;
            line-height: 1em;
        }

1em * 20px = 20px
在这里插入图片描述

rem

rem是CSS3新增的一个相对长度单位,相对于根元素(html)的font-size进行计算。

	<div>
        <p>rem</p>
    </div>
        html{
            font-size: 14px;
        }
        div{
            font-size: 15px;
        }
        p{
            font-size: 20px;
            line-height: 1rem;
        }

1rem * 14px = 14px
在这里插入图片描述

vw/vh

vw表示视口的宽度,1vw表示视口宽度的1%;

vh表示视口的高度,1vh表示视口高度的1%;

兼容性不好,不常用;

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

移动Web开发入门(一) -- 像素、媒体查询、em、rem 的相关文章

  • Hibernate对原生sql处理及结果集报错:Expected type: java.lang.Integer, actual value: java.math.BigInteger

    基于Hibernate执行sql查询方法 映射实体对象报错Expected type java lang Integer actual value java math BigInteger 实体类ChannelTree package co
  • 面试题-6

    1 查找根目录下所有的隐藏目录 root chengyinwu find type d name 2 查找根目录下以rpm结尾的所有文件 root yinwucheng find type f name rpm 3 查找 data bak目
  • CTFshow单身杯 部分wp

    前言 不会吧不会吧不会有人520521不约会打比赛吧 文章目录 1 单身杯热身题目 2 misc签到 3 没大没小的串串 4 任性老板 5 蛤壳雪茄 1 6 蛤壳雪茄 2 7 The Dancing Men 8 伪装成RSA的MUSC 9
  • notion搭建博客方法一:notion简单操作说明

    简介 notion搭建博客的方法有很多种 今天介绍最基础的 原汁原味的方法 步骤 注册一个notion账号 使用邮箱就可以很快注册 免费账号除了附件大小 共享用户数等有部分限制其他基本都不影响使用 新建一个Page 输入 然后table I
  • Java课题笔记~ IoC 控制反转

    二 IoC 控制反转 控制反转 IoC Inversion of Control 是一个概念 是一种思想 指将传统上由程序代码直接操控的对象调用权交给容器 通过容器来实现对象的 装配和管理 控制反转就是对对象控制权的转移 从程序代码本身反转
  • springboot 连接redis

    安装文章https blog csdn net yeluo vinager article details 103680059 问题 F soft Redis x64 3 2 100 gt redis server exe service
  • muduo异步日志总结

    muduo中的日志是指诊断日志 即通常用于故障诊断和追踪的日志 便于服务器发生故障时的线索追踪 是网络库中很重要的一个部分 在总结异步日志之前 首先应该清楚什么是异步日志 与同步日志又有什么区别 同步日志与异步日志 同步日志 网络IO线程或
  • iPhone6可能取代公交卡和门禁卡

    10月28日 苹果公司正在积极寻求合作 以增加iPhone 6和iPhone 6 Plus内置的NFC芯片的用途 该芯片目前只能通过Apple Pay支付服务使用 因为苹果并没有向第三方开放API 应用编程接口 苹果正在与潜在合作伙伴展开沟
  • 流水线上的大专生,成功转行高薪IT岗,历程太心酸

    前言 我来自山东滨州 98年的 毕业于某职业学院 一名大专生 专业是机电一体化技术 对编程的认知度为0 和大多数人一样 一个月2500元 浑浑噩噩的工厂生活 大学时光 基本都是在睡觉 上网 逃课 早退中度过 偶尔会有一丝丝危机感 但是没一会
  • 华为OD机试真题-查找单入口空闲区域【2023.Q1】

    题目描述 给定一个 m xn 的矩阵 由若干字符 和0构成 X表示该处已被占据 0 表示该处空闲 请找到最大的单入口空闲区域 解释 空闲区域是由连通的O组成的区域 位于边界的0可以构成入口 单入口空闲区域即有目只有一个位于边界的0作为入口的
  • Linux系统中基于NGINX的代理缓存配置指南

    作为一名专业的爬虫程序员 你一定知道代理缓存在加速网站响应速度方面的重要性 而使用NGINX作为代理缓存服务器 能够极大地提高性能和效率 本文将为你分享Linux系统中基于NGINX的代理缓存配置指南 提供实用的解决方案 助你解决在爬虫过程
  • idea的自定义模板(文件代码模板和文件注释说明文档)

    1 idea自定义文件代码模板 1 步骤 File Settings Editor File and Code Templates 复制 起个名字 name 例如叫 HTML File View 把需要的代码放到合适位置 就做好了文件代码模
  • ES6必须知道的知识点--思维导图

    学习过程中每个人有每个人不同的习惯 我喜欢学完一个知识点再用脑图整理出知识点 这样回顾就有思路 看的顺序是从右上角开始顺时针 下面的图片是ES6要掌握的知识点 如果是要从事Vue React 这些都掌握了你就一只jio 进门了 希望对你有帮
  • 如何存matlab,[转载]如何在Matlab中保存文件及导入文件

    一 保存文件 1 保存整个工作区 File gt Save Workspace as 一个 mat文件 2 保存工作区的变量 在左工作区右击变量名 create M File 3 save命令 1 save 将工作区中的所有变量保存在当前工
  • C++ 从 HDF5 文件读取 Keras 神经网络模型和参数

    C 从 HDF5 文件读取 Keras 神经网络模型和参数 一 背景与应用 二 Keras 保存的 HDF5 参数 Weight 文件分析 二 遍历起点 1 工程需要包含的头文件和库文件 2 打开文件 3 打开 Root Group 并输出
  • uniapp图片上传h5与小程序的差别

    uni app的uni chooseImage图片上传的时候在h5跟小程序的一个差异 upload const token uni getStorageSync token uni chooseImage count 1 最多上传几张图片

随机推荐