TIPS-Hide <select> On IE6

前幾天我寫了篇帖子介紹利用高z-index+半透明Filter DIV做為HTML元件防點防選防編遮片的點子,不過留了個尾巴: 在IE6上,<select>是誰都蓋不住的!

事實上,IE Team自己也知道這個問題,並高興地在Blog中宣佈在IE7中總算做了改善(http://blogs.msdn.com/ie/archive/2006/01/17/514076.aspx),可是,使用IE6的User不在少數,總不能強迫所有User都升級IE7吧?

這幾天,認真地考慮將它用在我的專案中,在前端作出防編輯的效果。為了解決頭痛的IE6 <select>,在Google上用力地找了一番,結果找到一個天才發現的方法(http://www.hedgerwow.com/360/bugs/css-select-free.html),利用iframe z-index:-1; filter:mask(),可以在IE6中將<select>藏起來。只是有點可惜,<select>在遮罩下會完全消失,而無法呈現半透明刷暗或刷淡的效果,就看看這個"將就"的方案能不能被User接受了。

我將上次介紹的Script改成以下的做法:

maskStyle.height=tgt.offsetHeight+"px";
mask.innerHTML = "<iframe style='display:none;display:block;position:absolute;top:0;left:0;z-index:-1;filter:mask();width:"+
    tgt.offsetWidth +"px;height:" + tgt.offsetHeight + "px;'></iframe>";
document.body.appendChild(mask);

產生的遮蓋效果如下,算不算折衷的解決方案? 就見仁見智了。

歡迎推文分享:
Published 25 September 2007 01:44 AM 由 Jeffrey
Filed under: ,
Views: 14,516



意見

# Mr ooXx said on 30 September, 2007 01:49 AM

謝謝你的分享! ^^

這是個很棒的資訊!

# jamin said on 09 March, 2009 01:06 AM

您好!

請教您

如果考慮在div遮住之前將select的style

用javascript設定為display="none"

是不是也達到一樣效果呢?

您的做法是不是還有其他考量呢?

謝謝您

# Jeffrey said on 09 March, 2009 06:00 PM

to jamin, 我想你的方法也是可行的,但有兩個問題要克服--必須要能掌握<div>會覆蓋的範圍大小,再把範圍內的<select>藏起來;還有,若<div>剛好只蓋掉<select>的上半截,則把整個<select>隱藏在視覺上有些瑕疵。

這樣想下來,用<iframe>似乎較省事,它也幾乎是太家搞定這個IE6問題的不二手法。

# aladdin said on 29 March, 2012 06:33 AM

element.style.visibility='hidden';

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<September 2007>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication