前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >移动端基础

移动端基础

作者头像
梨涡浅笑
发布于 2022-05-08 07:13:11
发布于 2022-05-08 07:13:11
1.7K00
代码可运行
举报
文章被收录于专栏:全栈自学笔记全栈自学笔记
运行总次数:0
代码可运行

移动端基础

移动端浏览器我们主要针对webkit内核进行兼容

现在移动端碎片化比较严重,分辨率和屏幕尺寸大小不一

1.移动端调试方法

  • Charome DevTools(谷歌浏览器) 的模拟手机调试
  • 搭建本地web服务器,手机和服务器一个局域网内,通过手机访问服务器
  • 使用外网服务器,直接IP或域名访问

2.视口

视口(viewport)就是浏览器显示页面内容的屏幕区域。视口可分为布局视口、视觉视口和理想视口

2.1布局视口 layout viewport

  • 一般移动设备的浏览器都默认设置了一个布局视口,用于解决早期的PC端页面在手机上显示的问题
  • iOS,Android基本都将这个视口分辨率设置为980px,所以pc上的网页大多都能在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放网页。

2.2视觉视口visual viewport

  • 用户正在看到的网站区域。
  • 可以通过缩放去操作视觉视口,但不会影响布局视口,布局视口仍保持原来的宽度

2.3理想视口 ideal viewport

  • 为了使网站在移动端有最理想的浏览和阅读宽度而设定
  • 需手动添写meta视口标签通知浏览器操作
  • meta视口标签的主要目的:布局视口的宽度应与理想视口宽度一致。

2.4meta视口标签

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

属性

解释说明

width

宽度设置的是viewport宽度,可以设置device-width(宽度是设备宽度)特殊值

initial-scale

初始缩放比,大于0的数字(倍数,一般为1.0)

maximum-scale

最大缩放比,大于0的数字

minimum-scale

最小缩放比,大于0的数字

user-scalable

用户是否可以缩放,yes或no(1或0)(一般设置为no)

3.二倍图

3.1 物理像素&物理像素比

  • 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。是厂商在出厂时就设置好的
  • 开发时用的1px不一定等于1个物理像素
  • PC端页面1px就等于1个物理像素,但移动端不同
  • 一个px能显示的物理像素点的个数,称为物理像素比或屏幕像素比

3.2多倍图

  • 物理像素比会放大图片倍数,会造成图片模糊
  • 在标准viewport设置中,使用倍图来提高图片质量,解决在高清设备中的模糊问题
  • 背景图片注意缩放问题

3.3二倍精灵图

  • 在firework里面把精灵图等比例缩放成原来的一半
  • 之后根据大小测量坐标
  • 注意代码里面background-size也要设置为精灵图原来宽度的一半

4.移动端开发选择

4.1单独移动端页面(主流)

通常情况下,网址域名前面加m(mobile)可以打开移动端。通过设备判断,如果是移动端打开,则自动跳转到移动端页面。

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

4.2响应式兼容pc移动端

通过判断屏幕宽度来改变样式,以适应不同终端

缺点:制作麻烦,需花费很大精力去调兼容性问题

  • 媒体查询
  • bootstarp

5.移动端技术解决方案

1.移动端浏览器

移动端浏览器基本以webkit内核为主,所以就考虑webkit兼容性问题。

2.css初始化 normalize.css

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

  • 保护了有价值的默认值
  • 修复了浏览器bug
  • 是模块化的
  • 拥有详细文档

官网地址:http://necolas.github.io/normalize.css/

3.特殊样式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /* *手机端点击链接会有一个蓝色背景,就是点击高亮,需清除,设置为transparent* */
   div a {
     -webkit-tap-highlight-color: transparent;
   }
   /* *移动端浏览器默认的按钮和输入框外观要自定义更改需加上这个属性* */
   div button {
     -webkit-appearance: none;
   }
   /* *禁用长按页面时弹出菜单* */
   img,
   a {
     -webkit-touch-callout: none;
   }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基础篇章:关于 React Native 之 RefreshControl 组件的讲解
