rem-针对屏幕旋转和默认字体大小不是16px的解决方案

function adapt(designWidth, rem2px){

  var d = window.document.createElement('div');

  d.style.width = '1rem';

  d.style.display = "none";

  var head = window.document.getElementsByTagName('head')[0];

  head.appendChild(d);

  var defaultFontSize = parseFloat(window.getComputedStyle(d, null).getPropertyValue('width'));

  d.remove();

  document.documentElement.style.fontSize = window.innerWidth / designWidth * rem2px / defaultFontSize * 100 + '%';

  var st = document.createElement('style');

  var portrait = "@media screen and (min-width: "+window.innerWidth+"px) {html{font-size:"+((window.innerWidth/(designWidth/rem2px)/defaultFontSize)*100) +"%;}}";

  var landscape = "@media screen and (min-width: "+window.innerHeight+"px) {html{font-size:"+((window.innerHeight/(designWidth/rem2px)/defaultFontSize)*100) +"%;}}"

  st.innerHTML = portrait + landscape;

  head.appendChild(st);

  return defaultFontSize

};

var defaultFontSize = adapt(640, 100);

window.onresize = function(){
            var defaultFontSize = adapt(640, 100);
            document.documentElement.style.fontSize =defaultFontSize;
        }


以上比较复杂,并且偶还没有测试,下面是比较比较简单的方法

       var designWidth = 640,rem2px = 100;
       (document.documentElement.style.fontSize = (window.innerWidth/designWidth) * rem2px) +'px';


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`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、付费专栏及课程。

余额充值