* [ios] input框的placeholder在真機中并沒有垂直居中,而是靠上一點(chrome模擬器沒有),但是輸入內容后就是垂直居中了。解決方法是為input設置height=line-height
<br/>
* [ios] input框在真機中默認有2px的border邊框(chrome模擬器沒有)
<br/>
* [ios] input框 type=number無效,依舊調起的是正常鍵盤,即使設置了pattern為0-9也不行。若想實現數字鍵盤,需要將type=tel,如果只允許輸入數字,還需要在tel的基礎上監聽input事件,將非數字內容替換掉。
<br/>
* fixed默認是相對于body定位的,比如fiexd,topleft0,元素會出現在屏幕左上角。 但是,translate會影響fiexd,比如:一個father里面的child是fixed,topleft0,然后我給father設置translateY(-50%),(假設屏幕高1000,father高400,father垂直居中于屏幕。),最后的結果是 child出現在離屏幕上方300的位置,也就是說,原本左上角的child隨著father一起移動了translateY(-50%)。 所以說,使用translate時,要保證其內部的所有元素沒有用到absolute、fixed布局,否則會影響它們。
<br/>
* [ios] 滾動條彈動bug:
????固定在頂部
????中間內容帶滾動條
????固定在底部
如果content設置了固定高度,比如100%-top-bottom,那么在ios上滾動時有可能bottom和content會粘在一起
解決方案一:中間內容不設置固定高度,或者只設置min-height,內容自適應即可
解決方案二:中間內容設置為flex:1(尚未驗證)
```
/\*修正\*/
固定在頂部
中間內容帶滾動條
固定在底部
#header{
??width:?100%;
??height:?50px;
??background-color:?red;
??position:?fixed;
??top:?0;
}
#footer{
??width:?100%;
??height:?50px;
??background-color:?red;
??position:?fixed;
??bottom:?0;
}
#content?{
??margin:?50px?0;
}
body?{
??-webkit-overflow-scrolling:touch
}
!!content不設置高度,內容自己撐開
```
<br/>
* ie下a.style=str無效,需要改為a.setAttribute("style",?str)
<br/>
* 虛擬dom和dom的區別:
https://www.zhihu.com/question/31809713?sort=created
<br/>
* 彈出層出現后阻止外層滾動:
```
外層:{
position:fixed;?top:?0px;?right:0px;?bottom:0px;
z-index:?1002;?left:?0px;
}
body:{overflow:?'hidden'}
left:0;top:0;right:0;bottom:0;posioton:fixed;
或者
left:0;top:0;width:100%;height:100%;position:fixed
```
```
1.彈框出現時給滾動條元素設置overflow:hidden,關閉后再設置回visible(默認值)
2.出現時將長內容元素自身設置fixed,關閉后再恢復成static
```
<br/>
* 相機:
在ios上直接打開相機,在安卓上可以選擇圖片或打開相機
在ios上可以選擇圖片或打開相機,在安卓上沒有相機選項
需要做平臺監測
http://www.jb51.net/article/116694.htm
https://segmentfault.com/q/1010000005768036
https://www.cnblogs.com/xianxianxxx/p/7851148.html
在紅米上,直接打開相冊了
需要對紅米單獨監測:userAgent里有沒有Redmi字段
<br/>
* 圖片壓縮:https://www.cnblogs.com/007sx/p/7583202.html
<br/>
* 點擊事件在ios和安卓上的兼容性bug:http://blog.csdn.net/u014168594/article/details/77586539
* [ios] safari 100vh后出現滾動條:設置一個全屏高的容器,使用100vh的話,在safari上會出現滾動條,原因是在safari上100vh不包含瀏覽器下方的「工具欄」,因此最終計算時,實際高度是100vh+工具欄高度,就會出現滾動條了。解決方案是使用100%,但需要一層一層設置100%直到本標簽。
* [ios] safari fixed被遮蓋問題:
父級元素100%屏幕高度,padding-top 1.5rem,子級元素fixed,通過top、left、right、bottom為0實現全屏高。在safari瀏覽器上,這個fixed元素上方的1.5rem高度區域會被遮蓋掉,其他區域正常顯示,如下圖:

然而審查一下元素,發現高度就是全屏高,說明沒有被擠下去,而是因為什么原因,這個1.5rem區域被遮蓋了,查來查去,只有父級的padding的原因了。

解決方案,給父級元素設置transform:translateY(0),因為父級的transform屬性會是fixed元素定位失效,由窗口定位為父級自身,相當于absolute了。

這個方案也不是很好,彈出動畫時還是被遮蓋了,動畫結束了才出來,有一種變高的動畫錯覺。