程序员成长-修炼中心 「作者:陈楚城」
导航
博客文章
  • Github (opens new window)
  • 掘金 (opens new window)
组件库 (opens new window)
关于我

chamberlain

前端持续学习者
导航
博客文章
  • Github (opens new window)
  • 掘金 (opens new window)
组件库 (opens new window)
关于我
  • 写在前面
  • vue3学习总结

  • 项目相关

  • 性能优化

  • 你不知道的css

    • css
    • cssHoudini
      • Houdini API介绍
      • Parser、Paint、Layout API (扩展CSS词法分析器)
        • 新增Api
      • 未完待续
    • css_matrix
    • css_split
  • 常见问题总结记录

  • 数据结构与算法

  • 设计模式

  • TS & JS进阶

  • Node

  • HTTP

  • Linux

  • 开发工具篇

  • 收藏夹

  • OS

  • Nginx

  • 项目工程化

  • 数据库

  • 计算机网络

  • 环境搭建、项目部署

  • 常用工具

  • 自动化

  • js相关

  • QA相关

  • 文章收藏

  • note
  • cssNote
chamberlain
2022-03-14
目录

cssHoudini

# CSS魔术师Houdini

# Houdini API介绍

1597053160429_F13918A6-6A09-4648-B191-9F7AB6BF5826

在现今的 Web 开发中,JavaScript 几乎占据所有版面,除了控制页面逻辑与操作 DOM 对象以 外,连 CSS 都直接写在 JavaScript 里面了,就算浏览器都还沒有实现的特性,总会有人做出对应 的 Polyfills,让你快速的将新 Feature 应用到 Production 环境中,更別提我们还有 Babel 等工具 帮忙转译。

而 CSS 就不同了,除了制定 CSS 标准规范所需的时间外,各家浏览器的版本、实战进度差异更是 旷日持久,顶多利用 PostCSS、Sass 等工具來帮我們转译出浏览器能接受的 CSS。开发者们能操 作的就是通过 JS 去控制 DOM 与 CSSOM来影响页面的变化,但是对于接下來的 Layout、Paint 与 Composite 就几乎沒有控制权了。

为了解決上述问题,为了让 CSS 的魔力不再浏览器把持,Houdini 就诞生了!( Houdini 是美国的 伟大魔术师,擅长逃脱术,很适合想将 CSS 从浏览器中解放的概念) CSS Houdini 是由一群來自 Mozilla, Apple, Opera, Microsoft, HP, Intel, IBM, Adobe 与 Google 的工程 师所组成的工作小组,志在建立一系列的 API,让开发者能够介入浏览器的 CSS engine

# Parser、Paint、Layout API (扩展CSS词法分析器)

# 新增Api

  • CSS Parser API (opens new window)还没有被写入 规范,所以下面我要说的内容 随时都会有变化,但是它的基 本思想不会变:允许开发者自 由扩展 CSS 词法分析器,引 入新的结构(constructs), 比如新的媒体规则、新的伪 类、嵌套、@extends、 @apply 等等。只要新的词法分析器知道如何 解析这些新结构,CSSOM 就 不会直接忽略它们,而是把这 些结构放到正确的地方。
  • CSS Layout API (opens new window)允许开发 者可以通过 CSS Layout API 实现自己的布局模块 (layout module),这里 的“布局模块”指的是 display 的属性值。也就是 说,这个 API 实现以后, 开发者首次拥有了像 CSS 原生代码(比如 display:flex、 display:table)那样的布 局能力。
  • CSS Paint API (opens new window) 和 Layout API 非常相似。它提供了一个 registerPaint 方法,操作方式和 registerLayout 方法也很相似。当想要构建一个CSS 图像的时候,开发者 随时可以调用paint() 函 数,也可以使用刚刚注册好的名字。

# 未完待续

更新时间: 3/15/2022, 12:28:01 AM
css
css_matrix

← css css_matrix→

最近更新
01
02
网站
06-10
03
nav
06-09
更多文章>
Theme by Vdoing | Copyright © 2019-2022 chamberlain | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式