web 移动端开发基础

article/2025/11/7 13:27:03

web 移动端开发基础

文章目录

  • web 移动端开发基础
    • 了解视口相关内容
    • meta 视口标签
    • 掌握二倍图用法
      • 物理像素 & 物理像素比
      • 多倍图
      • 二倍精灵图做法
    • 了解移动端常见选择方案
    • 掌握移动端常见问题解决方案
    • 移动端常见的布局方式
      • 流式布局(百分比布局)
      • flex 布局 - 弹性布局
        • flex 布局概念
        • flex 布局原理
        • 容器属性(给父元素设置的属性)
      • 项目的属性 (容器内子元素设置的)
      • rem 布局
        • Rem 单位概念
        • 掌握 媒体查询制作方法

了解视口相关内容

视口 viewport - 浏览器显示页面内容的屏幕区域。视口可以分为 布局视口,视觉视口,理想视口

  • layout viewport (布局视口)
    • 一般移动设备的浏览器默认设置一个布局视口,用于解决早起 PC 页面在手机显示问题
    • IOS,Android 基本都将这个视口的分辨率设置为 980px,所以 PC 上的页面大多数都在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放页面
  • visual viewport (视觉视口)
    • 用户正在看到 页面区域
    • 可以通过缩放操作视觉视口,不影响布局视口,布局视口任保持原来的宽度
  • ideal viewport (理想视口)
    • 为了使网站在移动端有最理想的浏览和阅读宽度而设定
    • 理想视口,对设备来讲,是最理想的视口尺寸
    • 需要手动添加 <meta> 视口标签通知浏览器操作
    • <meta> 视口标签的主要目的: 布局视口的宽度应该与理想视口的宽度一致 (设备宽度等于布局宽度)
      布局视口.jpg
      在这里插入图片描述

meta 视口标签

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。

属性解释说明
width设置layout viewport 的宽度,为一个正整数,或字符串"width-device"
initial-scale设置页面的初始缩放值,为一个数字,可以带小数
minimum-scale允许用户的最小缩放值,为一个数字,可以带小数
maximum-scale允许用户的最大缩放值,为一个数字,可以带小数
user-scalable是否允许用户进行缩放,值为"no"或"yes", no 代表不允许,yes代表允许

掌握二倍图用法

物理像素 & 物理像素比

  • 物理像素点指的是 屏幕显示的最小单位,真实存在的,例如: 苹果6\7\8 :750*1334
  • 开发时的 1px 不等于 1个物理像素
  • PC 端页面, 1px 等价 一个 物理像素,但移动端不同
  • 一个 px 的能现实的物理像素点的个数,称为 物理像素比或屏幕像素比
  • Retia (视网膜屏幕) 是一种显示技术,可以将更多的物理像素点压缩至一块屏幕里,从而达到更高的分辨率,提高屏幕显示的细腻程度
    在这里插入图片描述
    Retia 屏 显示效果
    在这里插入图片描述

多倍图

  • 对于一张 50px * 50px 的图片,在手机 Retina 屏中打开,按照物理像素比会放大倍数,从而造成图片模糊
  • 在标准的 viewport 设置中, 使用倍图来提高图片质量,解决在高清设备中的 模糊问题
  • 通常使用二倍图 因为 iPhone 6\7\8 的影响。 但现在还存在3 倍图 4倍图的情况,这个按实际情况调整
  • 背景图片需要注意缩放问题
/* 在 iPhone 8 下设置 */
img {
/* 原始图片 100px * 100px */width: 50px;height: 50px;
}
/*使用背景图时候*/
div{background-size: 50px 50px;
}

二倍精灵图做法

  • 在 firework 里面把精灵图等比例缩放为 原来的 一般
  • 之后根据新的大小 测量坐标
  • background-size 精灵图原来宽度的一般

了解移动端常见选择方案

  • 单独制作移动端页面(主流)
    • 通常情况下,网址域名前面加 m(mobile)可以打开移动端页面
    • 通过判断设备,如果是移动端设备打开,就跳转到移动端页面
    • 需要完成 两套代码,维护成本较高
  • 响应式页面兼容移动端(其次)
    • PC 和 移动端共用一套网站,在不同宽度的屏幕下,样式自动适配
    • 通过判断设备屏幕宽度来改变样式,以适应不同终端
    • 制作时要考虑不同 设备宽度,因此需要花费比较多的精力

掌握移动端常见问题解决方案

浏览器:

  • 移动端浏览器基本以 webkit 内核为主,因此需要考虑 webkit 兼容问题
  • 放心使用H5 标签和 CSS3 样式
  • 浏览器的私有前缀 只需要考虑添加 -webkit- 即可
    在这里插入图片描述
    css 初始化 normalize

