我試圖將基於表和JS的舊布局轉換為新的Flexbox,並通過保持舊瀏覽器的表向後兼容。
問題是,沒有 display:flex-item 可以替代舊的display:table-cell 樣式。
我嘗試了不同的定義,比如 display:inherit,display:initial,但無法重置顯示定義以正常工作。
/* CSS Table Layout */
.layout { display: table; width: 100%; }
.layout>. picture { display: table-cell; width: 30%; }
.layout>. details { display: table-cell; width: auto; }
/* CSS Flexbox - ignored by browsers that does not support it */
/* just an example - should use all versions for best compatibility */
.layout { display: flex; }
.layout>. picture { display:???; flex: 0 1 30%; }
.layout>. details { display:???; flex: 1 1 auto; }
為 .details 顯示的任何內容都不能作為flex項目使用,並且不會增加,以填充剩餘的空間。
如何在不使用JS檢測瀏覽器版本和 switch 樣式的情況下重寫這一?
不過,我已經嘗試了搜索解決方案,但是大部分結果只是關於Flexbox的一般文章,只有類似的是 ,這隻是不解決逆向問題。
更新 1: 這是一個 JSFiddle演示插件,它是一個純Flexbox和Flexbox結合的table 布局。 如果調整結果窗口的大小,則純布局將與合併 table 和Flexbox的底部的布局不同。 注意:在 Chrome 中這個工作正常,在 Firefox 。IE 。Safari等中嘗試。
更新 2: Safari可以正確使用前綴定義。 更新JSFiddle演示程序