java移动端开发_移动端开发

java移动端开发_移动端开发1.移动端视口问题视口是指浏览器的可视区域,移动端的视口到底是多宽呢?现在市面上的大部分手机,比如iphoneX,它的默认视口宽度为980px,而一个iphoneX的屏幕宽度仅仅为375px。看到问题了吗?一个宽度只有375像素的手机,却能够显示宽度为980像素的网页,自然而然,网页会被缩小。(注:实际上,这里说的375像素不是真实的物理像素,至于这个375像素是怎么来的,以及为什么大部分移动…

大家好,又见面了,我是你们的朋友全栈君。

1.移动端视口问题

视口是指浏览器的可视区域,移动端的视口到底是多宽呢?

现在市面上的大部分手机,比如iphone X,它的默认视口宽度为980px,而一个iphone X的屏幕宽度仅仅为375px。看到问题了吗?一个宽度只有375像素的手机,却能够显示宽度为980像素的网页,自然而然,网页会被缩小。

(注:实际上,这里说的375像素不是真实的物理像素,至于这个375像素是怎么来的,以及为什么大部分移动端的默认视口宽度是980,这就是另一个更加复杂的话题了,在此我们先不做讨论。)

我们可以使用谷歌浏览器的移动端调试工具,来访问百度的搜索结果,可以看到网页明显被缩小了,而且页面宽度定格在980px(不信的话大家可以试试)。

(这种情况我也就不给大家演示了,这明显是一个显而易见的道理,比如你在pc端的网页放在手机上能一样吗?)

而且,不同手机的实际宽度是不一样的。

好在HTML给我们提供了一个关键字device-width ,该关键是读取当前移动设备的宽度。

因此,我们只需要使用下面的代码,即可让所有移动设备的视口宽度和其自身的宽度相等。

< meta name=”viewport” content=”width=device-width”>

2.移动端误触解决办法

< meta name=”viewport” content=”width=device-width, initial-scale=1.0, min

imum-scale=1.0, maximum-scale=1.0, user-scalable=0″>

解析:

initial-scale=1.0 :初始缩放比例为1.0(原始大小),这句代码的目的还不是放置用户缩放的

minimum-scale=1.0 :网页最小的缩小比例为1.0(原始大小),设置这句代码的目的是为了放置某些程序(比如JS)无意中修改了网页的缩小比例

maximum-scale=1.0 :网页最大的放大比例为1.0(原始大小),设置这句代码的目的是为了放置某些程序(比如JS)无意中修改了网页的放大比例

user-scalable=0 :这句代码才是不允许用户对网页进行缩放

其实这就是禁止缩放,在手机端写出的页面将会无法整体左右滑动(当然,想要内部滑动可以自己设置啊),正常情况下,我们都会应用到上面的那一串代码(在这里说个题外话,我这两天做项目就有一次忘记添加这段代码,结果找半天找不出来原因,后来一问我的授课老师才发现原因(笑哭))。

3.移动端尺寸

是同一个网页在不同尺寸手机中的效果。仔细观察,你会发现,网页中的很多元素,随着视口的宽度变大,尺寸也会随之变大,无论是字体、高度、间隙都有这样的特点(这当然不会是响应式布局啦,毕竟响应式布局那么麻烦,脑子有坑才会一点一点的去调吧)。

这样一来,就要求我们在开发移动端的页面时,当遇到字体大小、宽高、margin、padding等尺寸类的属性时,不能设置固定的像素值。

注:border边框大小除外

(既然有问题,怎么会没有解决办法呢?我已经给大家写好啦,感谢我吧!)

解决方法:

写一段JS代码,应用到网页

!(function(win, doc) {

function setFontSize() {

var winWidth = window.innerWidth;

doc.documentElement.style.fontSize = (winWidth / 设计稿宽度) * 比例

+ ‘px’;}

var evt = ‘onorientationchange’ in win ? ‘orientationchange’ : ‘resize’;

var timer = null;

win.addEventListener(evt, function() {clearTimeout(timer);

timer = setTimeout(setFontSize, 300);}, false);

win.addEventListener(“pageshow”, function(e) {if (e.persisted) {

clearTimeout(timer);timer = setTimeout(setFontSize, 300);

}

}, false);

setFontSize();

}(window, document));

注:将上述代码中的 设计稿宽度 替换为设计稿的实际宽度,比如1080(不要加单位px)

注2:将上述代码中的 比例 替换为一个合适的值,比如100(推荐而已,你也可以设置为其他的数值)

替换之后,代码格式自然跟着改变:

be55eb25909e4797bcd054f4c241e9dc.png

这段代码始终在监视视口宽度变化,始终保证:

根元素html的字体大小 = (视口宽度 / 1080) * 100【呐呐,就是改这个乘号后面的数值,看到了吗?】

4.rem

rem单位是相对于根元素html字体大小的(如果根元素没有设置字体大小,则相对于基准字号)。而现在,根元素的字体大小,正好反映了视口的宽度。

于是,我们只需要将各种尺寸的值,使用rem作为单位,就可以适应视口宽度的变化了

rem值 = 设计稿中的尺寸 / 100(重点!!!这个100就是相对于上面的*100。)

比如,设计稿中某个元素的宽度为100像素,那么应该设置它的宽度为 1rem ,这样一来,当视口尺寸等于设计稿尺寸1080时,根元素的字体大小为(1080/1080)*100 = 100px ,它的宽度

为 1rem = 100px ;如果视口尺寸变小了,比如变成了375,那么根元素的字体大小为(375/1080)*100 = 34.72px ,那么它的宽度为 1rem = 34.72px 。这样就完美的和设计稿比例一致了。

注意:在移动端,如果使用了背景图(比如雪碧图),记得用同样的方式调整背景图的尺寸。

题外话:移动端看上去是不是很麻烦?视口那么小,还要引入各种东西,里面要添加的又杂又乱,还要计算数值,是不是很麻烦?

其实移动端是很简单的,计算数值问题大家可以使用calc()【括号内输入加减乘除就好了,系统会自动帮你计算最后结果的值的】

而且,无论任何数值,在经过一切计算后,在浏览器中表现出来的都会是PX为单位的数值!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152680.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月24日 上午10:16
下一篇 2022年6月24日 上午10:16


相关推荐

  • oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)…

    oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)…摘要:传统的教学模式对计算机专业学生的能力培养存在着诸多问题,而OJ(OnlineJudge在线检测程序源代码)平台为计算机教学提供了新的思路,因为OJ平台在学生日常训练方面有一套行之有效的机制,所以对学生的学习兴趣、分析解决问题能力、创新能力等方面的培养都起到了积极的推动作用,OJ平台还可以对学生实践能力进行最直接的考核,因此将OJ平台引入计算机专业教学,可实现以平台促教学,以平台促教改。关键词…

    2022年6月16日
    32
  • moxa串口服务器网页版用户名密码,moxa串口服务器设置密码

    moxa串口服务器设置密码内容精选换一换登录Windows操作系统的弹性云服务器时,需使用密码方式登录。因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密码(Administrator帐户或Cloudbase-init设置的帐户)。该密码为随机密码,安全性高,请放心使用。请根据您的个人需求,通过管理控制台或API方式获取Windo登录Windows…

    2022年4月6日
    137
  • SC命令(windows服务开启/禁用)

    SC命令(windows服务开启/禁用)

    2021年9月12日
    111
  • Worldpress常规利用思路

    Worldpress常规利用思路文章目录 0x01 弱口令利用 0x02 插件漏洞利用 worldpress 是一款主流的博客系统 但是关于它的漏洞也层出不穷 这次是因为一次 CTF 靶场遇到此类情况 顺便做个简单记录 worldpress 系统本身比较安全 但是因为它可以自定义插件 很多时候因为插件作者安全开发的能力有高有低 导致许多安全漏洞的出现 0x01 弱口令利用后台默认地址为 xxxx wp admin 没有验证码可以暴力激活成功教程 常见用户名 admin worldpress system 等 进入后台后的利用 1 上传主题包 gets

    2026年3月19日
    2
  • 【目标检测】RCNN算法详解[通俗易懂]

    【目标检测】RCNN算法详解[通俗易懂]深度学习用于目标检测的RCNN算法

    2022年10月13日
    5
  • tkmapper教程_trello怎么用

    tkmapper教程_trello怎么用tkMappertkMapper整合整合mybatis依赖配置类启动类扫描整合tkMapper依赖修改启动类的`@MapperScan`注解的包tkMapper使用创建数据表创建实体类创建Mapper接口测试tkMapper的常用方法增删改添加修改删除查询查询所有根据主键查询条件查询分页查询带条件分页查询基于MyBatis提供了很多第三方插件,这些插件通常可以完成数据操作方法的封装(GeneralDAO)、数据库逆向工程工作(根据数据表生成实体类、生成映射文件)tkMapper就是一个MyBatis

    2022年10月7日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号