移动端 css 初始化推荐使用 normalize.css

normalize 的优点: 保护了有价值的默认值,修复浏览器 bug ,模块化的, 拥有详细的文档。
normalize 官方网站

特殊样式的设置

/*点击高亮我们需要清除清除 设置为transparent 完成透明*/
*{-webkit-tap-highlight-color: transparent;
}
/*在移动端浏览器默认的外观在iOS上加上这个属性才能给按钮和输入框自定义样式*/
input{-webkit-appearance: none;
}
/*禁用长按页面时的弹出菜单*/
img,a { 
-webkit-touch-callout: none; 
}

移动端常见的布局方式

单独制作移动端页面(主流)

  • 流式布局 (百分比布局)
  • flex 弹性布局(推荐使用)
  • less + rem + 媒体查询布局
  • 混合布局

响应式页面兼容移动端(其次)

  • 媒体查询
  • bootstrap

流式布局(百分比布局)

  • 流式布局,就是百分比布局,也称为 非固定像素布局
  • 通过将盒子的宽度设置成百分比,从而根据屏幕的宽度来进行收缩,不受固定像素的限制,内容向两侧填充
  • 流式布局方式是 移动 web 开发使用比较常见的布局方式

注意事项

  • 制作过程中,需要定义页面的 最大和最小支持的宽度。
  • max-width 最大宽度 (max-height 最大高度)
  • min-width 最小宽度(min-height 最小高度)

flex 布局 - 弹性布局

flex 布局示意图

flex 布局概念

  • flex 是flexble box 的缩写,用来为盒状模型提高最大的灵活性,任何一个容器都可以指定为 flex 布局
  • 当父盒子设定为 flex 容器后,子元素的 float,clear, vertical-align 属性将失效
  • 伸缩布局 = 弹性布局 = 伸缩盒布局 = 弹性盒布局 = flex 布局
  • 容器默认存在两根轴:水平的 主轴(main axis)和垂直的 交叉轴(cross axis)
  • 主轴的开始位置(与边框的交叉点)叫做 main start
  • 结束位置叫做 main end;交叉轴的开始位置叫做cross start
  • 结束位置叫做 cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

flex 布局原理

  • 采用 flex 布局的元素,称为 Flex 容器 (flex container),简称容器
  • 容器内的子元素自动称为容器成员,称为 Flex 项目(flex item),简称项目
  • 设置父元素的 display 属性为 flex,来控制盒子的位置和排列方式

容器属性(给父元素设置的属性)

属性名概念
flex-direction决定主轴的方向(即项目的排列方向)
flex-wrap设置子元素是否换行,默认在一行内显示
justify-content设置主轴上的子元素排列方式
align-items设置交叉轴 子元素的排列方式(单行)
align-content设置交叉轴子元素的排列方式(多行)
flex-flow复合属性,同时设置 flex-direction 和 flex-wrap

项目的属性 (容器内子元素设置的)

属性名概念
order定义项目的排列顺序。数值越小,排列越靠前,默认为0
flex-grow定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大
flex-shrink定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小
flex-basis定义了在分配多余空间之前,项目占据的主轴空间(main size)
flexflex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选
align-self允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性

Flex 布局语法教程 - 详细内容

rem 布局

思考:

  1. 页面布局文字能否随着屏幕大小变化而变化?
  2. 流式布局和 flex 布局主要针对宽度布局,那高度如何设置自适应变化?
  3. 怎么样让屏幕尺寸改变时 页面的高度和宽度等比 缩放?

Rem 单位概念

  • rem (root em)是一个相对单位,类似 em ,em 是父元素字体大小
  • 不同的是 em 的参考 页面根元素(html)的字体大小
  • 列如: html 设置 font-size:12px; 非根元素设置 width:2rem; 转换 px 表示就是 24px
  • rem 的优势:父元素文字大小可能不一致,但整个页面只有 html 元素,可以很好的控制整个页面元素大小比例
html { font-size: 12px; }/* 此刻 div 字体大小就是 24px */
div { font-size: 2rem; }

掌握 媒体查询制作方法

媒体查询

媒体查询(Media Query) 是 css3 新增语法

  • 使用 @media 查询,可以针对不同的媒体类型定义不同的样式
  • @media 可以针对不同的屏幕尺寸设置不同的 样式
  • 浏览器屏幕宽度发生变化时, 页面尺寸跟随 变化
  • 目前针对很多 iOS、Android 、平板灯设备都用得到 媒体查询

语法规范

@media mediatype and | not | only (media feature) {/*  ...css-code*/
}

