js+rem动态计算font-size的大小,适配各种手机设备

h5 App 适配-移动前端自适应适配布局解决方案(亲测可用) 1.网易h5 App 适配 先来看看网易在不同分辨率下,呈现的效果: 从上面几张图可以看出,随着分辨率的增大,页面的效果会发生明显变化,主要体现在各个元素的宽高与间距。375680的比320680的导航栏明显要高。能够达到这种效果的根本原因就是因为网易页面里除了font-size之外的其它css尺寸都使用了rem作为单位,比如你看导航栏的高度设置代码: 可是在本文第1部分提到,使用rem布局结合在html上根据不同分辨率设置不同font-size有很多不好解决的麻烦,网易是如何解决的呢?最根本的原因在于, 阅读详情

转载: http://www.jianshu.com/p/afbf518cc891

需求:

在不同的移动终端设备中实现,UI设计稿的等比例适配。

方案:

布局排版都用rem做单位,然后不同宽度的屏,js动态计算根节点的font-size。

假设设计稿是宽750px来做的,书写css方便计算考虑,根节点的font-size假定为100px,得出设备宽为7.5rem。设计稿中标注的任何px数值都可以换算成px/100的rem值。

就是说,每一个设备的宽度都定为7.5个rem,然后宽度非750px的设备里,就需要用JS对font-size做动态计算。

换算关系为:根节点的font-size=设备宽度/7.5。

即:document.documentElement.style.fontSize = document.documentElement.clientWidth*(window.devicePixelRatio||1) / 7.5 + ‘px’;

注:需要考虑到dpr,即一倍屏两倍屏的问题。

http://mobile.51cto.com/web-484304.htm

备注:

每个浏览器对最小font-size的支持,不尽相同。js动态计算的font-size值太小时,会导致超小屏上UI显示效果比预想中的偏大。

比如,font-size计算是10px,但是chrome只支持到12px,他就按照12px去渲染了,这就会导致UI偏大了。(上面方案中的100px肯定是没有问题的)

具体表现:

浏览器 最小支持font-size

PC chrome 12px (可以通过安装Advanced Font Settings插件支持到6px)

Android和iOS 1px(只测试了主流浏览器,未做充分测试)

cordova(Android和iOS) 9px

 

//orientationchange方向改变事件

(function (doc, win) {

var docEl = doc.documentElement,//根元素html

//判断窗口有没有orientationchange这个方法,有就赋值给一个变量,没有就返回resize方法。

resizeEvt = ‘orientationchange’ in window ? ‘orientationchange’ : ‘resize’,

recalc = function () {

var clientWidth = docEl.clientWidth;

if (!clientWidth) return;

//把document的fontSize大小设置成跟窗口成一定比例的大小,从而实现响应式效果。

docEl.style.fontSize = 20 * (clientWidth / 320) + ‘px’;

};

//alert(docEl)

if (!doc.addEventListener) return;

win.addEventListener(resizeEvt, recalc, false);//addEventListener事件方法接受三个参数:第一个是事件名称比如点击事件onclick,第二个是要执行的函数,第三个是布尔值

doc.addEventListener(‘DOMContentLoaded’, recalc, false)//绑定浏览器缩放与加载时间

})(document, window);

//alert(document.documentElement.clientWidth/320)

移动端适配rem+vw 前言 对于做移动端开发的同学来说,rem这个单位并不陌生。通常我们做移动端适配,主流的方案大致有两种 淘宝flexible.js 计算设备像素比,dpr=物理像素/css像素 根据设备像素比,将页面宽乘以设备像素比,然后去计算rem,这样页面所有元素都会是正常的2倍 然后通过meta标签的viewport对页面进行缩放,使得页面恢复正常 根html的font-size值 = 屏幕宽度*设备像素比/10 以iphone6 375为例,1rem = 375 * 2 / 10 = 75px 然后在项目里写 阅读详情

相关推荐

JS动态计算移动端rem的解决方案

