我正在尝试制作一种跨浏览器的 flexbox 布局,以显示彼此并排放置的卡片。当所有卡片都有足够的空间时,它们应该左对齐或右对齐(由“左”和“右”类确定),但在没有空间时缩小。缩小时,将鼠标悬停在卡片上会使其缩小得更少,从而可以查看更多内容。
说了这么多,如果您愿意,可以在这里进行现场演示。
CSS:
img{
width:90px;
position: absolute;
}
.cards{
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: row;
-webkit-justify-content: flex-start;
-ms-flex-direction: row;
-ms-justify-content: flex-start;
flex-direction: row;
justify-content: flex-start;
}
.cards.right{
float: right;
-webkit-flex-direction: row-reverse;
-webkit-justify-content: flex-end;
-ms-flex-direction: row-reverse;
-ms-justify-content: flex-end;
flex-direction: row-reverse;
justify-content: flex-end;
}
.cards div{
position:relative;
-webkit-flex: 0 2 90px;
-ms-flex: 0 2 90px;
flex: 0 2 90px;
-webkit-box-flex: 0 2 90px;
transition: flex-shrink .3s;
transition: flex-shrink .3s, -webkit-flex .3s;
-webkit-transition: -webkit-flex .3s;
}
.cards.left div:last-child, .cards.right div:first-child{
-webkit-flex: 0 0 90px;
-ms-flex: 0 0 90px;
flex: 0 0 90px;
-webkit-box-flex: 0 0 90px;
}
.cards.left div:not(:last-child):hover, .cards.right div:hover+div{
-webkit-flex: 0 1 90px;
-ms-flex: 0 1 90px;
flex: 0 1 90px;
-webkit-box-flex: 0 1 90px;
}
到目前为止,我已经在 IE、FF、Chorme 和 Opera 的最新版本中成功创建了所需的布局。
但是,我遇到了 Safari 的问题。它们的布局取决于能够为增长和收缩指定不同的灵活性,但据我所知,Safari 不支持这一点。
任何有关在 Safari 中增长和缩小 flexbox 的帮助都将不胜感激。我不想回退到我旧的基于表格的布局,因为它往往会在 IE 和 FF 中中断。