pc端与移动端适配 解决方案

这篇具有很好参考价值的文章主要介绍了pc端与移动端适配 解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一般网站实现pc端与移动端适配的需求,方案有两个:

1、一套页面,从设计时就考虑到跨设备适配,响应式的一步到位;

2、开发两套页面,根据设备尺寸加载加载不同的资源,目前已经不常见了;

一:响应式方案

做一个响应式的页面。即只用一个链接,用媒体查询来控制样式。同一个链接pc和移动端打开都可以适配,有的模块是用两套不一样的css样式。

最近做了一个匹配平板和手机的页面,我用的媒体查询是768px。因为ipad的尺寸是1366*768

当设备宽度最大是768时说明该设备是手机或者是平板的竖屏,用一套样式;
如果设备宽度最小是768时,说明是平板横屏或者电脑屏幕,用另外一套样式。如下

@media only screen
and (min-device-width : 768px){
   .PaperTitle{
       padding: 0 8rem;
   }
}
@media only screen
and (max-device-width : 768px) {
    .PaperTitle{
	padding: 0 3rem;
    }
}

如果要用响应式的效果,最好从UI设计时就考虑到适配问题。设置宽度时,注意尽量用比率代替具体的数字。多测试页面在不同分辨率下的宽度展示效果。

比如网页的内容宽度其实是1100px,两边就做留白处理。不管用户的电脑有多宽,我们展示完1100px宽度的网页后,让网页居中,剩下的宽度平分在两边即可。这样我们能保证网页内的各个空间宽度比例在最好的范围内。

以前很多设计网页内容的宽度是铺满整个屏幕的,在现在的带鱼屏上就会把网页拉伸的非常难看。

我的博客就是采取的响应式方案,使用媒体查询的方式实现,具体地址:孙权的博客

二:做两套页面的方案

对外宣传用同一个链接,但是该链接在移动端与pc端打开,会分别自动跳转到两个不同的详细的链接。

js判断是pc或移动端核心代码如下:

<script type="text/javascript">
   var os = function () {
       var ua = navigator.userAgent,
       isWindowsPhone = /(?:Windows Phone)/.test(ua),
       isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
       isAndroid = /(?:Android)/.test(ua),
       isFireFox = /(?:Firefox)/.test(ua),
       isChrome = /(?:Chrome|CriOS)/.test(ua),
       isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid &&       !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
       isPhone = /(?:iPhone)/.test(ua) && !isTablet,
       isPc = !isPhone && !isAndroid && !isSymbian;
       
       return {
              isTablet: isTablet,
              isPhone: isPhone,
              isAndroid: isAndroid,
              isPc: isPc
       };
   }();

   // pc时加载一套页面
   if(os.isPc){
      location.replace("http://www.onlymid.com.cn/"); 
   }
       
   // 移动端时加载另外一套页面 
   if (os.isAndroid || os.isPhone) { 
      location.replace('http://www.onlymid.com.cn/html/2016shujia/wap/');
   } else if (os.isTablet) {
      location.replace('http://www.onlymid.com.cn/html/2016shujia/wap/');
   }
</script>

三:响应式案例

1:个人博客用户端

下面的博客是我自己开发的,我不懂UI设计,页面都是自己凭感觉拼凑出来的。我的想法是移动端屏幕较小,能展示的内容有限。移动端需要突出重点,放弃一些辅助功能。

比如我的首页主要功能是文章列表,在移动端我就把热门文章排序、文章分类、源码入口等都给舍弃掉了。用媒体查询,把对应的class在下屏幕时直接设置display:none

PC上的展示

pc端与移动端适配 解决方案

在移动设备的展示

pc端与移动端适配 解决方案

移动端首页

pc端与移动端适配 解决方案

2:管理后台

对于管理后台的移动端适配,我觉得主要在菜单这块。PC端管理后台一般都是侧边导航栏,移动端当然是放不下的,所以为了响应式展示,页面的整个架构要注意调整。

其余依旧是对某些非必要的功能做删除与合并,比如我删掉了几个入口,也把切换账号功能有独立的位置区域合并到菜单里。对于管理后台的响应式开发,是会比用户端多花一些心思。

PC上的展示

pc端与移动端适配 解决方案

移动设备上的展示

pc端与移动端适配 解决方案

3:案例地址

上面博客的演示地址和源码地址分享给大家

  • 博客用户端:孙权的博客
  • 博客管理端:sunq’s blog admin
  • 博客的源码:SunQQQ - Overview

下面是两个我当时开发博客时参考的案例,这里也分享给大家。一个是QQ的官网,一个是某公司的官网。

  • I’m QQ - 每一天,乐在沟通
  • 拜特尔微信社群

四:注意点

chrome浏览器在F12状态下,鼠标调整浏览器大小时,在右上角可以看到当前的浏览器尺寸。在测试不同宽度下页面展示状态时比较方便。

各大浏览器的移动端模拟器,对我们的开发带来了很多便利。但是有时候会有bug,比如fixed定位突然不起效。不是你代码的原因,是模拟器的问题,从新打开页签即可。在模拟器上开发完,注意也多在真实移动设备上测试。

五:获取浏览器分辨率

1、分辨率

有时候我们会记录操作日志,了解用户们都用什么分辨率。这时需要这样获取

window.screen.width 
window.screen.height

需要注意的是,我们js获取的分辨率是用户缩放之后的。所以用户在电脑配置里看到的分辨率,并不一定就是实际的分辨率。

