Reflexie:为成熟的Flexbox打造的高级polyfill
请注意:该项目目前尚未准备好用于生产环境。还有很多工作要做,更多信息请查看问题和里程碑。
初始化项目
要开始使用Reflexie,首先克隆仓库,并在你的项目根目录下执行:
git submodule update --init
npm install
快速上手
启动服务器:
npm start
如果修改了代码,通过运行以下命令实现实时编译:
grunt watch
创建新的测试环境
使用最新版Chrome访问0.0.0.0:9090/generate,保存文件时页面会自动重载并生成一个新的测试值集合。建议使用标准版Chrome来反映当前的实现情况。
对于Safari、Firefox和IE,请访问0.0.0.0:9090/runner,它们将监听测试床的更改并相应地重新加载页面。
你可以使用test/views/tester.html
来调试特定的flexbox属性。
自动化测试
为了构建相关测试,采用了一种基于对角线方法(源自James Bach)的pairwise算法。要在项目根目录生成新集,确保已安装Perl后运行:
node test/data/pairwise/generate-tests.js
贡献代码
请遵循.jshintrc
中设置的JSHint规则编写代码,并尽量保持现有的代码风格。请使用分号,使用制表符缩进。
本项目遵循git-flow模式。开发在develop
分支进行,只有当所有测试都成功通过时,内容才会推送到master
分支。
自由创建分支。使用特性分支组织你的更改。按照git-flow模型进行分支管理。
频繁提交拉取请求。每个拉取请求应按其目的分开,不要合并多个更改。拉取请求应针对develop
分支,除非所有测试都通过,否则不应向master
分支发起拉取请求。
当前注意事项
-
清除浮动与
display: flex
混用会导致Chrome报告奇怪的值。唯一的解决办法是使用overflow: hidden
。 -
目前还不支持IE10,因为这是一个让人头痛的浏览器。(讽刺)
-
还有很多(很多)需要探索,包括建立一个完整的CSS解析引擎。
-
需要帮助!
Reflexie是一个面向成熟开发者且专注于Flexbox的polyfill,它旨在提供与最新Chrome浏览器相媲美的功能。尽管目前还处于早期开发阶段,但其潜力显而易见。对于那些希望在旧版本浏览器中实现先进布局功能的开发者来说,这是一个值得期待的工具。尽管存在一些限制,但随着社区的贡献,这些限制有望逐步消除。如果你热爱挑战,并愿意参与到这个项目中,那么Reflexie无疑是你展示技术实力的理想平台。