columns.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*!
  2. {
  3. "name": "CSS Columns",
  4. "property": "csscolumns",
  5. "caniuse": "multicolumn",
  6. "polyfills": ["css3multicolumnjs"],
  7. "tags": ["css"]
  8. }
  9. !*/
  10. define(['Modernizr', 'testAllProps'], function(Modernizr, testAllProps) {
  11. (function() {
  12. Modernizr.addTest('csscolumns', function() {
  13. var bool = false;
  14. var test = testAllProps('columnCount');
  15. try {
  16. bool = !!test;
  17. if (bool) {
  18. bool = new Boolean(bool);
  19. }
  20. } catch (e) {}
  21. return bool;
  22. });
  23. var props = ['Width', 'Span', 'Fill', 'Gap', 'Rule', 'RuleColor', 'RuleStyle', 'RuleWidth', 'BreakBefore', 'BreakAfter', 'BreakInside'];
  24. var name, test;
  25. for (var i = 0; i < props.length; i++) {
  26. name = props[i].toLowerCase();
  27. test = testAllProps('column' + props[i]);
  28. // break-before, break-after & break-inside are not "column"-prefixed in spec
  29. if (name === 'breakbefore' || name === 'breakafter' || name === 'breakinside') {
  30. test = test || testAllProps(props[i]);
  31. }
  32. Modernizr.addTest('csscolumns.' + name, test);
  33. }
  34. })();
  35. });