返回顶部
首页 > 资讯 > 前端开发 > JavaScript >什么是postcss
  • 288
分享到

什么是postcss

2024-04-02 19:04:59 288人浏览 薄情痞子
摘要

这篇文章主要讲解了“什么是postCSS”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是postcss”吧! 为什么要用po

这篇文章主要讲解了“什么是postCSS”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是postcss”吧!

为什么要用postcss

随着技术的发展,目前css已经发展到了第三阶段css3.css3能够支持更多的动效,以前需要用js来实现的动画、过渡,计算等功能,如今大多都能够用css来实现,而且性能更佳。当然,随着业务的需要,在编写css过程当中,为了能够让css具备js的可复用性,灵活性、模块化开发以及更好的管理样式文件,像sass这样的css框架就应运而生。

css预处理器Sass

sass能够解决css一些缺憾,包括但不限于:

1.变量:声明一个变量,多处使用

$content: "Non-null content";
.main {
 content: $content;
}
编译为
.main {
 content: "Non-null content”;
}

2.嵌套:能够更好的明确父子层级关系,方便修改查找以及减少样式命名

.main  {

  .redbox {
    background-color: #ff0000;
    color: #000000;
  }

}
编译为
 .main  .redbox {

    background-color: #ff0000;
    color: #000000;

}

3.引用混合样式:一处定义,多处使用

编译前:

@mixin clearfix {
 display: inline-block;
 &:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
}
.box{
@include clearfix
}

编译为:

