【解決】Android 2.x 不支援overflow、position:fixed解決方案

來源:互聯網
上載者:User


Android 2.x和IOS5以下都不支援overflow:auto屬性(position:fixed也不支援)。
移動端瀏覽器安全色性和PC端相比,有過之而無不及。作業系統版本及各式瀏覽器和各式的螢幕大小排列組合,你永遠也無法預測到你的應用會在哪部手機上冒出什麼樣的問題。
測試過各種瀏覽器(chrome手機瀏覽器、百度手機瀏覽器、手機QQ瀏覽器、UC瀏覽器、UC瀏覽器HD、safari瀏覽器、firfox手機瀏覽器、WinPhone系統上的各瀏覽器,終端包括手機、ipad及PC android模擬器、PC IOS模擬器)

其中有幾個比較明顯的問題:
1、一些手機對position:fixed支援不完善(跟著手勢滾動後再彈回到固定位置,懷疑是否手機或是瀏覽器效能問題,渲染速度跟不上導致這種“卡”的效果)
2、一些手機或瀏覽器對overflow:auto支援不完善,在小米內建的瀏覽器中,對固定高度的容器設定overflow:auto後,容器內容超過容器高度後,直接被隱藏,無論怎麼拖動都無法顯示。特別是iframe中的overflow情況更為複雜。
3、WinPhone更為恐怖,顯示效果和IE7差不多了,不支援CSS3的gradient,線性背景直接顯示灰白色。
由此可見,要做到相容各系統版本,各瀏覽器,各螢幕大小也著實不易。
4、基本都支援min-height屬性

對於某些手機不支援overflow:auto情況,最佳解決方案就是:不去用overflow:auto屬性,即不要去設定一個固定的高度。後續會講到其它解決方案。


話說是在做APP的點擊題號跳轉功能時出現的這個問題,預想中的功能是這樣的:點擊題號列表按鈕,彈出全屏題號列表(position:fixed;top:20px /*空出APP的header*/;bottom:0px;overflow;auto;),當題目很多時,就可以滑動顯示題號點擊跳轉。測試時小米內建瀏覽器根本無法滑動,三星中的瀏覽器可以滑動部分,但顯示不全。

調試方案一
於是想,既然Android和IOS高版本支援overflow屬性,那就寫個相容的方法:

1 .box{position:absolute;top:20px /*空出APP的header*/;min-height:500px /*box需遮住整個頁面*/;}
2 @media all and (-webkit-transform-3d){/* Android4.0下不識別該-webkit-transform-3d,使用它可做Android4.0下版本相容 */
3     .box{position:fixed;top:20px;bottom:0px;overflow;auto;min-height:0px;}
4 }
[註:hack來源及分析請參考: 【原】webapp開發中相容Android4.0以下版本的css hack  ]
但測試效果卻並不盡如人意,在Android4.x的QQ瀏覽器中,根本未識別這個hack,百度瀏覽器中成功識別,但滑動後題號還是顯示不全,chrome瀏覽器相對支援較好。

調試方案二(1)
經過尋找,德問上也有人提出這個問題,根據參考答案測試了一下

安卓2.3系統webview不支援網頁的div捲軸,各位有解決方案麼

android2.3的不支援捲軸,並且scrollTop也不支援的。(設定overflow未hidden就可以支援)。
給你個方法保准OK,望採納:
01
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.