Flexiejs.com имеет браузер polyfill для флеш-фреймов CSS, но он основан на более раннем проекте по этой теме, который несовместим с действующей Рекомендацией кандидата W3C Модуль гибких модулей CSS. Есть ли polyfill, по крайней мере частичный, для гибких ящиков, как определено в CR?
Есть ли polyfill для текущего модуля Flex Flex Box Layout в соответствии с W3C CR (display: flex и т.д.)?
Ответ 1
В настоящее время нет polyfill, который реализует Рекомендацию кандидата W3C.
Автор flexie.js упомянул некоторое время назад, что он работал над обновлением flexie.js, но с тех пор ничего не было опубликовано. Поэтому трудно сказать, действительно ли или когда это произойдет.
Ответ 2
2014 обновленный ответ
Вкратце: во время написания (2014 г.) не существует javascript polyfill, который реализует рекомендацию кандидата W3C.
Существует 2 реализации javascript polyfill:
-
Flexie.js
почти не обновлялось с середины 2012 года - см. график вкладов - и поддерживает только 2009 Flexbox model, это означает ограниченный набор свойств. -
Reflexie.js
по-прежнему остается нетронутым на момент написания (2014 Oct), и, как указано вIlya Streltsyn
в другом ответе ответа, "он все еще" Sooooo не готов к прайм-тайм "", как заявил автор на главной странице проекта. Последняя фиксация была сделана 1 ноября 2012 года...
Ресурсы
Ответ 3
Существует фантастический ресурс Криса Койера:
http://css-tricks.com/using-flexbox/
Проблема заключается в использовании трех черновиков для flexbox. В статье Chris Coyier рассматриваются все три версии и способы их чередования для поддержки кросс-браузера. Я выписал соответствующие биты ниже.
Для display:flex
:
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex;
Для flex:1
:
-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-flex: 1; /* OLD - Firefox 19- */
width: 20%; /* For old syntax, otherwise collapses. */
-webkit-flex: 1; /* Chrome */
-ms-flex: 1; /* IE 10 */
flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */
Для order:1
:
-webkit-box-ordinal-group: 1;
-moz-box-ordinal-group: 1;
-ms-flex-order: 1;
-webkit-order: 1;
order: 1;
Он утверждает, что поддерживает:
- Chrome any
- Firefox any
- Safari any
- Opera 12.1 +
- IE 10 +
- iOS any
- Android any
Я думаю, что остальные свойства flexbox не претерпели изменений, поэтому вы можете просто использовать "стандартный" набор префиксов (-ms
, -moz
, -webkit
, unprefixed).