移动Web初级入门

article/2025/10/10 4:42:59

最好的阅读是输出。 –玉伯

即将开始涉入移动Web了,有点小兴奋也有点小紧张,希望能在未来的团队里带来一些价值。记录一下我现在所认识的移动Web。

一些基本名词

初涉移动Web,会有一些基本的名称需要掌握,什么设备像素比呀,移动端Web的内核呀,viewport呀,屏幕的的最小物理单位呀。我已经记录了一些,以后还得继续补充。

  • - 常见移动Web名词

关于布局

我们来看看移动端最常见的布局:

上中下三部分布局

下面实现上述页面常见移动Web布局三种方法:

  • fixed
  • absolute
  • flexbox

fixed

对于第一种布局,其实现原理就是header和footer部分都为fixed定位。内容页面可以使用-webkit-overflow-scrolling:touch来进行滚动,当然,对于不支持的,也可以使用iscroll来兼容。
fixed布局网上人说坑太多,滚动的时候bug太多,特别是表单元素时弹出输入法会有很多问题,所以不建议使用,以下是一些网上参考的资料:

  • - 移动Web开发实践——解决position:fixed自适应BUG
  • - 移动端web页面使用position:fixed问题总结
  • - 移动Web开发,4行代码检测浏览器是否支持position:fixed

absolute

和fixed一样,只不过将fixed定位设为绝对定位。设定其left,right等值。下面有一个绝对定位的DEMO。

  • - 绝对定位的DEMO

flexbox

flexbox布局我估计是仿照flex*布局方式。由于主流移动端都使用的现代浏览器都支持这个CSS3属性。Flexbox布局俗称伸缩布局,它可以简单快速的创建一个具有弹性功能的布局。由于移动多终端的需求,所以首选是flexbox。

  • - flexbox的DEMO
  • - [译]flexbox全揭秘

图片与文字

非背景图片

之前提到的常见移动Web名词,设备像素比:2的高清视网膜技术却会使图片变得模糊,这是为什么呢?

中密度与超高密度(retina)显示的区别

根据计算公式,一个像素点会被拆分成4个小点,显示起来自然模糊了。

解决方案一般有两个:

1.设置target-densitydpi=device-dpi,采用按照真实比例来展示,然后进行媒体查询技术如下面代码:

#header {
background:url (medium-density-image.png);
}
@media screen and (- webkit -device-pixel-ratio:1.5) {
/* CSS for high-density screens */
#header { background:url (high-density-image.png);}
}
@media screen and (- webkit -device-pixel-ratio:0.75) {
/* CSS for low-density screens */
#header { background:url (low-density-image.png);}
}

这样有一个弊端就是:需要为每一种分辨率书写单独的代码。

  1. 假如需要100×100的图片,那么从设计稿(宽为640)上截取200×200的大小,但设置还是100*100。宽720的设计稿 ,为了满足显示像素为360的屏幕。这样就可以来只有一份设计稿只写一份代码了。
    经过@飞天小黑神猪的提示,也可以使用srcset和-webkit-image-set。

另外,多张图片的显示可以进行canvas的绘制,进行GPU渲染。。

背景图片

background-size设置为高度,自适应宽度100%,这也是CSS3的属性。

文字

px单位

传统PC端常用的px来设置大小。因为他比较稳定和精确。

em单位

浏览器中放大或缩放浏览页面时会存在一个问题,因为字体大小是固定了的。要解决这个问题,我们可以使用“em”单位。
em有如下特点:

  1. em的值并不是固定的;
  2. em会继承父级元素的字体大小。

rem单位

rem是CSS3的属性,和em一样,他的值是不固定的。区别在于他参考的是一个根元素的确定值。em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险。而rem是相对于根元素html,这样就意味着,我们只需要在根元素确定一个参考值。

在了解了px,em,rem的区别后,我们可以进行如下设置:

html { font-size: 62.5%; } 
body { font-size: 14px; font-size: 1.4rem; }

我们在写大小的时候通过一些简单的计算就可以了,比如的拿到的设计稿有一一部分为18px的文字,那我们在写代码的时候就可以写:

p : {font-size:18px;font-size:1.8rem}/*(1.8 x 10=18)*/

动画

在移动端不用过多考虑平台端的兼容性,完成动画也是借助CSS3的动画来实现。

在我看来,移动端动画优先选择为以下顺序:

transition > Animation > js

而且最好使用translate3d强制设备进行GPU渲染,但也不能过度使用。
我们可以使用CSS3动画库animate.css玩完成常见的动画。更多关于CSS3动画的可以参考:

  • - CSS动画简介

一些事件

移动端原生的最重要的事件touch

  • touchstart
  • touchmove
  • touchend
  • touchcancel

