問題
webAPP中內嵌的H5頁面設定margin-bottom,在模擬器及安卓機中的展示效果都與預想的一樣。而在iPhone中無論巢狀多少層margin-bottom,均會失效。
原因
從IOS8開始,UIView的屬性var layoutMargins:UIEdgeInsets指定該View的subview同其edge的間距。AutoLayout使用margins來放置內容。其預設值為8pt。
如果一個View是ViewController的rootview,系統會自動設定和管理margins,top和bottom。margins為0pt。所以自己設定的margin-bottom會失效。
解決方案
針對IOS端margin-bottom失效問題目前有兩種解決方案:
div撐開
用設定了高度的div撐開底部,達到與margin撐開的相同的效果。
改用padding-bottom
使用padding-bottom撐開底部,大多數情況下可以滿足安卓端和IOS端的展示需求。
本人才疏學淺,以上僅為個人見解,歡迎批評指正討論~~