2011-10-12 34 views
1

我正在使用Modernizr來檢測瀏覽器是否支持我正在構建的移動網站的CSS3屬性background-size儘管Modernizr認爲它應該在Opera Mini中使用背景大小

我在的Opera Mini 6模擬器the official Opera website測試站點,Modernizr的檢測瀏覽器支持background-size,並相應增加了類「backgroundsize」到<html>元素。

但是,當我在我的CSS中使用background-size屬性時,它不受支持。

這裏的頭:

<script src="modernizr.js" type="text/javascript"></script> 

<style> 

body { 
    background:url('background.gif') no-repeat 0 0 #FFF; 
} 

.backgroundsize body { 
    -o-background-size: 100% auto; 
    background-size: 100% auto; 
} 

</style> 

而且主體內容

<p>Content</p> 

<script> 
if (Modernizr.backgroundsize == true) {alert("Background size is supported");} 
</script> 

我期待單一的背景圖像跨瀏覽器的全寬進行拉伸,而是重複;頁面可以在這裏看到 - http://so.ajcw.com/mobile.htm

我猜想發生了五件事之一 - 有沒有人知道原因,並可以提供解決方案?

  1. Modernizr的不正常工作,並給予了假陽性
  2. 的Opera Mini 6不當告訴Modernizr的支持背景大小,當它doen't
  3. 模擬器是不準確的仿真和真實歌劇院迷你支持背景大小
  4. 我寫錯了我的代碼
  5. 還是別的?

回答

2

background-sizenot supported in Opera Mini

+0

這就是我想說的結論,但鏈接非常有幫助,謝謝。我已經通過在Modernizr腳本的背景大小函數週圍添加條件瀏覽器檢測來解決該問題。不理想,但似乎做的工作。 – ajcw

+0

實際上,我甚至用javascript'var bgSize =('documentSize'在document.documentElement.style中)測試;',其他事情正在發生 –

1

我寫了這是一個快速的解決方法:

var isOperaMini = (navigator.userAgent.indexOf('Opera Mini') > -1); 
if(isOperaMini) { 
    var root = document.documentElement; 
    root.className += " opera-mini"; 
} 

這增加的一類 「歌劇迷你」 HTML元素。因此您可以定位Opera Mini。下面舉個例子:

.icon { 
    background-image: url("icon-social.svg"); 
    background-size: 32px; 
} 

html.opera-mini .icon, 
html.no-svg .icon { 
    background-image: url("icon-social.png"); 
} 

多見於:http://anthonydillon.com/blog/#sthash.VUV1hIy2.dpuf

0

@因爲它不是復位/去除背景大小屬性的Opera Mini安東尼的回答是行不通的。要做到這一點,正確的方法是:

.class { 
    -o-background-size:cover; 
    -background-size:cover; 
} 
x:-o-prefocus, .class { 
    -o-background-size:; 
    background-size:; 
} 

X:-o-預聚焦目標只是Opera瀏覽器。

1

看來情況已經改變。對於我在Android上的Opera Mini 7.5。

Modernizr.backgroundsize == true; 

並正確響應百分比值以及爲covercontain