在做移动端web app的时候,众所周知,移动设备分辨率五花八门,虽然我们可以通过CSS3的media query来实现适配,例如下面这样: html { font-size : 20px; } @media only screen and (min-width: 401px){ html { font-size: 25px !important; } } @media only screen and (min-width: 428px){ html { font-size: 26.75px !important; } } @media only screen and (min-width:

js移动端自适应动态设置html的fontsize

JS设计移动端页面时会遇到自适应问题,大多数都知道用rem来设置页面的比例大小,下面就来说几种常见的html中的fontsize设置方法: 1.使用flexible.js插件库。 淘宝就是利用这个来设置的。重点说下第二种方法; 2.以下是比较简介的方法: $(function(){ initpage(); $(window).resize(function() { initpage(); }) .

江湖行骗老中医 750

PHP实战:5分钟搞定SM4国密加密算法集成(附完整代码)

本文详细介绍了如何在PHP项目中快速集成SM4国密加密算法,提供完整的代码实现和实际应用示例。从算法原理到核心代码解析,再到性能优化与安全实践,帮助开发者高效实现数据加密功能,满足金融、政务等领域的合规需求。

weixin_29315569的博客 354

动态改变html(根元素)的属性值font-size(移动端rem)

以屏幕宽度为计算单位,将屏幕分成固定的份数,如768(通常)、750(uni-app),将其设置为根元素的font-size。移动端 rem

文杰的博客 2554

STM32F4_LCD显示汉字

LCD显示汉字和显示图片、数字、字符的原理是一样的,都是将汉字、图片、数字以及字符转换点阵,进而通过函数扫描点阵在LCD上显示;

light_2025的博客 1万+

SAP LTMC实战指南:物料主数据高效导入全解析

本文详细解析了SAP LTMC工具在物料主数据高效导入中的实战应用,包括工具选择、项目搭建、模板定制、数据导入全流程及常见问题解决方案。重点介绍了LTMC的预置模板、LTMOM灵活配置、数据校验机制等核心功能,帮助用户快速掌握SAP数据迁移技巧,提升工作效率。

weixin_33738555的博客 435

document.documentElement.style判断浏览器是否支持Css3属性

1.document.documentElement.style 属性定义了当前浏览器支持的所有Css属性 包括带前缀的和不带前缀的 例如:animation,webkitAnimation,msAnimation等 2.判断浏览器是否支持制定的css属性 function support(cssName) { var htmlStyle = document.documentEleme...

weixin_34384915的博客 437

【比较器仿真】

比较器tran noise、pnoise仿真、噪声仿真、MC失调仿真

pickweb的博客 1万+

一篇真正教会你开发移动端页面的文章(二)

来源:HcySunYang http://hcysun.me/2015/10/19/一篇真正教会你开发移动端页面的文章-二/ 之前写了一篇文章《一篇真正教会你开发移动端一面的文章(一)》。那是本篇文章的基础,如果没有阅读过的同学可以去看看,今天就给大家带来干货,真真正正的讲到如何很好的开发一个移动端的页面 好了,让我们开始吧,从哪里开始呢?从设计图开始,即PSD稿件:移动端PSD稿件的尺寸肯定较之PC端的PSD稿件不同,具体体现在设计图的尺寸上,现在移动端的设计图尺寸大多...

tongluren381的博客 841

Fluent后台计算中Journal文件的自动化编写与优化实践

本文深入探讨了Fluent在Linux/Unix环境下进行后台计算时,Journal文件的自动化编写与优化实践。Journal文件作为Fluent后台计算的“灵魂”,是实现仿真流程自动化、保证计算可重复性与准确性的关键。文章从基础脚本骨架搭建、命令简写技巧,到进阶的参数化研究与批量计算实现,提供了详实的实战指南,帮助工程师大幅提升仿真效率。

postgres8guard的博客 756

Hypermesh静力学仿真分析与模态分析-02

hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等

Look_forward_的博客 6778

js+rem动态计算font-size的大小适配各种手机设备

需求:在不同的移动终端设备中实现,UI设计稿的等比例适配。 方案:使用js动态改变html的字体大小font-size+rem的特性,来保证最初的设计图中每个元素的尺寸比例不变,以适用于不同尺寸的设备能够正常显示。 (function (doc, win) { // 根元素html var docEl = doc.documentElement, /...

lixiaoyan93的博客 3118

单细胞测序避坑指南:为什么你的免疫组库数据总出问题?5‘转录组7个关键细节

本文深度解析了5'端单细胞测序技术在免疫组库研究中的应用与常见问题。文章从5'端建库的分子机制入手,重点剖析了其在捕获TCR/BCR序列上的独特优势,并系统梳理了从样本处理、文库构建到数据质控全流程中7个最易出错的细节,为研究者提供了一份实用的避坑指南,旨在帮助提升免疫组库数据的质量和可靠性。

weixin_29208327的博客 482

java 月份适配计算_js+rem动态计算font-size的大小适配各种手机设备

需求:在不同的移动终端设备中实现,UI设计稿的等比例适配。方案:使用js动态改变html的字体大小font-size+rem的特性,来保证最初的设计图中每个元素的尺寸比例不变,以适用于不同尺寸的设备能够正常显示。(function (doc, win) {// 根元素htmlvar docEl = doc.documentElement,// orientationchange方向改变事件(横屏或...

weixin_34980267的博客 193

YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析

(0, 1), (0, 2), (1, 3), (2, 4), # 脖子和头部(3, 5), (5, 6), (5, 7), (7, 9), (5,11),# 左臂(4,6), (6, 12), (6,8) ,(8,10),# 右臂(11, 12), (11, 13), (13, 15), #左腿(12, 14), (14, 16) #右腿keypoints是检测到的人体关键点数据,frame是图像帧,boxes是检测到的边界框信息。定义了人体关键点之间的连接关系,用于绘制人体骨架。

yolo模型训练找我,AI游戏合作找我 2313

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

第148天:js+rem动态计算font-size的大小,适配各种手机设备

需求: 在不同的移动终端设备中实现,UI设计稿的等比例适配。 方案: 布局排版都用REM做单位,然后不同宽度的屏,JS动态计算根节点的字体大小。 假设设计稿是宽750px来做的,书写的CSS方便计算考虑,根节点的字体大小假定为100像素,得出设备宽为7.5rem。设计稿中标注的任何像素数值都可以换算成PX / 100的REM值。 就是说,每一个设备的宽度都定为7.5个REM,然后宽度非7...

lelara的博客 608

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PC端自适应使用rem

做一个PC端的网页,设计图是1920X1080,要在常见屏上显示正常 ,比如:1280X720 1366X768 1440X900 1920X1080。 就要使用REM,width、height、margin、padding、left、top都采用了REM, 一、如何使用 1、PC端 当浏览器窗口变化时,内容的大小以及相对位置也会相应变化,这个依靠JS修改HTML的FONT-SIZE值实现.如下:...

weixin_44999830的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

移动端适配:动态设置html元素的font-size(页面使用rem做单位)

一、前言: 首先我们要了解的知识点: 1.物理像素(physical pixel) 我们看到的每个屏幕都是由一颗颗我们肉眼难以看到的小颗粒(物理像素)组成的。 2.逻辑像素 是计算机坐标系统中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如说CSS像素)。 3.设备的像素比(device pixel ratio)简称DPR 它的数值体现了物理像素和逻辑像素之间的关系,用公式可以计算出该设备...

winne雪 6827

rem、px、em(手机端h5页面屏幕适配的几种方法)

px px像素(pixel):相对长度单位。相对于显示器屏幕分辨率而言。pc端使用px倒也无所谓,可是在移动端,因为手机分辨率种类颇多,不可能一个个去适配,这时px就显得非常无力,所以就要考虑em和rem。 em 相对于父节点的font-size,会有一些组合的问题。 比如你把body的font-size定义为50%,一般地会是8px。那么你在body里字体大小就是1em=8px了。可当你定义了一个div,然后把字体设置成了75%,请问,现在的1em等于多少? 这个时候你会发现,原来他继承了body的值,现

青颜的天空的博客 6244

移动 web 适配 rem.js 使用

移动 web 适配 rem.js 使用 前言 提到rem,大家首先会想到的是em,px,pt这类的词语,大多数人眼中这些单位是用于设置字体的大小的,没错这的确是用来设置字体大小的,但是对于rem来说它可以用来做移动端的响应式适配哦。 兼容性 先看看兼容性,关于移动端 ios:6.1系统以上都支持 android:2.1系统以上都支持 大部分主流浏览器都支持,可以安心的往下看了。 rem设置字体大小...

qq_43344133的博客 457

element 手机适配_移动端rem.js适配屏幕

九月已成历史,十月如期而至...可能是九月工作比较清闲,周记就没怎么写,十月决不能这么堕落,立贴为证,至少保证5篇博客!!!如果没学到什么新知识,就对以往的那些工作中常用到的知识点做个总结...话不多说,今天就来谈谈移动端的rem适配...本文将从rem是什么、为什么要用rem适配、怎么用rem来讲解,保证浅显易懂...1、什么是remrem(font size of the root eleme...

weixin_32626635的博客 1257

网页不同分辨率适配

简介 你大声的嚷着你的手机分辨率就是1920*1080的,这是你攒了足足两个月的钱后在小米官网买的红米手机,绝不可能有假。 你写了一个宽为 960px 的 div,用手机的浏览器横屏打开后,你期望这个该死的 div 会和在电脑上的浏览器加载出来一样的效果,只占屏幕的一半。结果却让你纳了血闷,明明电脑上分辨率和手机分辨率都是1920*1080,为何电脑上 960px 正好占一半,手机上却占了一大半,几乎占满了你手机的整个屏幕的宽。 然后你去问了前端大神这是怎么回事,大神欲言又止,看起来并不太想仔细的给你解释,

Aislli的博客 8614

pc端rem适配_自适应PC端网页制作使用REM

做一个PC端的网页,设计图是1920X1080的. 要在常见屏上显示正常(比例正确可) 1280X720 1366X768 1440X900 1920X1080使用了几种办法1.内容在一屏内显示的,采用了(内容框)上下左右居中的办法,里面的内容绝对于这个内容框定位.这样一来,在不同大小屏中,内容总是在中间,看起来较正常2.使用rem的地方width,height,margin,padding,le...

weixin_35914724的博客 1868
上一篇: Express教程(入门简单版)
下一篇: Webpack配置详解(package.json/webpack.config.js详细配置 )
海阳盼
博客等级 码龄11年 11粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值