其中,他们之间触发的先后顺序为:

touchstart > touchmove > touchend > click

移动端click会延迟300ms,原因是他在等待判断是不是双击。当然,现在的一些框架解决了这个问题:

  • - fastclick
  • - tap.js

用这几个事件可以衍生出很多事件,比如左滑右滑,上下滑屏,放大,缩放等。详情可以看指尖上的JS系列。

  • - 指尖下的js ——多触式web前端开发之一:对于Touch的处理
  • - 指尖下的js ——多触式web前端开发之二:处理简单手势
  • - 指尖下的js —— 多触式web前端开发之三:处理复杂手势

现在已经有一些封装了的框架:

  • - hammer.js
  • - touch.js

当然还有其他移动端专属的事件,比如:

  • 触摸事件
  • 屏幕旋转事件

我用原生JS模仿了神马搜索搜出美团后的信息轮播:

  • - 移动端访问

一些框架

移动端有一些较为成熟框架:

  • - JQuery Mobile
  • - JQTouch

一些公司也有自己的框架

  • - 腾讯Pro
  • - 百度BlendUI

但更多公司选择使用一些基础的类库自己封装一些常见的交互,毕竟在移动端上流量真的是寸土必争。比如神马搜索用的是zepto.js。通过gzip压缩后只有几k,而且风格与JQ一模一样,无学习成本。

当然还有些为工具框架

  • - iscroll4

参考资料

  • jtyjty99999收集移动端开发所需要的一些资源与小技巧
  • [译]flexbox全揭秘
  • 移动端重构系列3——整体布局
  • 移动端webapp开发必备知识
  • CSS3的REM设置字体大小
  • 设备像素比devicePixelRatio简单介绍
  • 使用CSS3开启GPU硬件加速提升网站动画渲染性能

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

相关文章

chrome 移动Web H5 调试

在Chrome中,点击F12,进入如下页面,通过点击Toggle device toolbar,切换至移动Web调试模式。 然后,点击选择区域,可以选择相关的手机设备,以及屏幕分辨率等,可以看到,这…

移动web中的常用技术选型

我们在开发移动端网页时,由于手机屏幕尺寸的不同,需要一些适配方案以达到界面自适应的效果,这里记录一下移动web开发的一些基本概念和常用适配方案,先了解一下视口的概念: 一、视口(viewport). 视口是指浏览器显示页面的区域范围,分为布局视口、视觉视口、理想视口. 1.布局视…

移动web的适配

我在另一篇文章中谈到过一些移动端分辨率自适应问题,主要是基于个人实际开发中遇到的问题提出的解决方法。 近期有幸听到他人对移动web开发的分享,特来补充上一篇文章,向大神讨教。 Part 1 理解关于长度单位的一些概念 1、设备像素或逻辑像…

移动Web开发实战专栏总结(PPT分享)

以下为我将专栏《移动Web开发实战》重新从不同的角度进行整体的梳理之后,在团队分享的PPT。在这里分享给大家。 写PPT之前,先将要分享的内容用脑图梳理出来,有了框架填内容就比较快了。 1、禁止ios和android用户选中文字 2、禁…

移动web端页面如何调用手机QQ?

文章目录 手机web页面调用手机QQ实现在线聊天的效果方法一:html代码如下:js代码如下: 方法二:代码如下: 效果图截图如下: 统计表1 - 浏览器默认拦截统计表2 - 设备端与协议类型 手机web页面调用手机QQ实现在…

【前端学习笔记】移动web-黑马程序员学习笔记

移动web-黑马程序员学习笔记 1 字体图标2 平面转换2.1 绝对定位元素居中:2.2 双开门效果2.3 旋转效果2.4* 转换原点2.5 多重转换效果2.6 缩放 3* 渐变4 空间转换(3D转换)4.1 空间位移4.2 透视效果4.3 空间旋转4.4 立体呈现4.5 缩放 5 动画5.1…

移动Web UI组件库汇总

1、 Ant Design Mobile 介绍:一个基于 Preact / React / React Native 的 UI 组件库 组件库地址:https://mobile.ant.design/index-cn 组件库来源:蚂蚁金服体验技术部 2、SUI Mobile 介绍:SUI Mobile 是一套基于 Framework7 开发的…

移动web网页开发——动画

一、动画 1.1 动画 使用animation添加动画效果 思考:过渡可以实现什么效果? 答:实现2个状态间的变化过程 动画效果:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停&#xff09…

移动web学习总结

最近学习了些移动web开发的基础知识,稍微做下记录总结: Hello,移动web: https://www.imooc.com/learn/494 一、基础知识 1. 关于Pixel px : CSS px,逻辑像素,浏览器使用的抽象单位dp,pt: dev…

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…