js适配rem根字体大小

/*
    # 按照宽高比例设定html字体, width=device-width initial-scale=1版
    # @pargam win 窗口window对象
    # @pargam option{
      designWidth: 设计稿宽度,必须
      designHeight: 设计稿高度,不传的话则比例按照宽度来计算,可选
      designFontSize: 设计稿宽高下用于计算的字体大小,默认20,可选
      callback: 字体计算之后的回调函数,可选
    }
    # return Boolean;
    # xiaoweili@tencent.com
    # ps:请尽量第一时间运行此js计算字体
*/
!function(win, option) {
  var count = 0, 
      designWidth = option.designWidth, 
      designHeight = option.designHeight || 0, 
      designFontSize = option.designFontSize || 20, 
      callback = option.callback || null,
      root = document.documentElement,
      body = document.body,
      rootWidth, newSize, t, self;
  //返回root元素字体计算结果
  function _getNewFontSize() {
    var scale = designHeight !== 0 ? Math.min(win.innerWidth / designWidth, win.innerHeight / designHeight) : win.innerWidth / designWidth;
    return parseInt( scale * 10000 * designFontSize ) / 10000;
  }
  !function () {
    rootWidth = root.getBoundingClientRect().width;
    self = self ? self : arguments.callee;
    //如果此时屏幕宽度不准确,就尝试再次获取分辨率,只尝试20次,否则使用win.innerWidth计算
    if( rootWidth !== win.innerWidth &&  count < 20 ) {
      win.setTimeout(function () {
        count++;
        self();
      }, 0);
    } else {
      newSize = _getNewFontSize();
      //如果css已经兼容当前分辨率就不管了
      if( newSize + 'px' !== getComputedStyle(root)['font-size'] ) {
        root.style.fontSize = newSize + "px";
        return callback && callback(newSize);
      }
    }
  }();
  //横竖屏切换的时候改变fontSize,根据需要选择使用
  win.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
    clearTimeout(t);
    t = setTimeout(function () {
      self();
    }, 300);
  }, false);
}(window, {
  designWidth: 640, 
  designHeight: 1136,
  designFontSize: 100,
  callback: function (argument) {
    console.timeEnd("test")
  }
});
`postcss-pxtorem` 是一个用于将 CSS 中的 px 单位转换为 rem 单位的 PostCSS 插件。它可以帮助实现响应式布局和字体大小适配。 要使用 `postcss-pxtorem` 将字体大小转换为 rem 单位,你需要按照以下步骤进行配置: 1. 安装 `postcss-pxtorem`:在项目中运行以下命令安装 `postcss-pxtorem`: ``` npm install postcss-pxtorem --save-dev ``` 2. 创建 PostCSS 配置文件:在项目目录下创建一个 `postcss.config.js` 文件,并添加以下内容: ```javascript module.exports = { plugins: { 'postcss-pxtorem': { rootValue: 16, // 设置元素的字体大小,通常为网页的基准字体大小 propList: ['font-size'], // 需要转换的属性列表,这里只包含字体大小 selectorBlackList: [], // 不需要转换的选择器列表 }, }, }; ``` 请据你的具体需求调整 `rootValue` 的值,它表示元素的字体大小,一般情况下为网页的基准字体大小,通常是 `16px`。 3. 使用 PostCSS:在构建过程中使用 PostCSS 处理 CSS 文件,并应用 `postcss-pxtorem` 插件。具体的配置方法取决于你使用的构建工具(如 webpack 或 gulp)。 例如,在 webpack 中配置 PostCSS 的方法如下: - 安装必要的 webpack loader: ``` npm install postcss-loader --save-dev ``` - 在 webpack 配置文件中添加 PostCSS loader: ```javascript module.exports = { // ... module: { rules: [ // ... { test: /\.css$/, use: [ 'style-loader', 'css-loader', 'postcss-loader', ], }, ], }, // ... }; ``` 请确保在你的构建工具中正确配置了 PostCSS 插件。 这样,当你在 CSS 文件中使用 `font-size` 属性设置字体大小时,`postcss-pxtorem` 将会自动将其转换为 rem 单位。 请注意,`postcss-pxtorem` 的具体配置和使用方式可能会因个人需求和项目设置而有所不同。确保阅读并遵循 `postcss-pxtorem` 的文档和示例,以确保正确地配置和使用该插件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值