html5 - 怎么快速将css中的px替换成rem
黄舟
黄舟 2017-04-17 13:42:22
[HTML讨论组]

我做了一个网页
一直是用的px做为单位
但是发现在手机中效果不好 单位不精确 和 太固定
我想要的是一种响应式大小的单位
然后就想到了rem
但是我现在一个个的去修改px感觉好麻烦
有没有办法可以想查找替换一样的自动替换px为rem单位呢
主要是我这里给body定义了font-size: 62.5%

所以我的所有px单位换rem都要除以10,有没有一种正则或者别的办法来实现替换px单位就获取px前面的数值并除以10:
像这样:

figure {
    margin: 1em 40px;
}

查找px
定位到margin: 1em 40px;替换pxrem

figure {
    margin: 1em 40px;
}

同时自动取值px前面的数值40除以10

figure {
    margin: 1em 4rem;
}

求大神帮帮我
我的hbuilder可以使用正则:

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
伊谢尔伦

看看这个:https://github.com/imochen/ho...
这个解决方案可以帮到你,完美适配个移动终端,hotcss.js动态计算设备可视宽度,sccs文件用于px转成rem值。目前我们项目有在用。不明白的可以回复问我!

天蓬老师

用 gulp-replace 写个任务。

var replace = require('gulp-replace');

gulp.task('pxToRem', function(){
  return gulp.src('*.html')
    .pipe(replace(/(\d+)px/g, function(match, p1){
        return Number(p1) / 10 + 'rem';
    }))
    .pipe(gulp.dest('dir'));
});

没有测试过,不对的地方自己改下。

PHPz

之前没有做过这种事,就给个思路吧。
我拟分无次替换完成:

  1. 大于等于10的小数 :(\d+)(\d)\.(\d+)px替换成$1\.$2$3rem;

  2. 大于等于1且小于10的小数 :(\d)\.(\d+)px替换成\.$1$2rem;

  3. 小于1的小数(实际上应该不存在吧): 0*\.(\d+)px替换成\.0$1rem;

  4. 大于等于10的整数 :(\d+)(\d)px替换成$1\.$2rem;

  5. 小于10的整数 :(\d)px替换成\.$1。

简化为三布:
合并1,2 : (\d*)(\d)\.(\d+)px替换成$1\.$2$3rem;
3不变;
合并4,5 : (\d*)(\d)px替换成$1\.$2rem。

没有仔细思考,也没有测试,不知道对不对。

PHP中文网

这里可以直接将PX转换成rem,http://520ued.com/tools/rem,希望对你有帮助。

PHP中文网

我一直用的这个工具直接px转rem,推荐给大家,http://www.ofmonkey.com/front...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号