美文网首页vue
PostCSS + PreCSS 拯救前端样式

PostCSS + PreCSS 拯救前端样式

作者: 寂寞的原子 | 来源:发表于2018-12-01 01:34 被阅读49次

CSS作为我大前端必不可少的一部分,在前端发展如此迅速的今天,实在是拖了很大的后腿,所以我们几乎已经离不开CSS处理器了。

回顾 Sass 和 LESS

首先,这俩货都是兼容CSS的,所有的开发都是在CSS的基础上进行扩展,从我个人角度来看,开发体验是不错的。
大部分情况下,Sass和LESS其实并没有什么区别,这篇文章列举了一些差异,这里就不多说了。
总的来说,这俩货其实都不错,但是:

  • Sass安装太慢,需要编译。
  • 他们都需要额外的插件来支持autoprefixer等常见处理。
  • 不能直接使用最新的CSS特性,如变量、calc

遇见 PostCSS + PreCSS

说到 PreCSS,就不得不先说说 PostCSS
PostCSS其实也是一个CSS预处理器,它的独特之处在于强大的插件机制和丰富的插件,几乎是我在CSS开发中的标配。换言之,即使我用了Sass或者LESS,还是免不了要加上PostCSS来做前缀处理(autoprefixer)、压缩(cssnano)等后续操作。

那么问题来了:能不能减少一些依赖,只用PostCSS+插件就得到不错的CSS开发体验呢?

于是我发现了PreCSS。下面看看它的特别之处:

  • 基于 PostCSS Preset Env ,支持各种强大的新语法,可以按需编译成指定浏览器版本支持的CSS。

  • 支持大部分Sass语法。前提是要指定 parser: require('postcss-scss')
    很棒有没有?安装无需编译,Sass代码几乎可以无缝迁移。

  • 得益于PostCSS,可以轻松地结合其他功能,比如:

    • 结合 postcss-import 实现alias,让 @import 更加简洁。
    • 使用 postcss-calc 在编译阶段进行计算,减少不必要的 calc ,而开发时用 calc 更清晰。
    • 使用 postcss-plugin-px2rem 将px转成rem,适配各种屏幕。

于是,只需安装 PostCSS,加上一份这样的配置(.postcssrc.js),一个强大的CSS预处理工具就出来了:

module.exports = {
  // Transform inline comments
  parser: require('postcss-scss'),
  plugins: [
    require('autoprefixer'),
    // Transform SCSS into CSS
    require('precss'),
    // Calculate at compile time
    require('postcss-calc'),
    // px to rem
    require('postcss-plugin-px2rem')({ rootValue: 100, minPixelValue: 2}),
  ],
};

以码服人

自定义 media query

@custom-media --iphonex (only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3));

main {
  @media (--iphonex) {
    margin-top: 50px;
  }
}

CSS变量

:root {
  --mainColor: #12345678;
}
body {
  color: var(--mainColor);
}

Sass语法

$blue: #056ef0;

.menu_link {
  background: $blue;
}

calc计算

$column: 200px;

.menu {
  width: calc(4 * $column);
}

MixIn

// src/common/mixin.css
@mixin iphonex {
  @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) { @content; }
}

// src/pages/index/style.css
@import '#/common/mixin.css';

@include iphonex {
  main {
    margin-left: 50px;
  }
}

好了,还等什么,快来用 PostCSS + PreCSS 吧。

相关文章

  • PostCSS + PreCSS 拯救前端样式

    CSS作为我大前端必不可少的一部分,在前端发展如此迅速的今天,实在是拖了很大的后腿,所以我们几乎已经离不开CSS处...

  • react+webpack4构建项目(2webpack4 处理C

    1、添加postcss支持,npm i -D postcss-loader precss post-cssnext...

  • PreCSS 语法说明

    PreCSS是PostCSS的一种插件,用来进行CSS预编译 PreCSS中的嵌套可以使用 & 符,把父选择器复制...

  • postcss配置

    postCss 官网https://postcss.org/PostCss是一个样式处理工具,它通过自定义的插件和...

  • vite 中使用 postcss-px-to-viewport

    postcss-px-to-viewport做前端自适应,适用于pc和移动1.下载 postcss-px-to-v...

  • postcss 使用

    What: 什么是postcss PostCSS 是一个允许使用 JS 插件转换样式的工具。 这些插件可以检查(l...

  • 深入浅出PostCSS

    1、介绍 什么是PostCSS PostCSS是一个允许使用JS插件转换样式的工具。这些插件可以检查(lint)你...

  • vue3.0中使用postcss-pxtorem

    postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。前端开发还原设计稿的重要性毋庸...

  • Webpack(五):PostCss

    一:PostCss是什么? PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css。它...

  • VSCode编辑器前端常用插件

    PostCSS Sorting 按照指定的规则对CSS内容进行排序。 stylefmt 自动格式化样式 ESLin...

网友评论

    本文标题:PostCSS + PreCSS 拯救前端样式

    本文链接:https://www.haomeiwen.com/subject/dfzkcqtx.html