比如,下面用户设置分辨率是1920 *1080,他以为分辨率就真的是这么多了。

其实他还设置了缩放125%,所以真实分辨率是1920/125% 1080/125%,即1536*864。具体如下图
pc端与移动端适配 解决方案
这样配置的
pc端与移动端适配 解决方案

真实的分辨率

2、浏览器内容区域

有时我们需用动态的计算出,应该给某个区域设置多高的高度。这时就要用到浏览器的可视窗口尺寸。

window.innerHeight取到的是浏览器操作栏下沿到工具栏上沿的距离,即真正页面展示的区域

window.screen.height // 整个屏幕的高度
window.innerHeight // 浏览器展示网页区域的高度

下图为window.innerHeight的高度
pc端与移动端适配 解决方案

下图为window.screen.height的高度,即分辨率

pc端与移动端适配 解决方案文章来源地址https://www.toymoban.com/news/detail-443238.html

到了这里,关于pc端与移动端适配 解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript实现手写签名,可触屏手写,支持移动端与PC端双端保存

    1.HTML模板 2.获取DOM元素和定义变量 3.创建两个canvas元素,并设置它们的宽度和高度 4.绑定触摸事件:touchstart, touchmove, touchend和click 5.实现触摸事件回调函数:startDrawing, draw和stopDrawing 6.实现绘制线段的函数:drawLine 7.实现清除签名的函数:clearSignature 8.实现保存签名的函数:

    2024年01月16日
    浏览(50)
  • fiddler抓包PC微信小程序失败的解决方案

    今天突然电脑端微信小程序抓不到包了 看到大佬们说是因为微信小程序端的架构升级了。 解决方案: 任意打开一个小程序,打开任务管理器,找到对应的进程。右键打开文件位置。 看到WechatApp.exe变成了WechatAppex.exe了,应该是升级了。 退出电脑微信,右键结束小程序进程。

    2024年02月12日
    浏览(52)
  • uniapp宽屏开发PC端方案,及衍生问题解决

    需要在uniapp的pages.json文件中配置   正常电脑没有高于3840像素宽的,这个程度就足以; 在使用时,只要正常的按照1920/750 = 2.56的比例,在HBuliderX中进行比例配置,使用时进行px转化rpx即可。     调整完rpx后发现的问题: 问题一、pc端字体过大 问题描述: 但是在大屏中uniapp的

    2024年02月05日
    浏览(38)
  • vue项目pc端和移动端适配

    一、样式中根据设计稿确定缩放比例(可以设置全局或者部分页面) 二、监听窗口大小改变,设置根字体大小 created() { // 获取当前设备的宽度,设置rem的根字体大小 let width = window.innerWidth; width = width = 1200 ? 1200 : width; const htmlObj = document.getElementsByTagName(“html”)[0]; htmlObj.sty

    2023年04月09日
    浏览(47)
  • 最简单的大屏适配解决方案---autofit.js

    在工作开发当中,我们避免不了要去做大屏。那么做大屏其实最难的点和最核心的问题就是适配, 下面为大家介绍最好用的大屏解决方案——autofit.js。 效果图展示,可根据窗口大小进行自动适配。 使用方法: 1.npm下载: 2.项目中引入使用: 3.init()初始化加载:注意一定要

    2024年02月08日
    浏览(43)
  • 现代 CSS 解决方案:文字颜色自动适配背景色!

    在 23 年的 CSS 新特性中,有一个非常重要的功能更新 -- 相对颜色 。 简单而言,相对颜色的功能,让我们在 CSS 中,对颜色有了更为强大的掌控能力。 其核心功能就是,让我们 能够基于一个现有颜色 A,通过一定的转换规则,快速生成我们想要的颜色 B 。 其功能能够涵盖:

    2024年02月03日
    浏览(54)
  • 小程序限制PC端打开 只可以在手机端打开的解决方案

    电脑版微信是支持运行小程序的,但是某一些小程序是限制在PC上打开的,那么是怎么判断打开的设备是否是Pc端呢 官方文档给出的方案是 一般都是通过Ua来识别的,大多数小程序只要内存更改下Ua就可以在PC端上使用运行小程序了

    2024年02月12日
    浏览(179)
  • uniapp小程序横屏后适配问题(解决方案)

    问题一: 通常我们在小程序端切换横屏后会出现字体或宽高大小出现适配问题 解决方法 使用vmin来解决适配问题(使用rpx转换vmin) rpx与vmin的换算关系:5rpx 等价 calc(5vmin * 100 / 750)== 简单写==5rpx 等价 calc(5vmin / 7.5) 下面来看下效果(已经实现了哦) 竖屏模式下 横屏模式下 横

    2024年02月13日
    浏览(54)
  • python&anconda 系列:Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向)

    前言 Pycharm在debug时总是出现一些恼人的问题,以下是博主在训练中遇到的问题及在网上找到的可用解决方案: 一、Frames are not available 在代码处多设置几个断点即可。 好像还有另一种原因,博主自己没遇到(希望之后也别遇到),先把解决方案贴在这里(详情见 二. Pycharm在

    2024年02月01日
    浏览(48)
  • 智慧工地解决方案,智慧工地项目管理系统源码,支持大屏端、PC端、手机端、平板端

    智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VRAR等技术相结合,为工程项目管理提供先进技术手段,构建工地现场智能监控和控制体系,弥补传统方法在监管中的缺陷,最线实现项目对人、机、料、法、环的全方位实时监控。支持多端展示(大屏

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包