移动端的web开发技巧(二)之常见问题

【简介】

移动端得web开发技巧(一)之meta标签的使用,详情请看,上一篇文章的介绍。

移动web开发中常见的问题如下:

【1. 移动端如何定义字体font-family】

三大手机系统的字体:

ios 系统

  • 默认中文字体是Heiti SC
  • 默认英文字体是Helvetica
  • 默认数字字体是HelveticaNeue
  • 无微软雅黑字体

android 系统

  • 默认中文字体是Droidsansfallback
  • 默认英文和数字字体是Droid Sans
  • 无微软雅黑字体

winphone 系统

  • 默认中文字体是Dengxian(方正等线体)
  • 默认英文和数字字体是Segoe

无微软雅黑字体

  • 各个手机系统有自己的默认字体,且都不支持微软雅黑
  • 如无特殊需求,手机端无需定义中文字体,使用系统默认
  • 英文字体和数字字体可使用 Helvetica ,三种系统都支持

[CSS] 纯文本查看 复制代码

?


1

2

3

/* 移动端定义字体的代码 */

body{font-family:Helvetica;}

【2. 移动端字体单位font-size选择px还是rem】

对于只需要适配手机设备,使用px即可

对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备

rem配置参考:

[CSS] 纯文本查看 复制代码

?


001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

@media only screen and (max-width: 1080px),

only screen and (max-device-width: 1080px) {

    html,

    body {

        font-size: 168.75px;

    }

}

@media only screen and (max-width: 960px),

only screen and (max-device-width: 960px) {

    html,

    body {

        font-size: 150px;

    }

}

@media only screen and (max-width: 800px),

only screen and (max-device-width: 800px) {

    html,

    body {

        font-size: 125px;

    }

}

@media only screen and (max-width: 720px),

only screen and (max-device-width: 720px) {

    html,

    body {

        font-size: 112.5px;

    }

}

@media only screen and (max-width: 640px),

only screen and (max-device-width: 640px) {

    html,

    body {

        font-size: 100px;

   }

}

@media only screen and (max-width: 600px),

only screen and (max-device-width: 600px) {

    html,

    body {

        font-size: 93.75px;

    }

}

@media only screen and (max-width: 540px),

only screen and (max-device-width: 540px) {

    html,

    body {

        font-size: 84.375px;

    }

}

@media only screen and (max-width: 480px),

only screen and (max-device-width: 480px) {

    html,

    body {

        font-size: 75px;

    }

}

@media only screen and (max-width: 414px),

only screen and (max-device-width: 414px) {

    html,

    body {

        font-size: 64.6875px;

    }

}

@media only screen and (max-width: 400px),

only screen and (max-device-width: 400px) {

    html,

    body {

        font-size: 62.5px;

    }

}

@media only screen and (max-width: 375px),

only screen and (max-device-width: 375px) {

    html,

    body {

        font-size: 58.59375px;

    }

}

@media only screen and (max-width: 360px),

only screen and (max-device-width: 360px) {

    html,

    body {

        font-size: 56.25px;

    }

}

 

@media only screen and (max-width: 320px),

only screen and (max-device-width: 320px) {

    html,

    body {

        font-size: 50px;

    }

}

@media only screen and (max-width: 240px),

only screen and (max-device-width: 240px) {

    html,

    body {

        font-size: 37.5px;

    }

}

【3. 移动端touch事件(区分webkit 和 winphone)】

当用户手指放在移动设备在屏幕上滑动会触发的touch事件

以下支持webkit

  • touchstart——当手指触碰屏幕时候发生。不管当前有多少只手指
  • touchmove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动
  • touchend——当手指离开屏幕时触发
  • touchcancel——系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用

以下支持winphone 8

  • MSPointerDown——当手指触碰屏幕时候发生。不管当前有多少只手指
  • MSPointerMove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用css的html{-ms-touch-action: none;}可以阻止默认情况的发生:阻止页面滚动
  • MSPointerUp——当手指离开屏幕时触发

【4. 什么是Retina 显示屏,带来了什么问题】

retina:一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由1个变为多个,如在同样带下的屏幕上,苹果设备的retina显示屏中,像素点1个变为4个

在高清显示屏中的位图被放大,图片会变得模糊,因此移动端的视觉稿通常会设计为传统PC的2倍

那么,前端的应对方案是:

设计稿切出来的图片长宽保证为偶数,并使用backgroud-size把图片缩小为原来的1/2

[CSS] 纯文本查看 复制代码

?


1

2

3

4

5

6

7

8

9

//例如图片宽高为:200px*200px,那么写法如下

.css{width:100px;height:100px;background-size:100px 100px;}

 

其它元素的取值为原来的1/2,例如视觉稿40px的字体,使用样式的写法为20px

.css{font-size:20px}

【5. webkit表单输入框placeholder的颜色值能改变么】

[CSS] 纯文本查看 复制代码

?


1

2

3

