但是,因爲我們都知道在android 2.1/2.3中的支持是有限的,所以我在文本中顯示一個帶有'img'標籤的SVG圖像,並且支持文本svg更加有限。 (這是用於網站上的這個用戶的大量用戶池)如果.svg失敗,顯示div隱藏'img'
因此,我試圖(不是真正的工作)提供一個'div'的內容後備到SVG圖像(代替* .png)。由於缺乏jQuery知識,我使用Modernizr; Modernizr目前還沒有用於其他任何項目。理想情況下,如果可能,我想完全刪除Modernizr,這就是爲什麼我在這裏:處理這個問題的最佳方法是什麼?如果Modernizr實際上是檢測支持的最佳方法,那麼我會繼續使用它,無論如何,在document.ready
之前完全從DOM中刪除「img」標記?
該div有schema.org微數據的日期,所以我只是在視覺上隱藏它。
或...它只是在語義上更準確地去'div'上的背景圖像和最初顯示內容?使用這種方法,我可以使用.no-svg
,但仍然包含Modernizr。無論如何,我會對此更加滿意,因爲css對我來說更有意義。
或...有沒有更好的方法呢?因爲我即將訴諸於* .png,我還沒有得到svg fallback在android 2.1-2.3中一直正常顯示。
HTML
<img src="img/dates.svg" width="300" height="500" class="dates-svg" alt="important dates">
<div class="svg-fallback vh"> ... </div>
JS
if (!Modernizr.svg) {
$('img[src$=.svg]').hide(); //if .svg not supported <img> display:none
$('.svg-fallback').removeClass('vh'); //make visible
}
CSS
.vh{
position: absolute;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
margin: -1px;
border: 0;
padding: 0;
width: 1px;
height: 1px ;
overflow: hidden;
}
測試JS
if (!Modernizr.svg) {
$('.svg-fallback').removeClass('vh');
} else {
$('.svg-fallback').addClass('vh').add('<img src="img/dates.svg'...>');
}
是啊,我剛纔注意到並固定。打字很快。 – darcher
因此,本質上只顯示div,如果支持.svg'$(「.svg-fallback」).append(「
」);'?同時向div本身添加一個'.vh'類?或相反亦然? –
darcher
如果支持SVG,DIV(以及其中的所有內容)將不在那裏,如果SVG不受支持,jQuery將附加該DIV並刪除SVG。 – fulla