返回顶部
首页 > 资讯 > 前端开发 > html >PostCSS和cssnext的知识点有哪些
  • 897
分享到

PostCSS和cssnext的知识点有哪些

2024-04-02 19:04:59 897人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“PostCSS和cssnext的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PostCSS和cssnext的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢

本文小编为大家详细介绍“PostCSS和cssnext的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PostCSS和cssnext的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

PostCSS 是使用 javascript 插件转换 CSS 的后处理器。PostCSS 本身不会对你的 CSS 做任何事情,你需要安装一些 plugins 才能开始工作。这不仅使其模块化,同时功能加强。

cssnext 是一个 CSS transpiler,允许你使用最新的 CSS 语法。cssnext 把新 CSS 规范转换成兼容性更强的 CSS,所以不需要等待各种浏览器的支持。

PostCSS 的工作原理就是解析 CSS 并将其转换成一个 CSS 的节点数,这可以通过 javascript 来控制,然后返回修改后的树并保存。它与 Sass(预处理器)的工作原理不同,你基本上是用一种不同的语言来编译 CSS。

预处理和后处理的区别

为了简单的方式解释预处理和后处理的不同,这里以单位转换为例。当书写 Sass 时,我们可以用函数px转换成rem:

.selector { margin-bottom: rem(20px); }

.selector { margin-bottom: 1.25rem; }

这种方式节省了我们手工计算的时间。不过通过 PostCSS,我们能够做的更好。因为是后处理的缘故,我们不需要任何函数来编译 CSS。我们可以直接书写px,它可以自动地转换成rem。

.selector { margin-bottom: 20px; }

.selector { margin-bottom: 1.25rem; }

PostCSS 会在每一个px值出现并运行计算之前处理声明,将其转换成rem的值。

cssnext 新特性

cssnext 包含了大量的新特性:

  • 自动提供浏览器前缀支持

  • 自定义属性与 var() 支持

  • 自定义属性集合与 @apply 支持

  • 简化的、更安全的 calc()

  • 可自定义的媒体查询

  • 媒体查询范围

  • 自定义选择器

  • 嵌套

  • image-set()

  • color()

  • hwb()

  • gray()

  • rrggbbaa 颜色

  • rgba() 的降级方案

  • rebeccapurple 颜色

  • font-variant 属性

  • filter 属性

  • inital 值

  • rem 单位的降级方案

  • :any-link 伪类

  • :mathces 伪类

  • :not 伪类

  • :: 伪元素语法的降级方案

  • overflow-wrap 属性的降级方案

  • 不区分大小写的属性

  • 功能增强的 rga()

  • 功能增强的 hsl()

  • sysem-ui 字体

自动提供浏览器前缀支持

自动添加(以及删除过时/没用的前缀),由 autoprefixer 实现

自定义属性与 var() 支持

自定义属性的当前转换旨在提供一种限定在:root选择器中、面向未来的、由原生 CSS 自定义属性提供的新特性。

使用特性:

:root {

--mainColor: red;

}

a {

color: var(--mainColor);

}

自定义属性集合与 @apply 支持

允许你在已命名的自定义属性中存储一套变量,然后在其他类型规则中引用它。

:root {

--danger-theme: {

color: white;

background-color: red;

};

}

.danger {

@apply --danger-theme;

}

简化的、更安全的 calc()

使用优化预分析 var() 引用来允许你更安全的用 calc() 使用自定义变量

:root {

--fontSize: 1rem;

}

h2 {

font-size: calc(var(--fontSize) * 2);

}

可自定义的媒体查询

一个更好的方法来实现语义化的媒体查询

@custom-media --small-viewport (max-width: 30em);

@media (--small-viewport) {

}

媒体查询范围

允许用 <= 和 >=来取代min和max

@media (width >= 500px) and (width <= 1200px) {

}

@custom-media --only-medium-screen (width >= 500px) and (width <= 1200px);

@media (--only-medium-screen) {

}

自定义选择器

允许你创造自己的选择器

@custom-selector :--button button, .button;

@custom-selector :--enter :hover, :focus;

:--button {

}

:--button:--enter {

}

嵌套

允许你使用嵌套选择器

a {

& span {

color: white;

}

@nest span & {

color: blue;

}

@media (min-width: 30em) {

color: yellow;

}

}

image-set() 函数

允许你根据不同的用户设备来提供不同的图片解决方案

.foo {

background-image: image-set(url(img/test.png) 1x,

url(img/test-2x.png) 2x,

url(my-img-print.png) 600dpi);

}