input::-webkit-input-placeholder{color:#AAAAAA;}

input:focus::-webkit-input-placeholder{color:#EEEEEE;}

【7. 移动端禁止选中内容】

如果你不想用户可以选中页面中的内容,那么你可以在css中禁掉:

[CSS] 纯文本查看 复制代码

?


1

2

3

4

5

6

7

8

9

.user-select-none {

  -webkit-user-select: none/* Chrome all / Safari all */

  -moz-user-select: none;     /* Firefox all (移动端不需要) */

  -ms-user-select: none;      /* IE 10+ */

}

【8. 移动端取消touch高亮效果】

在做移动端页面时,会发现所有a标签在触发点击时或者所有设置了伪类 :active 的元素,默认都会在激活状态时,显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来进行全局的禁止:

[HTML] 纯文本查看 复制代码

?


1

2

3

4

5

html {

    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

}

但这个方法在三星的机子上无效,有一种妥协的方法是把页面非真实跳转链接的a标签换成其它标签,可以解决这个问题。

【9. 如何禁止保存或拷贝图像(苹果)】

通常当你在手机或者pad上长按图像 img ,会弹出选项 存储图像 或者 拷贝图像,如果你不想让用户这么操作,那么你可以通过以下方法来禁止:

[CSS] 纯文本查看 复制代码

?


1

img {-webkit-touch-callout: none; }

【11. 关闭苹果键盘首字母自动大写】

在苹果中,默认情况下键盘是开启首字母大写的功能的,如果启用这个功能,可以这样:

<ignore_js_op>

【12. 关闭苹果输入自动修正】

和英文输入默认自动首字母大写那样,苹果还做了一个功能,默认输入法会开启自动修正输入内容,这样的话,用户经常要操作两次。如果不希望开启此功能,我们可以通过input标签属性来关闭掉:

<ignore_js_op>

<ignore_js_op>

原文地址:https://www.cnblogs.com/heimaguangzhou/p/11430915.html

时间: 2024-10-10 11:15:33

移动端的web开发技巧(二)之常见问题的相关文章

移动 Web 开发技巧之(后续)

昨天的<移动 Web 开发技巧>的这篇文章,大家反响不错,因为这些问题在大家日常写移动端的页面时经常遇到的.所以那个文章还是超级实用的,那么我们今天继续来分享一下移动端的web开发技巧吧,希望对大家有所帮助. PS:不要让小伙伴第一次写移动端像下面这位一脸的蒙逼哈哈… … 第一.启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕后再点击进行启动时,可隐藏地址栏(从浏览器跳转或输入链接进入并没有此效果) <meta name="apple-mobile-web-app-c

移动端web开发技巧(转)

原文链接:http://liujinkai.com/2015/06/06/mobile-web-skill/ 移动端web开发技巧 这是一个最好的时代,因为我们站在潮流中:但也是一个最坏的时代,因为我们站在潮头上. META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题"> 2. 启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕后再点击进行启动时,

SQL开发技巧(二)

本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上…… 文章系列目录 SQL开发技巧(一) SQL开发技巧(二) 本文内容简介 这篇文章主要介绍以下内容: 快速查询表的总记录数 非递归查询树形结构表的所有子节点 清除查询缓存 编程中构建Where语句的小技巧 如何进行跨服务器的数据库查询 快速查询表的总记录数 什么,你还在用select count(*) from xxx?难道没有园友告诉你用se

安卓开发技巧二:自定义日志工具类XLog的实现

我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项目,用到打印日志的地方肯定特别多,等到真正上线的时候,我们是不希望日志依旧能够打印出的,原因很简单,不仅多少有些影响效率,更有可能导致信息的泄露,所以我们就需要把所有的日志打印语句全部取消掉,难道我们真的一个一个的去删除这些打印日志的语句吗?项目那么大,就是想删除,也得耗费大量的时间和精力!大家不用怕,笔者这就给大家带来一款控制线上版本和线下版本

SQL开发技巧(二) 【转】感觉他写的很好

本文转自: http://www.cnblogs.com/marvin/p/DevelopSQLSkill_2.html 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上…… 文章系列目录 SQL开发技巧(一) SQL开发技巧(二) 本文内容简介 这篇文章主要介绍以下内容: 快速查询表的总记录数 非递归查询树形结构表的所有子节点 清除查询缓存 编程中构建Where语句的小技巧 如何进行跨服务器的

Node.js Web开发(二)

上一篇文章主要介绍了koa2的基本操作(坐下坐下),但是每次都返回一样的HTML似乎也不可能,所以现在我们需要来处理URL了. 直接来点高级点的东西,我们需要一个能处理URL的middleware,它叫做:koa-router: npm install koa-router 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 const Koa = require('koa'); const router = require('koa-route

日常 java web 开发中遇到的常见问题

view 层: 问题:jsp 页面double 值过大,会变成科学计数法 第一步:引入标签 <%@ taglib prefix= "fmt" uri ="/WEB-INF/tld/fmt.tld" %> 第二步: <fmt:formatNumber value= "${变量名} " pattern="#.00"/> 2.jsp和java后台交互,通过js 转码问题 js代码:       var tes

移动web开发(二)——viewport

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

移动端web开发技巧

常见问题 1.移动端如何定义字体font-family 三大手机系统的字体: iOS 系统 默认中文字体是Heiti SC 默认英文字体是Helvetica 默认数字字体是HelveticaNeue 无微软雅黑字体 Android 系统 默认中文字体是Droidsansfallback 默认英文和数字字体是Droid Sans 无微软雅黑字体 Winphone 系统 默认中文字体是Dengxian(方正等线体) 默认英文和数字字体是Segoe 无微软雅黑字体 各个手机系统有自己的默认字体,且都不