移动web学习总结

article/2025/10/10 11:28:48

最近学习了些移动web开发的基础知识,稍微做下记录总结:

  • Hello,移动web: https://www.imooc.com/learn/494

一、基础知识

1. 关于Pixel
  • px : CSS px,逻辑像素,浏览器使用的抽象单位
  • dp,pt: device independence pixel 物理像素:设备无关像素
  • dpr : devicePixelRatio 设备像素缩放比

计算公式: 1px = (dpr)2 * dp 一个CSS像素对iphone5相当于4个物理像素
在一维上,一个CSS 像素,相当于两个物理像素。

  • DPI:打印机每英寸可以喷的墨汁点
  • PPI:屏幕每英寸的像素数量,即单位英寸内的像素密度,PPI越高,默认的dpr越大。
以iphone 5 为例:

2. Viewport视图概念

作用
- 将页面渲染在一个默认980px(ios)的viewport中,andriod可自定义
- 缩放
viewport分layout viewport和visual viewport一般不使用默认的980的viewport,而是使用meta标签改变viewport。

3. Viewport_Meta标签

定义布局content宽度和缩放比,期望缩放比统一。
直接使用980的默认设置并不适合。
最佳实践:布局viewport = 设备宽度 = 度量viewport

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • 方案一:根据设备的实际宽度设计——手机宽320px,就用320px设计。
  • 方案二:缩放比设为0.5,使得设备的物理像素等于抽象像素来设计。1px边框和高清图片不需要额外设计。

二、响应式移动Web排版布局

布局主要分为固定布局和流体布局,其中PC端的布局偏向于使用固定布局。但是移动端使用固定布局并不合适,因为移动端的屏幕尺寸呈现碎片化。移动端web需要有良好的自适应性。

1. Flex弹性盒布局

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为Flex布局。可根据元素的个数不同,自动填充容器。

1.1 Flex 使用
  • 父元素使用flex布局:display:flex;webkit内核的浏览器加前缀-webkit
  • 子元素可按照比例划分或者混合划分
width:100pxflex:2flex:1

一般来说,图片的宽高是固定的,文字部分按照等比填充。

1.2 Flex 容器属性

Flex布局思维导图

namevalue备注
1flex-directionrow (default) / row-reverse / column / column-reverse;决定主轴的方向(即项目的排列方向)
2flex-wrapnowrap (default) / wrap / wrap-reverse;默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
3flex-flowrow nowrap (default)flex-direction属性和flex-wrap属性的简写形式
4justify-contentflex-start (default) / flex-end / center / space-between / space-around;定义了项目在横向上的对齐方式。
5align-itemsflex-start/ flex-end / center / baseline / stretch (default);定义项目在纵向上如何对齐。
6align-contentflex-start / flex-end / center / space-between / space-around / stretch (default);定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
1.3 子元素属性
namevalue备注
1orderinit排列顺序。数值越小,排列越靠前,默认为0。
2flex-grownumber放大比例,默认为0。即如果存在剩余空间,也不放大。
3flex-shrinknumber缩小比例,默认为1,即如果空间不足,该项目将缩小
4flex-basislength eg:360px定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
5flexflex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选
6align-selfauto / flex-start / flex-end / center / baseline / stretch;允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

详细介绍:Flex布局语法教程

2. 使用媒体查询 MediaQuery

媒体类型

  • screen (屏幕)
  • print (打印机)
  • handheld (手持设备)
  • all (通用)

常用媒体查询参数

  • width —— 视口宽度
  • height —— 视口高度
  • device-height —— 设备高度
  • device-weight —— 设备高度
  • orientation —— 检查设备处于横屏(landscape)还是竖屏(portrait)

设计点

  • 使用百分比布局,实现平滑适应
  • 使用弹性图片(外加容器,图片使用100%宽度)
  • 重新布局,显示与隐藏,隐藏冗余元素 经常需要切换位置的元素使用【绝对定位】,减少重绘,提高渲染性能

权衡利弊,不要为了响应式而响应式。

待续:高清图片和一像素边框问题
1. 关于高清图片:为了避免图片产生模糊,图片的宽高应该使用物理像素渲染。
2. 一像素边框,使用scaleY(.5).