color() 函数

一个颜色函数来修改颜色

a {

color: color(red alpha(-10%));

}

a:hover {

color: color(red blackness(80%));

}

hwb() 函数

与 hs1() 相似,不过更容易阅读

body {

color: hwb(90, 0%, 0%, 0.5);

}

gray() 函数

允许你使用超过50种渐变的灰度值,对于第一个参数,你可以使用 0 - 255 的数值或者百分比。

.foo {

color: gray(85);

}

.bar {

color: gray(10%, 50%);

}

rrggbbaa 颜色值

允许使用4位或者8位十六进制数来表示颜色

body {

background: #9d9c;

}

rgba() 的降级方案

如果你使用的是旧的浏览器(比如 IE8),那么把 rgba() 转换为实体颜色

body {

background: rgba(153, 221, 153, 0.8);

}

rebeccapurple 颜色

允许你使用新的颜色关键词

body {

background: rgba(153, 221, 153, 0.8);

}

font-variant 属性

通过 font-feature-settings降级的一种属性。你可以通过这个链接来查看浏览器支持

h3 {

font-variant-caps: small-caps;

}

table {

font-variant-numeric: lining-nums;

}

filter 属性

W3C 的 filters 只允许使用url(data:*)来转换 svg filter。

.blur {

filter: blur(4px);

}

inital 值

允许你使用如何值的初始值。该值表示属性初始化值所指定的值,但这并不意味着浏览器的默认值。

比如,对于display属性,initial 时钟标示内联,因为这是属性指定的初始值。一个例子,div { display: initial }并不代表block,而是inline。

div {

display: initial;

}

rem 单位

在旧浏览器里将 rem 降级为 px(比如IE8)

h2 {

font-size: 1.5rem;

}

:any-link 伪类

允许你使用:any-link伪类

nav :any-link {

background-color: yellow;

}

:matches 伪类

允许你使用:matches伪类

p:matches(:first-child, .special) {

color: red;

}

:not 伪类

允许你使用支持最多选择器的:not伪类,将此降级为只选择一个选择器的:not

p:not(:first-child, .special) {

color: red;

}

:: 伪元素语法降级

如果你的浏览器是旧浏览器,会将 :: 降级为:。

a::before {

}

overflow-wrap 属性

将overflow-wrap转换为Word-wrap属性

body {

overflow-wrap: break-word;

}

不区分大小写的属性

允许你使用不区分大小写的属性

[frame=hsides i] {

border-style: solid none;

}

功能增强的 rga()

允许你使用由空格分割的参数与可选的由斜线分割的不透明度新语法。

你也可以使用数字来表示颜色通道。

alpha 值接受百分比和数字,并且将 rgb() 作为可选参数。因此 rgb() 和 rgba() 现在是彼此的别名。

div {

background-color: rgb(100 222.2 100.9 / 30%);

}

功能增强的 hs1()

允许你使用由空格分割的参数与可选的由斜线分割的不透明度新语法。

hsl() 现在接受角度(deg, grad, rad, turn)以及用数字表示色调,用百分比或者数字来表示 alpha 值。所以 hsl() 与 hsla() 现在也是彼此的别名。

div {

color: hsl(90deg 90% 70%);

background-color: hsl(300grad 25% 15% / 70%);

}

system-ui 字体

允许你使用 system-ui 通用字体系列。当前转换提供了一个实际的字体列表来作为降级方案。

body {

font-family: system-ui;

}

使用 cssnext 书写未来的 CSS

cssnext 是一个 PostCSS 的包,我们可以在样式表中利用 cssnext 额外增加一些 CSS 规范。

:root {

--heading-color: #ff0000;

}

@custom-selector :--headings h2, h3, h4, h5, h6, h7;

:--headings {

color: var(--heading-color);

}

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

h2,

h3,

h4,

h5,

h6,

h7 {

color: #ff0000;

}

这真的很简洁,其中还有很多令人兴奋的特性。因为我们书写的是未来规范的 CSS,所以 PostCSS 的生成步骤不需要浏览器去执行。

用自定义函数扩展 CSS 的功能

使用 cssnext,我们可以通过 javascript 创建自定义函数来操作被解析的 CSS。在 Sass 中,我们经常使用生成行距的函数(根据基本的 line-height 计算),它有助于创建简单且可维护的垂直韵律。

$line-height: 32px;

@function vr($amount) {

@return $line-height * $amount;

}

