切換CSS和IE下的透明PNG

今天做新模板的DEMO頁面,遇到兩個問題:
1.實時切換CSS樣式
2.給切換樣式的<Select>標籤所在div加了個背景圖片,需要使用透明PNG圖片

這兩個問題以前就遇到過,但這東東也不經常用,就知道這兩個問題可以解決,並沒有記如何解決,搜了一下,然後改了改代碼就成了。

下面一個個問題解決:

1.實時切換CSS樣式
首先,因爲我並不需要記錄用戶所更換的樣式,所以不必使用Cookie,就用這個方法來實現切換行爲:
styleswitcher.js

function setActiveStyleSheet(title) {
var i, a, main;
if (title) {
for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) {
a.disabled = true;
if(a.getAttribute('title') == title) a.disabled = false;
}
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled) return a.getAttribute('value');
}
return null;
}

由於用到下拉框,所以把要使用的樣式名稱都放這裏:
index.html

<select οnchange="setActiveStyleSheet(value)">
<option value="ac">ac</option>
<option value="ac2">ac2</option>
<option value="ac3">ac3</option>
</select>

樣式表文件放到那裏你知道的,注意兩點:
1.rel="stylesheet"表示默認顯示,而其餘的都rel="alternate stylesheet"
2.加title,如title="demo1" />

在這裏可以參與討論

2.給切換樣式的<Select>標籤所在div加了個背景圖片,需要使用透明PNG圖片

/* For IE 6.0 */
* html #switchStyle{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src="img/bgcanvas.png");
background:none;
}

值得一提的是todd的說明:

使用這個濾鏡調用的圖片文件地址必須是相對於頁面文件的,而不是像普通的背景一樣,是相對於css文件的。
發佈了1 篇原創文章 · 獲贊 0 · 訪問量 2375
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章