在Firefox2中某些情況下輸入框雖然可以輸入,但在獲取焦點時沒有文本輸入光標的顯示,這個是非常惡心的bug,非常容易讓表單使用者有一種不能輸入的錯覺,即使后來嘗試知道可以輸入,但也無法判斷光標定位在哪兒。雖然慶幸的是Firefox3中解決了這個bug,但Firefox3還在beta階段,取代Firefox2還是需要一些時間的,下面就來仔細說一下這個問題:
一、樣式為{position:absolute;}的容器中的表單輸入框在樣式為類似{overflow:auto;}的容器區域中失去光標
可以通過 例一到例六 來了解最常見的情況。
如果想整個body都出現失去光標,可以設置html和body兩個容器,請看 示例 。包括舉例的overflow:auto在內能引起該Bug的overflow屬性共有:
overflow:auto
overflow-x:auto;
overflow-y:auto;
overflow:scroll;
overflow-x:scroll;
overflow-y:scroll;
overflow-x:hidden;
overflow-y:hidden;
除了避免使用overflow屬性的其他解決方案:
- 利用overflow:hidden代替產生bug的oveflow屬性
- 在具有上述overflow屬性的容器中加入position:relative,請看 實例 。
- 在positon:absolute的容器上加入同樣的oveflow屬性,同時注意在頁面出現的順序,見 例四
- 為使用能產生bug的oveflow屬性的容器選擇合適的標簽,比如fieldset,見 例六。
二、樣式為{position:absolute;}的容器中的表單輸入框在iframe容器區域中失去光標
可以通過 例七 來了解這個情況。IE6中為了解決下拉列表級別過高問題,往往需要用iframe來遮蓋它,偶爾疏忽忘記做瀏覽器限定就有可能導致上面的問題。
現在看來Firefox2對iframe的處理bug還真不少,比如以前就發現了Firefox返回時Iframe的顯示Bug。
posted on 2008-06-25 16:34
流腥魚 閱讀(307)
評論(1) 編輯 收藏