編寫網站的時候測試各個瀏覽器
發現使用IE11 有設定相容性的時候會導致整個畫面跑版
有先搜了一下大多解法都是在head裡新增
<meta http-equiv=”x-ua-compatible” content=”IE=edge, chrome=1">
不過試過還是無效,想問看看還有其他解法或是可以從哪裡下手?
PS.應要求是無法將相容性關掉的
一般畫面會跑版的情況根源還是來自於排版的配版能力不夠。無法設計成多瀏覽器的樣式處理。
一般來說,像你說的用x-ua-compatible宣告版本的方式,也只是治標不治本。
當然了,要重新改寫一套新的配版也不是一件簡單的事。
所以大多數而言就是採用判斷式的配版處理了
在html標簽上用
<!--[條件式]>html標簽<![endif]-->
條件式可以用如下的寫法
If IE7:如果是瀏覽器版本是IE7的話
if lt IE 7:lt,less than,如果瀏覽器版本小於IE7
if lte IE7:lte,less than or equal,如果瀏覽器版本小於或等於IE7的話
if gt IE7:gt,greater than,如果瀏覽器版本大於IE7的話
if gte IE7:gte,greater than or equal,如果瀏覽器版本大於或等於IE7的話
If (gte IE6)&(lt IE9):&,and運算子,當兩個括號裡的條件都成立時執行程式
If (gte IE6)|(lt IE9):|,or運算子,當兩個括號裡的條件成立一個時執行程式
範例:
<!--[if lte IE9]><div class="use_ie9">IE9以下用的</div><![endif]-->
<!--[if gt IE9]><div class="use_ie11">IE10以上用的</div><![endif]-->
再配合一下x-ua-compatible或是css及js的對應處理。因該可以勉強解決你的問題。
但如果可以的話,最好還是設計成多瀏覽器配合的佈局會比較好。
推!勉強解決你的問題
另外提外話,其實我這邊開發的專案,已不針對ie9以下的版本支援了。
一但客戶使用了ie9以下的版本。我會直接跳出不支援並給與chrome的下載連結提供給客戶下載使用。
曾經有客戶堅持要相容ie9以下,連ie6也要支援,我直接將價格開2倍。並說明要做是可以的,但這等於是二次工。所以我需要加倍的金額。如你不堅持的話則可以省一半。
認真來說,開2倍其實不過份。因為事實上來說,光ie6就有很多需要利用js的技術來達到在ie9能做到的事。很費工
說實在話,
ie6我覺得2倍太少了...
不過公家機關有可能還在用ie6...
公家機關壓..
是IE6..而且還不可用其他瀏覽器以及升級為IE8
找到一個可以檢查相容性模式的。不過我沒用過。
https://github.com/Gavin-Paolucci-Kleinow/ie-truth
公家機關也是不得已的,資訊沒預算,要不然就是留不住技術好的,外面的待遇還比較好。
不過除了中小學以外,這狀況應該會漸漸改變,因為最近資安要求越來越嚴格了。
針對 IE瀏覽器 顯示的問題,最乾脆也最正確的作法就是請公司養個美編待命,隨時準備重刻頁面版型!這部分單靠js調整
真的是治標不治本!況且連微軟都不再支援與更新 IE 了,該訓練客戶習慣其他瀏覽器了!
貼幾篇版上的討論給你參考參考:
以css中的{display:none}設定(隱藏)列印範圍,在ie6無解?
IE7、IE8、IE9網頁DIV CSS不兼容
Google Chrome 在HTML的顯示上與IE或FireFox不一致?
...
搜尋關鍵字可下 IE css