CSS

CSS 引擎的工作原理、相关概念和相关接口用法介绍。

CSS 是浏览器中用来指定文档如何展示给用户的一门语言——如网页的样式、布局、等等,不仅限于浏览器,它也被其它的一些 UI 开发库所支持,而出于研发和学习成本上的考虑,LCUI 也选择采用 CSS 来控制界面样式。

LCUI 将 CSS 引擎划分为数据库和解析器两模块,前者用于将 CSS 数据以便于操作和查询的数据结构存储在内存中,而后者则负责将包含 CSS 代码的字符串解析成适合读写的数据结构并添加到数据库中。

在接下来的章节中,我们将介绍 CSS 引擎的工作原理、数据存储、查询方式和常用接口的用法,希望你在看完后能够对它有更深入的理解,当然,如果你能够发现一些问题并向我们提供改进方案的话,那就更好了。

待办事项

重新设计 CSS 引擎

新的 CSS 引擎应该解决以下问题:

  • 可作为一个独立的项目,能被编译为函数库供其它项目使用

  • 可创建多个 CSS 库实例,而不是现在这样全局共用同一个 CSS 库

  • 可轻松扩展新的语法解析器

  • 可轻松添加新的 CSS 属性解析器

  • 有完整的测试用例,且测试覆盖率达到 80% 以上

  • 参考 CSS 的标准文档,采用严谨的单词来命名标识符