手机端页面rem宽度自适应脚本

下面是关于“手机端页面rem宽度自适应脚本”的完整攻略。

什么是rem?

rem是一种可以相对于根元素大小进行调整的单位,它可以用于替代像素作为页面布局的单位。使用rem单位的一个好处是,整个页面的宽度可以根据页面宽度大小进行自动调整,达到适配不同的设备的屏幕。

rem宽度自适应脚本的实现

我们可以通过javascript编写自适应rem脚本,根据设备宽度动态改变html的font-size大小,从而实现自适应。首先,我们可以在head标签里添加以下代码:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<script type="text/javascript">
    // 获取当前页面宽度并将其存储在变量中
    var pageWidth = document.documentElement.clientWidth;
    // 如果页面宽度大于640,则设置rem大小为100px
    if (pageWidth > 640) {
        document.documentElement.style.fontSize = "100px";
    } 
    // 否则计算rem大小并设置
    else {
        document.documentElement.style.fontSize = 100 * (pageWidth / 640) + 'px';
    }
</script>

上述代码基本实现了rem的自适应,不过在不同的设备上可能会出现问题,需要进一步调整。

常见问题及解决方法

问题1:不同设备上rem不一致

解决方法:

function changeRootFontSize() {
  var BASE_FONT_SIZE = 100;
  var baseWidth = 750;
  var clientWidth = document.documentElement.clientWidth || window.innerWidth;
  var bili = clientWidth/baseWidth;
  var basefontsize = bili*BASE_FONT_SIZE;
  document.documentElement.style.fontSize = basefontsize + 'px';
}
changeRootFontSize();
window.addEventListener("resize",changeRootFontSize,false);

上述代码中的baseWidth表示设计稿的宽度,通过根据设计稿宽度计算出每个设备应该设置的font-size大小。bili则为计算出的比例系数,即当前浏览器宽度与设计稿宽度的比值,用于根据比例计算实际设备需要设置的font-size。

我们同时添加了一个window resize事件监听,用于页面大小发生变化时重新计算font-size大小。

问题2:在新设备上rem发生变化

解决方法:

function changeRootFontSize() {
  var BASE_FONT_SIZE = 100;
  var baseWidth = 750;
  var clientWidth = document.documentElement.clientWidth || window.innerWidth;
  var bili = clientWidth/baseWidth;
  var basefontsize = bili*BASE_FONT_SIZE;
  document.documentElement.style.fontSize = basefontsize + 'px';
}
changeRootFontSize();
window.addEventListener("resize",changeRootFontSize,false);
window.addEventListener("orientationchange",changeRootFontSize,false);

新增了一个window orientationchange事件监听,用于在屏幕旋转时触发重新计算font-size大小。

总结

通过以上展示的几种方法,我们可以实现手机端页面rem宽度自适应脚本。通过添加一些常见问题的解决方案,我们可以让这个脚本更加健壮,更适合实际使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手机端页面rem宽度自适应脚本 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 最基本的几种CSS文字滤镜效果

    最基本的几种CSS文字滤镜效果攻略 CSS(层叠样式表)可以通过其文字滤镜效果来使网页更加美观,增强用户体验效果。以下是最基本且常用的几种CSS文字滤镜效果,我们将分步骤详细讲解它们的实现过程。 1. 文字阴影 文字阴影可以让文字看起来更加立体,效果更加突出。如下是实现文字阴影的示例代码: /* 添加黑色文字阴影 */ text-shadow: 1px 1p…

    css 2023年6月9日
    00
  • css 滤镜效果主要对HTML标记设置滤镜效果

    CSS滤镜是一种CSS属性,它允许你在内容上覆盖一层透明的、可用的效果。 这些效果通常用于图像,但还可以应用于其他元素。 准备 首先,我们需要在HTML中准备一些元素,然后在CSS中添加滤镜。 <div class="container"> <img src="example.jpg" alt=&qu…

    css 2023年6月9日
    00
  • 基于纯JS实现多张图片的懒加载Lazy过程解析

    下面我来详细讲解“基于纯JS实现多张图片的懒加载Lazy过程解析”的完整攻略。 背景 在传统的网页中,所有的图片都会在页面加载的时候一次性加载出来,这样会导致网页的加载速度变慢。为了提升网页的加载速度和用户的交互体验,我们可以使用懒加载技术。 懒加载是指在页面滚动到特定区域时,才开始加载相应的资源。通过懒加载,可以减少网页的加载时间,提升网页的性能,并且能够…

    css 2023年6月10日
    00
  • Ant Design Vue 修改表格头部样式的详细代码

    Ant Design Vue 是一套基于 Vue.js 实现的优美 UI 组件库,开发者可以使用默认样式快速创建出美观和易于理解的交互界面。其中,Ant Design Vue 的表格组件是非常常用的组件之一,但有时候我们需要对表格的头部样式进行一些自定义,让它更符合我们设计的需求。下面是 Ant Design Vue 修改表格头部样式的攻略: 修改表格头部背…

    css 2023年6月10日
    00
  • 详解mpvue小程序中怎么引入iconfont字体图标

    下面是关于“详解mpvue小程序中怎么引入iconfont字体图标”的完整攻略。 步骤一:创建iconfont项目 1.进入iconfont官网,创建一个项目。 2.选择你所需要的字体图标并添加到购物车,然后通过购物车下载所需要的字体文件。 3.解压字体文件,将其中的iconfont.ttf文件拷贝到src目录下的common文件夹中。 步骤二:配置webp…

    css 2023年6月9日
    00
  • JS组件系列之Bootstrap Icon图标选择组件

    JS组件系列之Bootstrap Icon图标选择组件 简介 Bootstrap Icon图标选择组件是一个基于Bootstrap框架,使用JavaScript实现的可自定义图标选择器,用于在用户操作时动态增加图标样式。该组件能够轻松地实现输入框内的图标选择功能,使得页面的图标选择更加便捷。 安装 下载文件 这个组件是一个JavaScript文件,可以从官网…

    css 2023年6月9日
    00
  • 钉钉怎么导入外部的excel表格数据?

    钉钉是一款功能强大的企业管理软件,它不仅可以帮助企业高效沟通、快速决策、高效协作,还支持多种数据导入方式。下面是详细讲解如何导入外部的Excel表格数据的完整攻略: 步骤一:打开钉钉应用 在手机或电脑上打开钉钉应用,并进入需要导入外部Excel表格数据的群聊或普通聊天窗口。 步骤二:创建数据表 点击右下角的“+”号,选择“新建表格”,进入数据表编辑页面。 步…

    css 2023年6月10日
    00
  • 地址栏上的一段语句,改变页面的风格。(教程)

    首先我们需要知道用来改变页面风格的语句是CSS,CSS可以通过在HTML文档的标签内或通过外部CSS样式表来应用于网页中。而改变地址栏上的语句则是使用HTML5的History API中的pushState()方法。 具体的步骤如下: 在HTML文档的标签内或通过外部CSS样式表来定义需要的CSS样式。 例如,在标签内定义一个id为”dark-style”的…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部