2016-02-01 3 views
32

Столбцы сетки с тегами списка, мне нужно отображать в правильном порядке на каждые 3 столбца, с автоматической шириной, включенной для каждого дополнительного элемента списка HTML.Код Flexbox работает во всех браузерах, кроме Safari. Зачем?

Это мой пример:

<style> 
 
     ul { 
 
      margin: 0; 
 
      padding: 0; 
 
      display: -webkit-flex; 
 
      display: flex; 
 
      -webkit-flex-wrap: wrap; 
 
      -ms-flex-wrap: wrap; 
 
      flex-wrap: wrap; 
 
      -webkit-flex-direction: column; 
 
      -ms-flex-direction: column; 
 
      flex-direction: column; 
 
      height: 150px; 
 
      width:auto; 
 
     } 
 
    
 
     li { 
 
      float: left; 
 
      display: inline-block; 
 
      list-style: none; 
 
      position: relative; 
 
      height: 50px; 
 
      width: 50px; 
 
     } 
 
    </style>
<ul> 
 
    <li>1</li> 
 
    <li>2</li> 
 
    <li>3</li> 
 
    <li>4</li> 
 
    <li>5</li> 
 
    <li>6</li> 
 
    <li>7</li> 
 
    <li>8</li> 
 
    <li>9</li> 
 
    <li>10</li> 
 
    <li>11</li> 
 
    <li>12</li> 
 
    </ul>
Это то, что я пытался до сих пор и работает абсолютно нормально на любом другом браузере, но не совместим с браузером Safari, если я не добавить: display: -webkit-flex;.

Я хочу, чтобы преобразовать такой вывод:

1 4 7 10 
2 5 8 11 
3 6 9 12 

Это важно, чтобы я получить эту работу для браузера Safari до сих пор я не могу показаться, чтобы решить эту проблему вообще, я бы присвоить любую помощь :)

Test ссылка:

http://jsfiddle.net/rafcastro77/3zd7yspg/59/

ответ

58

Flexbox является CSS3 технологии. Это означает, что он относительно новый, и некоторые браузеры не обеспечивают полную поддержку гибких свойств.

Вот изношенном:

  • IE 8 и 9 не поддержки Flexbox. Если вы хотите использовать свойства flex в этих браузерах, не беспокойтесь тратить свое время. A flexbox polyfill сделал раунды какое-то время, но это не сработало и больше не поддерживается.

  • IE 10 поддерживает previous version of flexbox и требует vendor prefixes. Имейте в виду, что некоторые свойства текущей спецификации не поддерживаются в IE10 (например, flex-grow, flex-shrink и flex-basis). См. Flexbox 2012 Property Index.

  • IE 11 хороший, но неисправный. Он основан на current flexbox standard. См. ИЗВЕСТНЫЕ ВОПРОСЫ вкладка this page для некоторых проблем. Также см .: flex property not working in IE

  • С Chrome, Firefox и Edge вы все вокруг. Вы найдете незначительные ошибки и несоответствия, но обычно есть простые исправления. Вам нужно знать Implied Minimum Flex Sizing, что иногда вызывает проблемы с размерами и прокруткой.

  • Safari версии 9 и выше поддерживают текущую спецификацию flexbox без префиксов. Однако для старых версий Safari требуется -webkit- префиксов. Иногда min-width и max-width вызывают проблемы выравнивания, которые могут быть устранены с помощью flex эквивалентов. См Flex items not stacking properly in Safari

Для полного обзора поддержки Flexbox браузера, видит эту страницу: http://caniuse.com/#search=flex

Для быстрого способа добавить многие (но не обязательно все) префиксы использовать Autoprefixer.Для Safari см. this article для -webkit- префиксов, которые не содержат некоторые префиксные генераторы.

Список распространенных ошибок ошибок и их обходные пути см. В Flexbugs.

Кроме того, на этом сайте, есть:

8

Это работает для меня дисплея: -webkit-инлайн-бокс; в сафари.

Смежные вопросы