3. 相对单位 em 和 rem
  • em:以父节点的font-size为相对单位
  • rem :以html 的font-size 为相对单位 (推荐)

为了适应手机屏幕 rem = screen.width/10;rem可结合sass使用。

4. 多行文本溢出 加 ...
-webkit-box-orient:vertical;
-webkit-line-clamp: 3

三、终端交互

1、使用自定义Tap事件代替click事件避免300ms问题,(Tap事件可能存在点透bug,遮罩层被点透)。
2、 Touch事件

    - touchstart- touchmove- touchend- touchcancel

每个touch对象包含以下属性:
这里写图片描述

3、弹性滚动
body层滚动
自带弹性滚动,overflow:hidden失效,GIF和定时器暂停
局部滚动

div {overflow: scroll;-webkit-overflow-scrolling: touch;
}

4、下拉刷新
使用touch事件,判断是否拉到顶层,如果是,对页面进行重新加载。

5、上拉加载
使用scroll事件。


http://chatgpt.dhexx.cn/article/xIHSb4Dw.shtml

相关文章

02-移动WEB

网站 favicon 图标 制作 favicon 图标 把图标切成 png 图片 把 png 图片转换为 ico 图标 , 借助第三方平台转换网站 如 https://www.bitbug.net/ favicon 图标放到网站根目录下 HTML 页面引入 favicon 图标 . <link rel"shortcut icon" href"/favicon.ic…

移动web(看这一篇就够了)

文章目录 移动web第一天&#x1f525;今日学习目标字体图标1、字体图标的使用2、购物车案例3、上传SVG矢量图 平面转换1、平面转换概念2、平面转换之位移3、平面转换之旋转4、平面转换之缩放 渐变 移动web第二天&#x1f525;今日学习目标2、透视效果3、空间转换之旋转4、立体呈…

移动web简介

什么是移动web 移动web就是在手机浏览器里面访问的web页面&#xff0c;除了一般的手机浏览器之外&#xff0c;好友一些程序内置的浏览器访问的页面也称之为移动web&#xff0c;例如微信公众号、小程序中的webview访问的页面等。 移动web与PCweb的区别 页面大小不一样。手机页…

什么是web移动端-移动端布局特点

文章目录 前言一、web移动端是什么&#xff1f;二、如何调试移动web网页1.真机调试&#xff1a;2.chrome浏览器调试&#xff1a;3.移动Web的发展历史 三.移动Web布局核心思想1.不允许网页出现横向滚动2.页面盛满屏幕&#xff0c;盒子宽度与屏幕一致 100%3.让盒子的内容宽高widt…

几种java结构图

集合类 IO流 线程池的加载 类与对象的关系 JVM springboot注解

java学习各种实用结构图

spring boot路线图 线程池 网络结构模型

Java基础知识结构图

目前还没有总结完&#xff0c;之后会慢慢进行补充&#xff01;

VGG16详细实现(笨办法)

一、 VGG16简介 VGG16网络是通过卷积和全连接的方式提取图片特征&#xff0c;进行识别一种网络结构。曾在某年取得分类第二&#xff0c;定位任务第一的佳绩。其结构包含&#xff1a; 13个卷积层 3个全连接层&#xff0c;所以被称为VGG16,如下图绿色的部分即是网络的结构组成&…

(Java实现)图片合成GIF动图(“复古”Swing界面)

1、项目简介 项目名称&#xff1a;pic2gif项目实现&#xff1a;将选定的几张图片(支持jpg&#xff0c;png&#xff0c;bmp&#xff0c;gif等) 合成为一张gif图关键字&#xff1a;图片处理&#xff0c;Java&#xff0c;Swing 2、项目结构 图片处理部分Swing界面部分 (u1s1, S…

图解 JVM 内存结构

文章目录 JVM 内存结构JVM包含哪几部分&#xff1f;在内存中 java 代码的执行的流程Java内存分布&#xff1a;各组件详细说明1. 程序计数器2. Java虚拟机栈3. 本地方法栈4. Java堆5. 方法区6. 运行时常量池7. 直接内存 总结问题那些区域会发生内存溢出&#xff1f;类存放在哪里…

