CSS
CSS 是浏览器中用来指定文档如何展示给用户的一门语言——如网页的样式、布局、等等,不仅限于浏览器,它也被其它的一些 UI 开发库所支持,而出于研发和学习成本上的考虑,LCUI 也选择采用 CSS 来控制界面样式。
LCUI 将 CSS 引擎划分为数据库和解析器两模块,前者用于将 CSS 数据以便于操作和查询的数据结构存储在内存中,而后者则负责将包含 CSS 代码的字符串解析成适合读写的数据结构并添加到数据库中。
在接下来的章节中,我们将介绍 CSS 引擎的工作原理、数据存储、查询方式和常用接口的用法,希望你在看完后能够对它有更深入的理解,当然,如果你能够发现一些问题并向我们提供改进方案的话,那就更好了。
待办事项
重新设计 CSS 引擎
新的 CSS 引擎应该解决以下问题:
- 可作为一个独立的项目,能被编译为函数库供其它项目使用
- 可创建多个 CSS 库实例,而不是现在这样全局共用同一个 CSS 库
- 可轻松扩展新的语法解析器
- 可轻松添加新的 CSS 属性解析器
- 有完整的测试用例,且 测试覆盖率达到 80% 以上
- 参考 CSS 的标准文档,采用严谨的单词来命名标识符
📄️ CSS 数据库
CSS 数据库的增删改查操作和相关概念介绍。
📄️ CSS 解析器
CSS 解析器的流程和解析器的添加方法介绍。