css之px自动转rem - sublime text插件

作为一名前端开发,尤其是在做移动端适配时,rem是我们经常用到的单位,它的好处大家可以自行搜索,网上已经有很多了。但是我们再将设计稿上的px转换成rem时,得手动的去计算,这是一个很耗时、费力的过程,有没有什么办法可以“解放”我们呢?

一、CSSREM

这是flashlizi为sublime text编写的一个插件,用起来真的很方便!

  1. 下载所依赖的文件,比如:git clone https://github.com/flashlizi/cssrem
  2. 打开Sublime Text,进入packages目录:Sublime Text -> Preferences -> Browse Packages
  3. 复制下载的cssrem目录到刚才的packges目录里。
  4. 重启Sublime Text。
    这时可以在 .css, .sass, .less 文件中使用自动转换功能了,也可以修改默认配置:(打开cssrem-master文件夹下的cssrem.sublime-settings文件,进行修改)
{
    "px_to_rem": 40, //px转rem的单位比例,默认为40
    "max_rem_fraction_length": 6, //px转rem的小数部分的最大长度。默认为6。
    "available_file_types": [".css", ".less", ".sass",".html"]
    //启用此插件的文件类型。默认为:[".css", ".less", ".sass"]
}

效果如下:

这里写图片描述

按tab键,自动转换,得到如下结果:

这里写图片描述

如果用手淘(即lib-flexible)的h5适配方案,则修改默认配置为:

{ "px_to_rem": 75, ... }

二、CSS处理器

Sass、LESS以及PostCSS这样的处理器都可以处理。

Sass(使用Sass的函数、混合宏这些功能来实现):

@function px2em($px, $base-font-size: 16px) {
  @if (unitless($px)) {
    @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels for you";
    @return px2em($px + 0px); // That may fail.
  } @else if (unit($px) == em) {
    @return $px;
  }
  @return ($px / $base-font-size) * 1em;
}

Sass(使用Sass的混合宏):

@mixin px2rem($property,$px-values,$baseline-px:16px,$support-for-ie:false){
  //Conver the baseline into rems
  $baseline-rem: $baseline-px / 1rem * 1;
  //Print the first line in pixel values
  @if $support-for-ie {
    #{$property}: $px-values;
  }
  //if there is only one (numeric) value, return the property/value line for it.
  @if type-of($px-values) == "number"{
    #{$property}: $px-values / $baseline-rem;
  }
  @else {
    //Create an empty list that we can dump values into
    $rem-values:();
    @each $value in $px-values{
      // If the value is zero or not a number, return it
      @if $value == 0 or type-of($value) != "number"{
        $rem-values: append($rem-values, $value / $baseline-rem);
      }
    }
    // Return the property and its list of converted values
    #{$property}: $rem-values;
  }
}

这种方式对于不会sass语言的同学来说,还得去额外学习sass这类的书写规则,也需要配置,虽然很简单,建议使用第一种更简单的方式。

您想了解在使用R语言中如何使用-D参数和在npm中如何通过postcss-px2rem和postcss-pxtorem实现px到rem的转换。请注意,这两个问题并不直接相关,因此我将为您提供两个单独的答案。 关于R语言中-D参数的使用,请看以下内容: -D是Rscript命令的一个参数,它用于设置环境变量。如果您想要在运行R脚本时设置某个特定的环境变量,您可以在命令行中使用-D参数来指定。例如,如果您想要设置环境变量MY_VAR为my_value,您可以运行以下命令: ``` Rscript -D MY_VAR=my_value my_script.R ``` 这将运行名为my_script.R的R脚本,并将环境变量MY_VAR设置为my_value。 关于使用postcss-px2rem和postcss-pxtorem转换px到rem,请看以下内容: postcss-px2rem和postcss-pxtorem都是用于将CSS中的px单位转换为rem单位的PostCSS插件。这些插件可以让您在开发Web应用时使用相对单位,并自动将其转换为适当的单位。 要使用这些插件,请按照以下步骤进行操作: 1. 在您的项目中安装postcss-px2rem或postcss-pxtorem。您可以使用npm包管理器来安装它们。例如,要安装postcss-px2rem,请运行以下命令: ``` npm install postcss-px2rem --save-dev ``` 2. 将插件添加到您的postcss配置文件中。在这里,我将假设您使用postcss.config.js文件来配置您的PostCSS插件。要使用postcss-px2rem,请将其添加到您的插件列表中,如下所示: ```javascript module.exports = { plugins: [ require('postcss-px2rem')({ remUnit: 75 }) ] } ``` 3. 在您的CSS中使用px单位。当您运行PostCSS时,插件自动px转换为rem。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值