mediatype 媒体类型

解释说明
all用于所有设备
print用于打印机和打印预览
screen用于电脑屏幕,平板,手机等

关键字

关键字 将媒体类型或多个没写特性连接到一起作为媒体查询的条件

关键字解释说明
and可以将多个媒体特性连接到一起,相当于“且”的意思
not排除某个媒体类型,相当于“非”的意思,可以省略
or测试多个媒体查询的条件,只要有一个条件成立,则执行,“或”的意思
only指定某个特定的媒体类型,可以省略

媒体特性

解释说明
width定义输出设备页面中可见区域的宽度
min-width定义输出设备页面最小可见区域宽度
max-width定义输出输出设备页面最大可见区域的宽度
@media screen and (min-width: 800px) { 
/* 在屏幕设备中,判断屏幕尺寸大于等于800px的时候,最小宽度是 800px*/
}
@media screen and (max-width: 600px) {/* 屏幕最大宽度为600px 时 生效*/
}@media screen and (min-width: 540px) and (max-width: 969px) { 
/*屏幕大于等于540px 并且 小于等于 969px 时*/
}

媒体查询引入资源

使用 link 标签判断设备尺寸, 引入不同的 css 文件

<link rel="stylesheet" href="css/style320.css" media="screen and (min-width: 320px)">
<link rel="stylesheet" href="css/style640.css" media="screen and (min-width: 640px)">

媒体查询 + rem 实现元素动态大小变化


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

相关文章

Web移动端

