H5 如何突破 12px 限制

0 291

今天给大家分享的是 H5 如何突破 12px 限制,实现更小的字体。

我们都知道,H5 上最小字体为 12px,如果想要更小的字体怎么实现呢?答案是可以采用缩放。

一、缩放的方法

css 中有很多方法可以实现缩放,例如 scale,zoom 等等

1、scale

scale 的使用方式为 transfrom: scale(0.83333) 但是使用 scale 会存在一个问题,就是内容会被缩放,但占位不会被缩放,原因是 scale 先布局后缩放,元素的布局不会发生变化

2、zoom

zoom 使用方式为 zoom: 0.5 元素的占位会随着内容的缩放而缩放,也就是会改变元素的真实空间大小,从而影响其他元素的布局

3、scale 和 zoom 的差异

zoom的缩放是相对于左上角的;而scale默认是居中缩放 zoom的缩放改变了元素占据的空间大小;而scale的缩放占据的原始尺寸不变,页面布局不会发生变化;zoom缩放依然受限于最小12像素中文大小限制;而scale就是纯粹的对图形进行比例控制

二、缩放的性能

1、zoom

上面有提到,zoom 的缩放会影响整个页面的布局,也就只要页面上有一个元素有 zoom 属性,那么整个页面都会重新渲染,对于硬件不 ok 的手机,那么就会存在很大的性能开销,页面也会出现卡顿。

2、scale

scale 只在当前元素上重绘,缩放不会影响到其他元素,因此相对 zoom,性能开销小一些 三、在 h5 上实现 10px 的字体

三、如何计算缩放的比例呢?

通过数值计算比值。例如想要实现 10px 的字体,可以通过 10/12 的比值,大致为 0.833333

10 是当前你想要的字体大小

12 是 web 端最小的字体阈值

假设没有缩放,那么设置 10px 的字体,最终也会展示为 12px

四、10px 字体实现

1、思路

首先设置文本的字体为 12px,也就是 h5 的最小字体;

然后通过设置 transfrom: scale(0.83333) 把字体缩小为 10px

字体缩小但字体占位没有缩小,所以采用负的 margin 实现正确的布局,至于需要负多少,需要通过实际的文本占位的宽度来计算。

2、 RN 代码

{

fontSize: sizeScale(12),

transform: [{ scale: 0.83333 }],

// textWidth 的大小需要通过 onLayout 时进行获取

marginHorizontal: -textWidth * 0.08

}

3、h5 代码

和上面方式一样,下方实现了一个 html5 的 demo,没有借助其他前端框架。贴一下重点的代码。

1)css 部分

.text {

font-size: 12px;

transform: scale(0.83333333);

}

2)js 部分

<script>

function domReady(fn) {

document.addEventListener('DOMContentLoaded', fn, false);

}

const changeTextMargin = () => {

const dom = document.getElementById('scale_text');

// 需要是 负margin

const textWidth = - (dom.offsetWidth * 0.16) / 2

// 这里注意拼接 px单位

dom.style.marginLeft = `${textWidth}px`

}

domReady(changeTextMargin);

</script>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章资源,如无特殊说明或标注,均为本站网友和创作者贡献分享。如若本站内容侵犯了原著者的合法权益,可联系网站客服QQ2743319061删除。

云炬星球 云炬随笔 H5 如何突破 12px 限制 https://src.yunjunet.cn/1627245.html

常见问题
  • 放心亲,我们不会为了几十块钱的东西坏了名声!
查看详情
  • 方法一:点击“立即下载.”按钮,付款后在下载弹窗的虚线框的隐藏信息里获取 方法二:在正文底部使用VIP查看隐藏的解压密码 方法三:联系【云炬网络】公众号客服获取
查看详情
  • 付款后会出现“立即下载”按钮(点击即可下载),如果下载失败也可以联系客服发订单截图补发。
查看详情
  • 登录购买会多端同步购买记录,永久可以查看反复下载;非登录购买仅将购买记录保存到本地浏览器中,浏览器cookie清除后无法再次下载。先右上角点登录,然后点击微信图标可以快速授权注册登录^_^
查看详情
  • 可以试看。点击”查看演示“或“试看预览”按钮可以试读从资料目录中节选的部分内容,也可以自己指定想试看的内容。
查看详情
  • 原因一:本站所有资源已开启有效性检测(服务器24h全自动监测),当监测到下载链接无法访问时会提示“该资源已失效,请勿购买”,遇到这种情况可以联系客服修复失效的下载链接,或直接联系客服在淘宝下单购买即可。(检测原理:购买前服务器程序会预访问下载链接,响应值为200说明资源有效允许购买,响应值为404或502等报错说明资源失效禁止购买)。原因二:上传者未启用“下载”选项。
查看详情
官方客服团队

为您解决烦忧 - 24小时在线 专业服务