2015-10-18 38 views
0
工作

我想在IE8中使用Foundation.utils,但我總能得到真正的只有小假就休息,例如:基金會utils的是不是在IE8

Foundation.utils.is_small_only() = true all the time 
Foundation.utils.is_small_up() = false 

當然上面也不會發生因爲如果它只是小的話,那肯定是小起來的...

對此有什麼修正?

回答

0

我寫了自己的解決方案來支持ie8中的utils。 我建立了特定於我的用途(它可以做得更好,但爲什麼要做出努力呢?它只適用於ie8 ..),我相信你仍然可以使用它,即使做了小小的調整。

var win = $(window), 
    bodyFontSize = parseInt(body.css('fontSize')); 

function matchMediaQuery(mediaQuery) 
{ 
    var winWidth = win.outerWidth(), 
     winHeight = win.outerHeight(), 
     mediaQuerySizes = mediaQuery.match(/\d+\.?\d*em/g); 

    if (mediaQuerySizes == null) 
    { 
     return true; 
    } 
    else 
    { 
     mediaQuery = mediaQuery.replace(/^(only screen)(and)?/,'').replace('min-width:',winWidth + '>=').replace('max-width:',winWidth + '<').replace('min-height:',winHeight + '>=').replace('max-height:',winHeight + '<').replace('orientation:landscape',winHeight + '>' + winWidth).replace(' and ',' && ').replace(' or ',' || '); 
     for (var i = 0, len = mediaQuerySizes.length; i < len; i++) 
     { 
      mediaQuery = mediaQuery.replace(mediaQuerySizes[i],parseInt(mediaQuerySizes[i])*bodyFontSize); 
     } 
     return eval(mediaQuery); 
    } 
} 

$.each(Foundation.media_queries, function(key, value) 
{ 
    eval('Foundation.utils.is_' + ((key.indexOf('-') > -1) ? key.replace('-','_') : key + '_up') + ' = function() { return matchMediaQuery("'+value+'"); }'); 
}); 
0

基金會5 doesn't support IE 8在所有,但你可以嘗試this

Foundation FAQ報價:

爲什麼沒有基金會的支持IE7或IE8?或者:爲什麼我們不支持垂死的物種。

這可能是我們得到的最大問題。考慮一下:當今流行的瀏覽器大部分都會自動升級,包括Chrome瀏覽器,Firefox和瀏覽器(從9開始)的 。 IE 8是Windows XP支持的最後一個IE ,微軟將在明年正式停止支持 。這在我們的決定中起了一部分作用。

除此之外,自從Foundation 4開始,我們的框架就構建了移動優先, 這意味着它依賴於媒體查詢來分層更復雜的佈局 和組件。不支持媒體查詢的瀏覽器或設備 將被限制爲簡單的單列布局。在某些方面,基金會4更好地支持IE6-7,因爲它提供了移動 但並非完全破碎的體驗。如果IE8支持對您的用戶/客戶 很重要,那麼您可以使用Foundation 3.2,它支持IE8的 。它不是首先移動的,但它是好東西。