1.PC端和移动端的区别: PC端:屏幕大 用网页固定版心,要考虑浏览器兼容问题,(布局:浮动&#xff0b;定位&#xff0b;标准流) 移动端: 手机屏幕小&#xff0c;网页宽度多数为100%&#xff0c;是适配手机屏幕宽度 移动端则基本不需要考虑兼容性问题&#xff0c;放心大胆使用CS…

移动端网页开发基础

文章目录 前言一、浏览器1.pc端常见浏览器2.移动端常见浏览器 二、视口1.布局视口layout viewport2.视觉视口visual viewport3.理想视口ideal viewport 三、二倍图1.物理像素和物理像素比2.二倍图用法 四、移动端开发选择1.单独制作移动端页面2.响应式兼容pc移动端3.移动端常见…

20.【移动端Web开发之响应式布局】

文章目录 【移动端Web开发之响应式布局】前端小抄(20)一、响应式开发1.1 响应式开发原理1.2 响应式布局容器 二、Bootstrap前端开发框架2.1 Bootstrap简介2.2 Bootstrap使用2.3 布局容器 三、Bootstrap栅格系统3.1 栅格系统简介3.2 栅格选项参数3.3 列嵌套3.4 列偏移3.5 列排序…

H5移动web开发

目录 1、H5 的新特性有哪些&#xff1f;C3 的新特性有哪些&#xff1f; 2、如何使一个盒子水平垂直居中&#xff1f; 方法一&#xff1a;利用定位&#xff08;常用方法,推荐&#xff09; 方法二&#xff1a;利用 margin:auto 方法三&#xff1a;利用 display:table-cell 方法四…

手摸手带你学移动端WEB开发

HTML常用标签总结手摸手带你学CSSHTML5与CSS3知识点总结 好好学习&#xff0c;天天向上 本文已收录至我的Github仓库DayDayUP&#xff1a;github.com/RobodLee/DayDayUP&#xff0c;欢迎Star ⭐⭐⭐⭐⭐转载请注明出处&#xff01;⭐⭐⭐⭐⭐ 链接&#xff1a;https://blog.c…

移动端网页开发(一)

一、项目代码初始化 1.打开index.html将<meta></meta>标签补充完整 <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,initial-scale1.0&#xff0c;minimum-scale1.0,maximum-…

web移动开发

web移动开发 手机内置浏览器&#xff1a; Android&#xff1a;Andriod BrowserIOS&#xff1a;Mobile SafariBlackBerry&#xff1a;WebkitSymbian S60&#xff1a; Web Browser for S60 其浏览器的核心都是基于Webkit 智能手机Web浏览器的特点: 有限的屏幕尺寸触屏、缩放硬…

移动端页面开发

移动端页面开发需要掌握的…… 移动端开发指的是&#xff1a;需要适配移动设备的网页开发移动开发与pc端开发没有本质的区别&#xff0c;使用的也还是HTML/CSS/JS的技术 一、移动端与pc端开发的区别在于&#xff1a; 1.浏览器不同 手机浏览器是webkit的天下&#xff0c;就目…

从零开始学习移动端Web开发

背景 近年来&#xff0c;随着智能手机的普及&#xff0c;移动端开发受到了异常的关注。从传统的安卓、IOS原生手机系统应用开发&#xff0c;转向了移动端Web开发或者是混合开发&#xff0c;既然有需求&#xff0c;那就让我们一起来学习移动端Web开发吧。本文旨在让读者以最快的…

移动端网站开发

受限于流量太少&#xff0c;以前的手机网站无法做成像现在一样的效果&#xff0c;只能通过超链接的形式实现简单的网页 随着3G&#xff0c;4G&#xff0c;5G的商用&#xff0c;我们的流量越来越多&#xff0c;网速越来越快。越来越多的应用开始去开发网页版。 移动端仿真 未来…

移动端开发

2022.3.5 学习笔记 目录 四、移动端开发方案 五、 移动端技术解决方案 六、移动端常见布局 移动端开发之流式布局&#xff1a; 一、基础 二、制作京东移动端首页案例 四、移动端开发方案 ①单独制作移动端页面 &#xff08;主流&#xff09; 京东商城手机版 淘宝触屏版…

web前端开发之移动端基础

web前端开发之移动端基础 一、物理像素(px) 定义&#xff1a;虚拟像素&#xff0c;可以理解为“直觉”像素&#xff0c;CSS和JS使用的抽象单位&#xff0c;浏览器内的一切长度都是以CSS像素为单位的&#xff0c;CSS像素的单位是px。 1.2 像素到底是什么 像素&#xff08;px…

前端移动端web开发(一)

一、前端开发 1.前端开发分类&#xff1a; PC端开发&#xff1a;页面主要运行在PC端浏览器中 移动端开发&#xff1a;页面主要运行在手机上 移动web开发 在移动端表现良好的页面&#xff0c;如新浪网 混合式开发&#xff08;Hybrid App&#xff09; 也叫“套壳开发”&#xf…

移动端Web开发 基础知识

文章目录 移动端Web开发移动端基础浏览器视口样式编写分辨率和设备像素比二倍图SVG矢量图 移动端Web开发 移动Web开发的两种主流方案&#xff0c;一种是单独制作移动端页面&#xff0c;另一种是制作响应式页面 移动端页面&#xff1a; 单独制作移动端页面的优势和劣势&#…

(一)移动端 Web 开发基础

文章目录 一、移动 Web 开发基础概念1. 像素(1) 分辨率(2) 物理像素(3) CSS 像素(4) 设备像素比(5) 标清屏和高清屏(6) 缩放(7) PPI / DPI 2. 视口 viewport 二、移动 Web 开发基础知识1. box-sizing2. 图标字体3. flex 布局(1) 什么是 flex 布局(2) flex 布局的基本概念(3) fl…

移动端web开发

相关阅读&#xff1a; WebApp与Native App的区别&#xff1f; 在高端智能手机系统中有两种应用程序&#xff1a;一种是基于本地(操作系统)运行的APP;一种是基于高端机的浏览器运行的WebApp&#xff08;基于WEB形式的应用程序&#xff09; Native App&#xff1a; 1、开发成本非…

Web前端开发 移动端开发(快速入门)

目录 一、理论知识1.视口2.物理像素和物理像素比3.二倍图4.移动端开发选择 二、移动端开发流程1.技术选型2.搭建文件结构3.SEO优化3大标签4.设置favicon.ico(logo图片)5.视口标签和初始化样式6.设置自适应尺寸&#xff08;两种方法&#xff09;1.方法一&#xff1a;创建common.…

移动端web开发笔记(一)

我本来一直在开发PC端的网页的&#xff0c;但是看到很多招聘都要求要有移动端开发的经验&#xff0c;所以开始学习一下&#xff01; 先搞清楚两个概念&#xff0c;移动端web开发&#xff0c;web app开发 1、 移动web开发&#xff08;pc端的页面用手机浏览器打开&#xff09; …

移动web开发

参考博客&#xff1a; 浅析移动端的视口 什么是视口 布局们 黑马程序员之flex布局 一、基础所知 常见浏览器QQ浏览器、百度手机浏览器、360、谷歌浏览器等都是根据Webkit修改过来的内核&#xff0c;因此移动浏览器主要对webkit进行兼容。且移动端设备屏幕尺寸碎片化&#xff…

方法重载与重写的区别

1.方法重载和重写都是实现多态的方式&#xff0c;区别在于重载是编译时多态&#xff0c;重写是运行时多态。 2.重载是在同一个类中&#xff0c;两个方法的方法名相同&#xff0c;参数列表不同&#xff08;参数类型、顺序、个数&#xff09;&#xff0c;与方法返回值无关&#x…