flex布局有什麼方法能兼容國內瀏覽器的雙核模式?

flex布局在前端用的非常舒服,float太難用了,打死都不會用的,但是國內奇葩的主流瀏覽器用了兩種內核,偏偏兼容的內核還是低版本的,導致在極速模式下用flex能正常使用但是兼容模式不兼容。。。我很憂傷也很苦惱,想問下各路大牛,有沒有什麼方法能讓flex能兼容兩種內核的瀏覽器!!!或者幫忙推薦個好用的布局方式,謝謝


flex布局不支持低版本ie內核是確定了,沒辦法的改變的事實,但是國產瀏覽器採用哪一個內核打開你的頁面,這個是你可以控制的。在html的&標籤中加入如下代碼:

&

然後瀏覽器打開你的頁面時,會默認採用chrome內核來渲染頁面,這是360瀏覽器的功能,其他國產瀏覽器也支持。

但是用戶非要點擊「兼容模式」怎麼辦?我們還可以控制瀏覽器調用的ie渲染引擎的版本。在html的&標籤中加入如下代碼:

&

這個指令不要被edge這個單詞迷惑,他指的不是edge瀏覽器。而是告訴ie渲染引擎,使用最新內核,且採用標準模式渲染頁面。

chrome這個指令也建議保留,他是讓IE用戶打開你的網頁時,嘗試調用chrome框架插件的。這是一個很老的ie插件,google出品,讓ie支持chrome內核。

最後這兩個指令都添加完畢之後,能實現這樣的效果,國產瀏覽器打開你的網頁時,優先調用chrome內核渲染。如果用戶強制點擊,選擇兼容模式,會調用操作系統內安裝的IE的標準模式渲染你的頁面。如果用戶的操作系統內安裝了ie10或以上,則正常顯示flex。如果用戶使用ie打開你的頁面,當ie版本是9以上,或者系統內安裝了chrome框架插件,flex也能正常工作。

雙內核瀏覽器內核切換控制技術 - 掘金?

juejin.im


flex,我只會用在移動端,因為它沒有兼容問題。

pc端,我從不用flex(只是自己偏執的想支持ie8),但還是大部分布局需求都能實現(用其它解決方案)。

float 我一般不用,轉之用absolute多一些。

不過,我不覺得float不好(bootstrap中還是不少地方用到了float),應該是自己太懶,基本功不夠而已。


推薦閱讀:

手機端網頁的頭部meta標籤裡面都應該配置些啥?
為何現在前端很少有網站使用FLEX布局?
如何快速開發一個漂亮的網站?包括前端的設計,css布局等
如何通過CSS使得子控制項相對於父控制項居中?
html布局時,元素塊上下間距,用margin-top還是中間插入一個空元素給定height?

TAG:前端開發 | 網頁布局 | 前端入門 | 瀏覽器兼容性 | CSS布局 |