.box{
display: inline-block;
}
.box:after{
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

4.函数指令:像js一样开始编程

$grid-width: 40px;
$gutter-width: 10px;
@function grid-width($n) {
 @return $n * $grid-width + ($n - 1) * $gutter-width;
}
.sidebar { width: grid-width(5); }
编译为
.sidebar { width: 240px; }

以上4种是最为常见的,更多用法,请自行到Sass官网了解。

Css预处理器让前端开发人员大大提升了css开发速度,跟sass类拟的还有less,Stylus。

说说使用sass遇到的一些问题

1.基于Ruby,使用sass必须安装Ruby,内部是使用Ruby来编译的。

2.需要安装node-sass.目前前端都使用了gulp,webpack这些构建工具,那么如果用sass的话,WEBpack构建必须安装sass-loader,而sass-loader又依赖于node-sass,要知道node-sass安装速度极其慢,特别是使用window系统开发时,npm<5.4时,经常会出现node-sass安装不成功的情况。

3.全局变量的污染,在多人开发过程当中,定义选择器时,需要顾及到其他地方是否使用了同样的命名。

4.静态编译:预先编译,展示来页面当中的是已经编译好的css.

4.不支持未来的css。目前处于css3阶段,未来css发展方向值得期待,未来的CSS中将会支持更多的属性以及函数,其中不乏有变量,嵌套,值计算等。

postcss新革命

postcss定义:

PostCSS is a tool for transfORMing CSS with JS plugins. These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more.

postcss的优点

1.支持未来的css: 使用cssnext书写未来的css(postcss-cssnext plugin)

:root {
 --heading-color: #ff0000;
}
/ custom selectors /
@custom-selector :--headings h2, h3, h4, h5, h6, h7;
/ usage /
:--headings {
 color: var(--heading-color);
}

通过 cssnext,上述代码会被处理成以下内容

h2,
h3,
h4,
h5,
h6,
h7 {
 color: #ff0000;
}

2.编译速度大大提升。PostCSS 声称比预处理器快 3-30 倍。
3.丰富的插件系统,解放你的双手。
4.css模块化,将作用域限制于组件内,避免了全局作用域的问题,再也不用担心样式名重复了

Postcss属于css后处理器,动态编译css,也就是说,在运行的时候进行编译。
Postcss本身不会对你的css做任何事物,你可以把postcss当做一个壳,伴随着postcss的生态,衍生出更多postcss插件,能够帮你解决95%以上的css疑问,如果你需要自定义一个属于自己业务需求的css编写规范,那么你也可以为此开发一个特定的postcss plugin.

postcss在webpack当中的配置

npm安装postcss-loader,postcss-cssnext: npm install postcss-loader postcss-cssnext -D

webpack.config.js

什么是postcss

postcss插件参考

  • postcss-modules and React-css-modules automatically isolate selectors within components.

  • postcss-autoreset is an alternative to using a global reset that is better for isolatable components.

  • postcss-initial adds all: initial support, which resets all inherited styles.

  • autoprefixer adds vendor prefixes, using data from Can I Use.

  • postcss-preset-env allows you to use future CSS features today.

  • precss contains plugins for Sass-like features, like variables, nesting, and mixins.

  • postcss-assets inserts image dimensions and inlines files.

  • postcss-sprites generates image sprites.

  • postcss-inline-svg allows you to inline SVG and customize its styles.

  • postcss-write-svg allows you to write simple SVG directly in your CSS.

  • postcss-syntax switch syntax automatically by file extensions.

  • postcss-html parsing styles in <style> tags of HTML-like files.

  • postcss-markdown parsing styles in code blocks of Markdown files.

  • postcss-jsx parsing CSS in template / object literals of source files.

  • postcss-styled parsing CSS in template literals of source files.

  • postcss-scss allows you to work with SCSS (but does not compile SCSS to CSS).

  • postcss-sass allows you to work with Sass (but does not compile Sass to CSS).

  • postcss-less allows you to work with Less (but does not compile LESS to CSS).

  • postcss-less-engine allows you to work with Less (and DOES compile LESS to CSS using true Less.js evaluation).

  • postcss-js allows you to write styles in JS or transform React Inline Styles, Radium or JSS.

  • postcss-safe-parser finds and fixes CSS syntax errors.

  • postcss-will-change this plugin uses backface-visibility to force the browser to create a new layer, without overriding existing backface-visibility properties.

感谢各位的阅读,以上就是“什么是postcss”的内容了,经过本文的学习后,相信大家对什么是postcss这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 什么是postcss

本文链接: https://lsjlt.com/news/84085.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 什么是postcss
    这篇文章主要讲解了“什么是postcss”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是postcss”吧! 为什么要用po...
    99+
    2024-04-02
  • PostCSS是什么
    本篇内容介绍了“PostCSS是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是postcsspo...
    99+
    2024-04-02
  • Vue框架使用PostCSS的原因是什么
    本篇内容介绍了“Vue框架使用PostCSS的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用PostCss的原因大家都知道转换...
    99+
    2023-06-20
  • postcss怎么用
    这篇文章主要介绍了postcss怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 首先需要安装webpack中postcss得解析器 ...
    99+
    2024-04-02
  • CSS的预编译器PostCSS是怎样的
    这篇文章给大家介绍CSS的预编译器PostCSS是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。提到css预编译器(css preprocessor),你可能想到Sass、Les...
    99+
    2024-04-02
  • 使用postcss-pxtorem怎么适配移动端
    今天就跟大家聊聊有关使用postcss-pxtorem怎么适配移动端,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。执行命令 安装插件postcss-pxtoremnpm i...
    99+
    2023-06-08
  • postcss插件中怎么自动转换px到rem
    这篇文章将为大家详细讲解有关postcss插件中怎么自动转换px到rem,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 post...
    99+
    2024-04-02
  • vue3怎么使用postcss-px-to-viewport适配屏幕
    这篇文章主要讲解了“vue3怎么使用postcss-px-to-viewport适配屏幕”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3怎么使用postcss-px-to-viewpo...
    99+
    2023-07-05
  • Spring之什么是ObjectFactory?什么是ObjectProvider?
    目录ObjectFactory接口定义跟FactoryBean的区别及联系ObjectProvider接口定义接口分析ObjectProvider解决的问题总结在Spring的学习过...
    99+
    2023-01-01
    Spring ObjectFactory Spring ObjectProvider ObjectFactory ObjectProvider
  • Windows Vista是什么?什么是Windows Vista
      我身边很多朋友对Windows Vista是什么一点都不知道,经常来问我,所以今天我就像大家详细介绍Windows Vista这个操作系统,如有不足,还请大家见谅,好了,进入正题:   Windows Vista是微...
    99+
    2023-06-05
    Windows Vista
  • window.setinterval是什么 其作用是什么
    window.setInterval是一个JavaScript方法,它允许您周期性地执行指定的函数或代码块。该方法以指定的时间间隔(以毫秒为单位)触发指定的函数。window.setInterval的语法如下:javascriptsetIn...
    99+
    2023-07-12
  • java中什么是类,什么是对象
    类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个...
    99+
    2020-06-27
    java入门 java 对象
  • 什么是DHCP?什么是DHCP服务器
    DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,它是一种网络协议,常用于...
    99+
    2023-09-05
    DHCP服务器
  • colspan_colspan是什么意思?作用是什么
    colspan是HTML中的一个属性,用于指定一个单元格横跨的列数。作用是将一个单元格合并为多个列,使得该单元格占据更大的水平空间。...
    99+
    2023-08-22
    作用
  • c#什么是委托什么是事件
    委托是一种指向方法的引用类型,用于实现松散耦合,而事件是一种特殊委托,用于事件处理。委托可将调用方法的职责转移到接收方,提高代码可重用性。事件允许对象向订阅者通知事件发生,订阅者可响应事...
    99+
    2024-04-04
    c#
  • c++中什么是类,什么是对象
    c++kquote>类在 c++ 中代表对象集合的模板,定义了对象的属性(数据成员)和行为(成员函数)。对象是类的实例,拥有类中的所有数据成员和成员函数,由类创建,并使用与类相同的...
    99+
    2024-05-08
    c++
  • css是什么?有什么用?
    CSS,即层叠样式表(Cascading Style Sheets),是一种用于网页设计的样式语言。通过CSS,你可以改变HTML页面上各个元素的外观、布局和行为。CSS最初是由赛迪公司(斯佩克特公司)的开发者创建的,并于1996年成为一项...
    99+
    2023-05-14
  • mysql是什么有什么用
    mysql 是一款开源关系数据库管理系统(rdbms),用于存储和管理数据。mysql 广泛用于 web 应用程序、电子商务和数据仓储等各种领域,因为它具有存储数据、管理数据、保障数据安...
    99+
    2024-06-02
    mysql linux macos
  • eclipsesdk是什么
    eclipsesdk是什么?Eclipse有好多专用名称,例如Eclipse SDK等。先说一下SDK,Eclipse Project 通常也称为 Eclipse SDK,它是 Eclipse 的核心项目。该项目包含四个子项目:Platfo...
    99+
    2020-12-09
    java教程 eclipsesdk
  • 什么是Druid
    一、Druid是什么 Druid 单词来源于西方古罗马的神话人物,中文常常翻译成德鲁伊。 玩过魔兽世界,暗黑破坏神,Dota,炉石传说,Dota自走棋的朋友,对这个词一定不陌生。 本文中所介绍的Druid是一个分布式的支持实时分...
    99+
    2015-07-18
    什么是Druid
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作