JVM8基础结构图理解

目录 1 理解DOS里面的java命令 2 JVM内存 2.1 JVM主要组成部分 2.2 JVM内存(运行时数据区域) 2.2.1 虚拟机内存与本地内存区别 2.2.2 JVM内存(运行时数据区域)中的JVM内存 2.2.3 程序计数器(Program Counter Register) 2.2.4 虚拟机栈(JVM Stacks) 2.2.5 本地方法栈(N…

java绘制(可视化)树结构图

以JPanel组件为画板&#xff0c;继承JPanel类并重写paint(Graphics g)函数&#xff0c;在函数中使用画笔g绘制树结构图。 实例代码——3个java源文件&#xff1a;Main.java、DrawNode.java、DrawTree.java 1、Main.java package drawTree;public class Main {public static …

Java的理论知识以及结构图

Java基础 1、 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目&#xff0c;其原先目的是&#xff1a;为家用消费电子产品发送一个信息的分布式代码系统&#xff0c;通过发送信息控制电视机、冰箱等 2、 简单写出Java特点&#xff0c;写出5个以上&#xff0c;越多越好…

Swagger使用教程及Swagger增强工具knife4j

标题 课外知识须知什么是swagger什么是RESTful 面向资源URI和URL区别&#xff1a; 博址推荐SpringBoot集成SwaggerSwagger常用注解Swagger增强工具knife4j 重点掌握&#xff1a;编写swagger的配置文件&#xff0c;理解每个配置的作用 课外知识须知 Swagger官网&#xff1a; …

JVM快速入门(类加载,对象创建,运行数据区,GC垃圾回收算法,jvm调优)

JVM快速入门 JVM定义&#xff1a;常见的几种jvmJDK&#xff0c;JRE&#xff0c;JVM区别 类加载过程类加载器作用加载器分类双亲委派机制好处 全盘委托机制 对象的创建流程类加载校验分配内存设置初值设置对象头对象头中的Mark Word 字段&#xff08;32位&#xff09;对象头中的…

一起学JVM(GC可视化工具Visual GC)

导读 众所周知&#xff0c;JVM&#xff08;java虚拟机&#xff09;运行着我们的java程序。java本身提供了自带工具VisualVM来帮助我们查看JVM的运行情况&#xff0c;下面主要介绍GC的可视化插件&#xff0d;Visual GC java版本 1.8.0_281 工具 VisualVM 的 Visual GC 插…

JVM G1详解

java程序性能 当我们调优java程序时&#xff0c;通常的目标有两个&#xff1a; 响应能力 或者 吞吐量 响应能力 响应能力指一个程序或者系统对请求的是否能够及时响应。 比如&#xff1a; 一个桌面UI能多快的响应一个事件&#xff1b; 一个网站能够多快返回一个页面请求&…

最简单的JVM内存结构图

目录 JVM内存结构图 方法区 堆 栈 程序计数器 本地方法栈 直接内存 内存分配性能优化-逃逸分析 总结 JVM内存结构图 大家好&#xff0c;好几天没有更新了&#xff0c;今天的内容有点多&#xff0c;我们详细介绍下JVM内部结构图&#xff0c;还是和之前一样&#xff0c;案…

JVM进阶(十一):JAVA G1收集器

文章目录 一、前言 一、前言 G1(Garbage First)垃圾收集器是当今垃圾回收技术最前沿的成果之一。早在JDK7就已加入JVM的收集器大家庭中&#xff0c;成为HotSpot重点发展的垃圾回收技术。同优秀的CMS垃圾回收器一样&#xff0c;G1也是关注最小时延的垃圾回收器&#xff0c;也同…

JVM监控之图形化工具

一、工具概述 使用命令行工具存在以下的局限性&#xff1a; 无法获取方法级别的分析数据&#xff0c;如方法之间的调用关系、各方法的调用次数和调用时间等要去用户登陆到java应用所在的宿主机上分析数据通过终端输出&#xff0c;结构不够直观 随着java应用的官方使用&#…