我正在嘗試製作跨瀏覽器的Flexbox佈局,以顯示彼此並排放置的卡片。當所有卡片有足夠的空間時,它們應該左對齊或右對齊(由「左」和「右」類別確定),但當沒有足夠空間時縮小。縮小時,將鼠標懸停在卡上會使其縮小,從而可以查看更多內容。Safari中的Flexbox:增長和縮小
這麼多談論這個,live demo here如果你願意。
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中增長和縮小flexboxes的任何幫助表示讚賞。我不想回退到舊的基於表格的佈局,因爲它往往會在IE和FF中破解。
如果我可以專門針對Safari,那將會非常棒,但它仍然適用於所有瀏覽器。 – TwiNight 2013-04-22 18:55:48
乾杯人!我把這個(.cards)放入.flex中,然後我就可以在我的sass(scss)中@extend .flex!奇蹟般有效 :) – Volte 2014-09-28 18:17:23