为什么没有适用于 IE9 等旧版浏览器的 flexbox polyfill?
Why isn't there a flexbox polyfill for older browsers like IE9?
是否有一些问题阻止人们创建它?是不是太复杂了?
也许根本不需要那个?
它是否已经创建了,我只是找不到它?
我想象它是一个基于 js 的库并以这种方式工作:
检查浏览器是否原生支持 flexbox;
如果没有,则解析CSS并检查元素是否有flexbox相关规则;
如果是,它会尝试通过 javascript 计算子元素的所有位置和大小并使用 position: absolute;
定位它们来模拟这些规则。
基本上,与 Masonry 和类似库所做的相同,但使用 flexbox 规则。可以吗?
编辑:this question 没有解释为什么不能完成。
"emulate these rules via javascript" 是 "most impossible" 部分。
- flex box 纯粹是 position:static 东西,你不能移动它
position:absolute层(这后面的东西太多了);
- flex box 计算是在 JS 不可用的所谓渲染树上进行的;
为了将 JS 用于静态布局目的,浏览器应该有一种机制将用户代码连接到渲染树的形成和布局:
div { layout: myFlexManager url(my-layouts.js); }
但是一旦浏览器拥有这样的功能,flexbox 就会被抛弃,因为这是有史以来最糟糕和最丑陋的 CSS 规范——社区会想出更好的东西——更简单、更实用。
实际上有一个库完全符合我的要求:https://github.com/jonathantneal/flexibility
它处于开发的早期阶段,但希望它很快就会可行。
是否有一些问题阻止人们创建它?是不是太复杂了?
也许根本不需要那个?
它是否已经创建了,我只是找不到它?
我想象它是一个基于 js 的库并以这种方式工作:
检查浏览器是否原生支持 flexbox;
如果没有,则解析CSS并检查元素是否有flexbox相关规则;
如果是,它会尝试通过 javascript 计算子元素的所有位置和大小并使用
position: absolute;
定位它们来模拟这些规则。
基本上,与 Masonry 和类似库所做的相同,但使用 flexbox 规则。可以吗?
编辑:this question 没有解释为什么不能完成。
"emulate these rules via javascript" 是 "most impossible" 部分。
- flex box 纯粹是 position:static 东西,你不能移动它 position:absolute层(这后面的东西太多了);
- flex box 计算是在 JS 不可用的所谓渲染树上进行的;
为了将 JS 用于静态布局目的,浏览器应该有一种机制将用户代码连接到渲染树的形成和布局:
div { layout: myFlexManager url(my-layouts.js); }
但是一旦浏览器拥有这样的功能,flexbox 就会被抛弃,因为这是有史以来最糟糕和最丑陋的 CSS 规范——社区会想出更好的东西——更简单、更实用。
实际上有一个库完全符合我的要求:https://github.com/jonathantneal/flexibility
它处于开发的早期阶段,但希望它很快就会可行。