(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 我们已经讲完了 ScrollView 和 ListView ,自然而然我们就应该讲的组件就是下拉刷新的喽,因为它们几个是兄弟,常常一块出现,就跟打麻将似的,四缺一不能打,那它们三就是斗地主,三缺一不能玩。今天讲的这个组件就是它们的兄弟:RefreshControl 。 介绍 我的母亲官网是这么介绍我的,说:我是大家在使用我的兄弟ScrollView或ListView添加拉刷新功能用的,我们几个
非著名程序员
2018/02/09
1.7K0
基础篇章:关于 React Native 之 RefreshControl 组件的讲解
ReactNative-综合案例(02)
最近几天学了几个ReactNative组件,总觉得单纯的学几个组件进步慢,所以我打算做一些综合性的小案例,练习下实战,我从网上找到一个小案例 ,感觉挺好,也学习了很多,代码内容可能不太一样,主要区别是:我把RN官方不推荐或者已经放弃了的组件进行了替换,如果有需要的可以互相参考下 接着上篇案例开始写,这篇文章将会讲解如何编写轮播图和列表 源代码下载 首先WYHome.js代码如下: import React, { Component } from 'react'; import { StyleS
czjwarrior
2018/05/28
7780
【React Native 安卓开发】----侧边栏的实现DrawerLayoutAndroid以及第三方框架react-native-side-menu的使用【第六篇】
做过安卓原生开发的童鞋们应该都做过侧边栏这个东西,而且对于开源框架SlidingMenu和android官方侧滑菜单DrawerLayout应该都不陌生。 那么今天也在这里给大家介绍一下React-Native中的侧滑菜单DrawerLayoutAndroid和第三方框架react-native-side-menu。
先知先觉
2019/01/21
6.8K0
React Native学习笔记(三)—— 样式、布局与核心组件
React Native 有一个内置的命令行界面,你可以用它来生成一个新项目。您可以使用 Node.js 附带的 访问它,而无需全局安装任何内容。让我们创建一个名为“AwesomeProject”的新 React Native 项目:npx
张果
2023/04/12
14.4K0
React Native学习笔记(三)—— 样式、布局与核心组件
ReactNative-ListView
这只是一个简单的listView的小demo 初始化项目之后,index.ios.js代码如下 /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView } from 'reac
czjwarrior
2018/05/28
8630
MobX 在 React Native开发中的应用
MobX 是一款精准的状态管理工具库,如果你在 React 和 React Native 应用中使用过 Flux、Alt、Redux 和 Reflux,那毫不犹豫地说,MobX 的简单性将成为你状态管
xiangzhihong
2018/01/26
12.4K0
React Native之ListView实现九宫格效果
概述 在安卓原生开发中,ListView是很常用的一个列表控件,那么React Native(RN)如何实现该功能呢?我们来看一下ListView的源码 ListView是基于ScrollView扩展
xiangzhihong
2018/02/05
2.7K0
React Native之ListView实现九宫格效果
React native城市列表组件
城市列表选择是很多app共有的功能,比如典型的美图app。那么对于React Native怎么实现呢? 要实现上面的效果,首先需要对界面的组成简单分析,界面的数据主要由当前城市,历史访问城市和热门城
xiangzhihong
2018/01/26
2.4K0
React Native控件之ListView
概述 ListView作为核心组件之一,主要用于高效地显示一个可以垂直滚动的变化的数据列表。经过自定义组装,我们还可以用它实现九宫格等页面效果。 在React Native中,使用ListView组件至少需要两个属性:DataSource和renderRow。DataSource是需要渲染界面的数据源,renderRow是根据数据源的元素返回的可渲染的组件,即ListView的一行。 在React Native中,最基本的使用方式就是创建一个ListView.DataSource数据源,然后给它传递
xiangzhihong
2018/02/06
1.6K0
React Native控件之ListView
7. 偷用Swiper简改
看这段代码应该就很清楚了,如果是android系统就渲染Pager如果是ios就使用横向的ScrollView,修改后的app首页如下:
MasterVin
2018/08/30
2K0
7. 偷用Swiper简改
React Native项目实战之搭建美团个人中心界面
在很多app应用型APP中,个人中心往往会单独出一个模块,而对于刚入门React Native的朋友来说,怎么去实现一些静态的页面,并且怎么着手实现,怎么分层,怎么去实现这个架构,我想是很基础的(ps
xiangzhihong
2018/02/06
2.4K0
React Native项目实战之搭建美团个人中心界面
react native仿微信PopupWindow效果
在原生APP开发中,相信很多开发者都会见到这种场景:点击右上角更多的选项,弹出一个更多界面供用户选择。这种控件在原生开发中Android可以用PopupWindow实现,在ios中可以用CMPopTi
xiangzhihong
2018/02/06
2.6K0
react native仿微信PopupWindow效果
React Native仿美团下拉菜单
在很多产品中都会涉及到下拉菜单选择功能,用的最好的当属美团了,其效果如下: 要实现上面的效果,在原生中比较好做,直接使用PopWindow组件即可。如果使用React Native开发上面的效果,需
xiangzhihong
2018/01/26
5.3K0
【Hybrid开发高级系列】ReactNative(四) —— 基础开发技巧
        AppRegistry模块则是用来告知React Native哪一个组件被注册为整个应用的根容器。你无需在此深究,因为一般在整个应用里AppRegistry.registerComponent这个方法只会调用一次。上面的代码里已经包含了具体的用法,你只需整个复制到index.ios.js或是index.android.js文件中即可运行。
江中散人_Jun
2023/10/16
4340
【Hybrid开发高级系列】ReactNative(四) —— 基础开发技巧
RN项目第二节 -- 首页实现
一、微组件的封装 每个页面的导航都会有不同的样式或者图片,为了实现代码的复用性,可以将导航统一封装成一个微小组件。 封装的Item需要有可点击事件,需要显示文字和图片。 import React,
谦谦君子修罗刀
2018/06/19
6.6K0
React Native 路由使用总结
因长时间习惯使用 Vue 与 React 的 路由,网上查询各种资料,找出类似 Vue/React的路由使用。但是React Native 升级到0.44 之后,运行直接报错,createMemoryHistory('/') 异常, 也许是我的使用不当,或者说是环境原因,期间我也打开node_model研究过一番,也没整明白,总之呢,无法使用。
White feathe
2021/12/08
2.1K0
React Native 路由使用总结
返回上一页,调用: navigator.pop() 方法, 使用当前页面出栈, 显示上一个栈内页面.例如:
White feathe
2021/12/08
1.2K0
react-native之navigation
这个文件目录除了src 其他的都是通过react-native init my_app自动生成的。
FinGet
2019/06/28
2.3K0
React Native导航器之react-navigation使用
在上一节Navigation组件,我们使用系统提供的导航组件做了一个跳转的例子,不过其实战能力不强,这里推荐一个超牛逼的第三方库:react-navigation。在讲react-navigation之前,我们先看一下常用的导航组件。 导航控件 常见的导航主要分为三种: 1.StackNavigator :类似于普通的Navigator,屏幕上方导航栏 2.TabNavigator:obviously, 相当于iOS里面的TabBarController,屏幕下方标签栏 3.DrawerNavi
xiangzhihong
2018/02/06
12.6K0
React Native导航器之react-navigation使用
基础篇章:关于 React Native 之 ListView 组件的讲解
(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 我们讲完ScrollView组件,其实顺其自然的就应该讲解ListView,对于前段
非著名程序员
2018/02/09
2.1K0
基础篇章:关于 React Native 之 ListView 组件的讲解
相关推荐
基础篇章:关于 React Native 之 RefreshControl 组件的讲解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验