.selector { margin-bottom: vr(2) }

.selector { margin-bottom: 64px; }

如果用 PostCSS 做的话,我们可以自定义 CSS 组件而不是函数。

.selector { margin-bottom: 2vr }

.selector { margin-bottom: 64px; }

读到这里,这篇“PostCSS和cssnext的知识点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网html频道。

--结束END--

本文标题: PostCSS和cssnext的知识点有哪些

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

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

猜你喜欢
  • PostCSS和cssnext的知识点有哪些
    本文小编为大家详细介绍“PostCSS和cssnext的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PostCSS和cssnext的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2024-04-02
  • MySQL的知识点有哪些
    本篇内容主要讲解“MySQL的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的知识点有哪些”吧! 1.在Ce...
    99+
    2024-04-02
  • Elasticsearch的知识点有哪些
    本篇内容主要讲解“Elasticsearch的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch的知识点有哪些”吧!本篇主要内...
    99+
    2024-04-02
  • Css的知识点有哪些
    这篇文章主要为大家展示了“ Css的知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ Css的知识点有哪些”这篇文章吧。块元素、内联元素,是一个元素,...
    99+
    2024-04-02
  • HTML5的知识点有哪些
    这篇文章主要讲解了“HTML5的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML5的知识点有哪些”吧!1 :基于HTML5的移动Web应用Canvas绘图:通过获取HTML...
    99+
    2023-06-17
  • JavaScript8的知识点有哪些
    这篇文章主要介绍“JavaScript8的知识点有哪些”,在日常操作中,相信很多人在JavaScript8的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript8的知识点有哪些”的疑...
    99+
    2023-06-27
  • ECharts的知识点有哪些
    本文小编为大家详细介绍“ECharts的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ECharts的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简介ECharts(Enterpris...
    99+
    2023-06-27
  • yolov5的知识点有哪些
    这篇文章主要讲解了“yolov5的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“yolov5的知识点有哪些”吧!一、yolo中txt文件的说明:二、yolo跑视频、图片文件的格式...
    99+
    2023-07-02
  • Vue的知识点有哪些
    本篇内容介绍了“Vue的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.官方介绍Vue (读音 /vjuː/,类似于 view...
    99+
    2023-06-03
  • React的知识点有哪些
    这篇文章主要介绍了React的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇React的知识点有哪些文章都会有所收获,下面我们一起来看看吧。  组件的数据挂载方式,属性(props)props是正常...
    99+
    2023-06-03
  • SwiftUI的知识点有哪些
    这篇文章主要讲解了“SwiftUI的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SwiftUI的知识点有哪些”吧!一、背景苹果于2019年度WWDC全球开发者大会上,发布了基于...
    99+
    2023-06-04
  • HTML和CSS的重难点知识点有哪些
    这篇文章主要介绍“HTML和CSS的重难点知识点有哪些”,在日常操作中,相信很多人在HTML和CSS的重难点知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML...
    99+
    2024-04-02
  • mysql知识点有哪些
    本篇内容主要讲解“mysql知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql知识点有哪些”吧! 1、同步方式 binlog和pos同步、...
    99+
    2024-04-02
  • CSS知识点有哪些
    这篇文章给大家分享的是有关CSS知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、对WEB标准以及W3C的理解与认识 标签闭合、标签小写、不乱嵌套、提高搜索机器...
    99+
    2024-04-02
  • HTML5知识点有哪些
    这篇文章将为大家详细讲解有关HTML5知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML...
    99+
    2024-04-02
  • JS知识点有哪些
    小编给大家分享一下JS知识点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 暂时性死区只要块级作用域存在let命...
    99+
    2024-04-02
  • vue知识点有哪些
    这篇文章主要为大家展示了“vue知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue知识点有哪些”这篇文章吧。一、前端核心分析1.1、概述Soc原则:关注点分离原则Vue 的核心库只...
    99+
    2023-06-22
  • Flex知识点有哪些
    这篇文章主要介绍了Flex知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex简介Flex通常是指AdobeFlex,是最初由Macromedia公司在2004...
    99+
    2023-06-17
  • swoole知识点有哪些
    本篇内容主要讲解“swoole知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“swoole知识点有哪些”吧!swoole聊天室流程讲解整个聊天室流程为:- 用户http接口登录获得授权...
    99+
    2023-06-29
  • django知识点有哪些
    小编给大家分享一下django知识点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、视图函数:请求对象-----------request:HttpReq...
    99+
    2023-06-04
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作