手机端页面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日

相关文章

  • 网页设计色彩搭配:更轻更平淡的颜色设计

    为了更好的呈现网页内容,色彩的搭配是非常重要的一环。颜色的规律和相互影响将直接影响网页的视觉效果,为了让网页更轻更平淡,我们需要对网页色彩的搭配有一定的规划。下面将介绍一些常用的网页色彩搭配方法,希望对各位网页设计者有所帮助。 1. 简洁明亮色 这种颜色组合方式基本上是白色+柔和的灰色+淡淡的黄色或绿色构成的。显然,这种颜色搭配方法突出了一个”简洁明亮”的感…

    css 2023年6月9日
    00
  • HTML5实现动画效果的方式汇总

    下面是关于“HTML5实现动画效果的方式汇总”完整攻略的详细讲解。 1. 基础动画技术 CSS3 动画 CSS3 动画是一种使用 CSS3 属性实现动画效果的方式,该方式几乎覆盖了所有动画效果。它的优点是简单、易实现,缺点是需要考虑浏览器兼容性。 该方式需要先定义动画关键帧,再将关键帧关联到动画对象上,最后定义动画的持续时间、速度等参数。下面是一个简单的 C…

    css 2023年6月9日
    00
  • Dreamweaver中不用CSS样式为表格添加细线边框的方法

    在Dreamweaver中不使用CSS样式为表格添加细线边框的方法有两种,分别是使用插入表格边框属性进行添加和使用HTML代码手动添加。 使用插入表格边框属性进行添加 打开Dreamweaver软件,选择“文件”菜单,点击“新建”创建一个新文档。 点击“插入”菜单,选择“表格”选项,填写表格中的行数和列数等属性,然后点击“确定”按钮。 选中表格中的所有单元格…

    css 2023年6月10日
    00
  • 你需要知道的TypeScript高级类型总结

    你需要知道的TypeScript高级类型总结 前言 TypeScript 是静态类型语言,相比于 JavaScript,它更加安全,且能提供更好的自动化工具支持。在使用 TypeScript 进行代码编写时,我们可能会涉及到一些比较高级的类型语法。本文将会总结一些 TypeScirpt 高级类型的用法,帮助初学者更好地理解和应用。 Partial Parti…

    css 2023年6月9日
    00
  • 详解CSS的table-layout属性的用法

    下面是详解CSS的table-layout属性的用法的完整攻略。 什么是table-layout属性? 在CSS中,table-layout属性用来控制HTML表格的自动调整方式。table-layout属性有两个可能的值:auto和fixed。 如果table-layout设置为auto,则浏览器会根据内容自动设置列宽和表格宽度,这通常会导致表格大小不一。…

    css 2023年6月10日
    00
  • CSS极坐标的实例代码

    CSS极坐标是CSS3新增的一个坐标系统,与传统的直角坐标系有所不同,可以实现独特的排版和布局效果。下面,我们来详细讲解如何使用CSS极坐标进行布局排版。 一、基本语法 CSS极坐标的基本语法如下: .selector { /* 引用渐变的方法/函数 */ background: radial-gradient(circle at X轴 Y轴, 渐变起始颜色…

    css 2023年6月10日
    00
  • css设置Overflow实现隐藏滚动条的同时又可以滚动

    下面是关于如何通过设置CSS的Overflow属性实现隐藏滚动条的同时又可以滚动的详细攻略: 一、背景知识: 我们都知道,Overflow属性决定了一个元素的内容区域超出容器后的表现方式。当Overflow属性的值为”hidden”时,超出容器的部分就会被隐藏掉;当Overflow属性的值为”scroll”或”auto”时,超出容器的部分就会被显示,并出现滚…

    css 2023年6月10日
    00
  • CSS3径向渐变radial-gradient实现波浪边框和内倒角的方法

    本文将为大家详细讲解“CSS3径向渐变radial-gradient实现波浪边框和内倒角的方法”的完整攻略。 1. 什么是径向渐变? 径向渐变(radial-gradient)是CSS3新增的一种渐变方式,它是从一个圆形、椭圆形或球形的中心开始改变颜色的过渡效果。径向渐变可以用来创建许多不同的特效,例如波浪边框和内倒角。 2. 实现径向渐变波浪边框的方法: …

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