html5 ios與安卓的一些差異性問題
1.ios 下postion:fixed問題
問題描述:設計評論頁面,使用position:fixed定位將輸入框固定在頁面底部,如圖:
這種情況下,輸入框在獲取到焦點時,會隨著輸入法的彈出而上移。安卓的webview中是沒有問題的。而ios中,輸入法的彈出會導致整個頁面向上滾動一定距離,問題如圖:
原因:我的內容區高度設定為100%,也就是說,評論框的下方不可見的區域中存在的內容是使position:fixed樣式失效的部分原因。網上大部分方法是根據瀏覽器動態更改fixed為static。但是我的想法是將評論區的高度固定,這樣評論框下方沒有因為評論內容過多而不顯示的區域。當輸入法彈出時評論框也就不會被這原本不顯示的區域頂上去。同時還要設定評論內容區overflow-y:scroll,保證內容區的滾動。
總結:ios下position:fixed失效的問題可能不是我們前端h5能解決的,只能在佈局上考慮到這個問題,然後想辦法修改佈局吧。
2.安卓與ios行高差異
問題描述:專案使用的icon-font.css來載入圖示,但是在安卓和蘋果上的佈局效果是不一樣的。安卓上圖示是與文字水平對齊,但是ios頁面中圖示會向下偏移一段距離。
原因:這個圖示本質好像並不是圖片,是一種字型,可以通過font-size和color控制大小顏色。但是我在網上沒有發現這類問題,我有點懷疑是不是測試機有問題。不過我之前在知乎有看到關於字型的問題字號與行高,然後我就想在ios和安卓的webview下,字型的行高line-height是不是有區別?試著把圖示元素外div塊的line-height設定為0,結果就解決了。(內心:嗯?一次性解決了?為什麼啊?)我猜想,確實是ios對字型行高做了處理,導致上方高度多出一段,當設定行高為0後就不再多出一段?
總結:這個問題原理我目前不太清楚,但是能解決問題還是挺高興的,說明平時看看一些知識還是有很大幫助。