如何使移动端项目在PC端依然可以良好的展示

1 篇文章 0 订阅

前置条件: 移动端适配使用的是如下适配方案, 也就是使用的rem作为适配,该示例中用到的是13.333333vw, 使得1rem等于100px。

html{
    font-size: 13.333333vw;
}
body {
	font-size: 0.14rem; // 等于 14px
}

问题现状: 移动端页面在pc端页面显示异常
先写一段简单的vue代码,生成4个盒子和一个底部fixed定位的盒子。

<div class="list" v-for="i in 4" style="height: 1rem;border: 1px solid;">
     这是一段文本 {{ i }}, font-size: 0.18rem
</div>
 <div class="bottom" style="background: gray;position: fixed; bottom: 0;height: 2rem;width: 100%;color:#fff">
     fixed定位
 </div>

以上代码在移动端显示如下:
在这里插入图片描述

在pc端展示如下:
在这里插入图片描述

以上对比很明显发现pc端访问大了很多,明显底部fixed定位遮住了部分盒子内容,在pc端查看时就很不友好。

问题根源: 适配是使用的rem根据html的font-size做适配,在pc端的时候font-size会变得很大,同时没有固定盒子的宽度,整个页面会充满屏幕,所以就导致访问出问题,知道了问题所在那么也就有了对应的解决方案了。

解决方案:

  1. 解决根元素无限变大
  2. 限制pc端显示页面最大宽度
  3. 解决fixed定位相对于窗口,修正为相对于body
  4. 将滚动条宽度设置为0,避免滚动条宽度占用内容宽度

解决方案:

//判断是否是手机端
 function isMobile() {
  return navigator.userAgent.match(
    /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
  );
}
// 如果不是我们则认为是pc端
if (!isMobile()) {
  let html = document.querySelector("html");
  let body = document.querySelector("body");
  // 设置为 50px, 为什么不是100px, 因为实际开发时都是二倍图,所以写50px;
  html.style.fontSize = "50px";
  // 页面始终为一屏高
  html.style.height = "100vh";
  // 使body居中
  html.style.display = "flex";
  html.style.justifyContent = "center";
  html.style.alignItems = "center";
  html.style.overflow = "hidden";
// 固定宽度
  body.style.width = "375px";
 // 固定高度
  body.style.height = "812px";
  // 加个阴影点缀一下。
  body.style.boxShadow = "0 0 20px rgba(0, 0, 0, .5)";
  // 最后重点:pc端fixed定位,修正为body, 而不是视口
  body.style.transform = "translate(0)";
}

重点注意:body.style.transform = “translate(0)”; 很重要,不然应用了fiexd定位的相对的还是窗口,宽度就全屏了,而不是 375px了。

如下图:来自MDN对fixed的描述
在这里插入图片描述

最后将pc端滚动条宽度改成 0

/* 设置滚动条的样式 */
::-webkit-scrollbar {
    width:0;
}

最后就完美的解决的pc端访问移动端项目啦, 如下图:
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 可以通过响应式布局和 CSS 媒体查询来适配不同的设备,同时也可以使用第三方库如 Vant、Element UI 等来实现更好的适配效果。在开发时,可以使用 rem 或者 vw/vh 单位来实现页面元素的自适应。同时,也可以使用 Vue Router 来实现路由跳转和页面切换的效果。 ### 回答2: Vue适配PC和手机端的方式有几种。 一种常见的方式是使用响应式设计。Vue提供了响应式布局的特性,可以根据设备的屏幕大小和分辨率自动调整页面布局和样式。通过使用Vue的响应式设计,我们可以根据不同的设备,例如PC和手机,来显示不同的布局和样式。这样用户在不同设备上访问网页时可以得到最优的浏览体验。 另一种方式是使用Vue的动态组件。动态组件可以根据设备的类型动态加载不同的组件。比如,在PC端加载一个PC端特有的组件,而在手机端加载一个手机端特有的组件。这样可以根据设备的特性来提供不同的功能和交互。 Vue还提供了一些vue-cli的插件,例如vue-router和vuex,可以帮助我们更方便地进行PC和手机端的适配。通过使用这些插件,我们可以根据设备的特性来决定加载不同的路由和状态管理。 总之,Vue适配PC和手机端的方式有很多种,可以根据具体的项目需求和实际情况选择合适的方式来进行适配。这样可以提供更好的用户体验,同时提高网页的可用性和易用性。 ### 回答3: Vue 是一种用于构建用户界面的开发框架,它可以用于适配 PC 和手机端。为了实现 PC 和手机端的适配,我们可以采取以下几种方式。 首先,可以使用响应式布局来实现 PC 和手机端的适配。Vue 提供了许多响应式布局的工具,例如使用栅格系统来划分页面布局,通过媒体查询设置不同的样式等。通过合理地设置元素的宽度、高度、布局和间距等属性,可以使页面在不同尺寸的设备上均能良好展示。 其次,可以通过使用 Vue Router 来实现 PC 和手机端的路由适配。Vue Router 是 Vue 的官方路由器,它可以帮助我们管理应用程序的路由。通过配置不同的路由规则和组件,可以根据设备的不同为 PC 和手机端提供不同的页面和功能。例如,在 PC 端可以显示导航栏和侧边栏,而在手机端则可以隐藏这些元素以适应较小的屏幕。 另外,可以使用 Vue 的移动端框架来适配手机端。Vue 提供了一些专门为移动端开发设计的框架,如 Vant、Mint UI 等。这些框架中包含了许多适用于手机端的组件和样式,可以帮助我们快速地搭建出符合手机端界面设计标准的页面。 综上所述,通过响应式布局、Vue Router 和移动端框架的运用,我们可以很好地实现 Vue 在 PC 和手机端的适配。这些方法可以使得我们的应用程序在不同的设备上都能够具备良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值