html - Flexbox 代码适用于除 Safari 之外的所有浏览器。为什么?

标签 html css flexbox

带有列表标签的网格列,我需要每 3 列以正确的顺序显示,并为每个额外的 HTML 列表元素启用自动宽度。

这是我的例子:

 <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 浏览器上工作到目前为止我似乎根本无法解决这个问题,我会提供任何帮助:)

测试链接:

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

最佳答案

Flexbox 是一种 CSS3 技术。这意味着它相对较新,一些浏览器不提供对 flex 属性的完全支持。

这是一个破败的:

有关 flexbox 浏览器支持的完整评论,请参阅此页面: http://caniuse.com/#search=flex

要快速添加许多(但不一定全部)供应商前缀,请使用 Autoprefixer .对于 Safari,请参阅 this article对于某些前缀生成器不包含的 -webkit- 前缀。

有关常见 flex 错误及其解决方法的列表,请参阅 Flexbugs .

另外,在这个网站上,还有:

关于html - Flexbox 代码适用于除 Safari 之外的所有浏览器。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38808715/

相关文章:

css - 如何使两个 Flex 列在 CSS 中表现得像一个表格?

javascript - 使用jquery自动触发点击

javascript - 在外部 javascript 文件中获取 asp 控件 ID 的最佳方法是什么?

css - 透明 png 作为背景图像

javascript - 如何在小屏幕上折叠侧边栏?

html - Flex box 没有相互对齐

html - 将 div 置于其他两个具有自动高度的 div 之上

html - 将鼠标悬停在图像上,显示文本和不透明度变化

javascript - 如何在 css 关键帧中存储内容或元数据?

css - highcharts-ng 在 flexbox 中增长但不收缩