HTML-CSS(六十)js动态设置font-size

65 篇文章 3 订阅
30 篇文章 1 订阅

1rem=根元素的font-size值

动态设置font-size值:
js方式设置:
首先layout viewport的宽度可以通过document.documentElement.clientWidth获取。

iphone 6的visual viewport宽度是375

iphone 6的visual viewport宽度是414

使用meta,让布局视口(layout viewport的宽度)=device-width。
如果我们想要在iphone 6中设置font-size:100px。那么不就是用布局视口的宽度375(document.documentElement.clientWidth)/3.75=100。
观察 html:font-size变化

iphone 6
在这里插入图片描述
iPhone 6 plus
在这里插入图片描述

var scale=document.documentElement.clientWidth   /* 获取布局视口的宽度,也就是浏览器宽度*/
var font_size=scale/3.75    /* 经过换算,动态计算不同设备的font-size值  */
document.documentElement.style.fontSize=font_size +'px'   /* 设置 html的font-size属性*/

当然不一定要除以3.75,你可以选择除以其他的数来获取不同的font-size值。之所以会选择除以3.75主要是因为现在市场上大多数的屏幕宽是375的,换算出来的font-size刚好是100px,这样也是为了方便属性设置时能够轻易算出结果。

比如,我们平常拿到设计稿之后都是psd格式的,距离单位通常都是px,那么你要先将px转成rem,才能做到不同的移动端适配。如果拿到元素的在psd中的width是100px,然后刚好此时font-size也是100px,这样不就是1rem了吗。

如果你使用的是vscode编译器的话,你可以直接在应用商店下载px to rem ,并在应用的的扩展配置中设置font-size值。就可以实现在代码中利用vs,摁住alt+z就能够将px转rem。

如果你使用的是hbuildx编译器的话,工具->设置->编译器配置->勾选px转px转rem提示–>更改px转rem比例(一般设置一百,不过有了这个提示之后随意了)。最后你就可以在代码当你只要敲了px之后,他就会自动弹出提示,只要回车就能够更改了

在这里插入图片描述
VW方式设置:

1vw = 屏幕宽度的1%

在iphone 6 屏幕宽 375 ,1vw =3.75px,100px≈26.666667vw。根据不同的屏幕大小进行等比例放大
在这里插入图片描述
iphone 6 plus
在这里插入图片描述
注意:一定要先做布局视口(layout viewport)设置浏览器大小,否则屏幕宽度永远都是布局窗口的默认宽度980px。

如何使用rem布局呢?
首先不用考虑移动端视口问题,也不用考虑移动等比缩放问题,先按照pc端的普通方法,就正常的进行规划布局。然后将所有宽度和高度,都设置单位px之后。再通过等比缩放布局(rem布局方式),先将布局视口(layout viewport)设置成屏幕宽度,然后再去利用js或者vw(html{font-size:26.6666667vw})动态的将根元素的font-size设置成100px,再重置body的字体大小为16px。然后如果你是vscode编译器的话,利用下载的那个px to rem将整个代码所有的px转成rem即可。
如果在hbuild-x的话,你就先设置好布局视口(layout viewport)设置成屏幕宽度,以及html的font-size设置,然后按照pc端的普通方法,就正常的进行规划布局,遇到px提示rem回车转换就行。

注:要给body重置一下font-size:16px。因为html设置font-size之后,body会继承到html的文字属性,这是页面的字体不再是以16px默认字体出现,就会导致文字参差不齐。当我们对body重置font-size时,主要是因为针对body内部元素来说,body的优先级高于html优先级,所以body重置font-size:16px之后,页面字体还可以正常显示

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值