IOS機型margin屬性無效問題


這個問題很多小伙伴都有遇到,這次本猿也遇到了,記錄一筆。

結論:簡單的解決辦法margin換padding!如有誤,請大神不吝賜教。在Chrome瀏覽器移動端測試iphone5,打開的也是沒問題的(這感覺有坑還是要在真機才能發現)。

以下跟本人問題一樣,借用配圖及說明。

原圖文鏈接:http://blog.sina.com.cn/s/blog_a4ab5ae00102x30l.html

商城網站底部footer設置margin屬性的時候發現真機IOS上無效,在iPhone6p上發現問題,屏幕較小,先把出現問題的截圖發出來看一下

 

​安卓手機,打開正常

​iphone6 p 打開出現的問題(無視margin-bottom:60px)​

​當然,在google瀏覽器移動端測試iphone6p,打開的也是沒問題的(這感覺有坑還是要在真機才能發現)

 

​思索找尋了好久,也有反映margin不起作用的,改成padding就可以,但是改成padding在我這里是不可取的,因為footer如果給加了padding-bottom:60px屬性,那么footer的內下邊距就是60px,也就是說有60像素高的黑背景,如果在頁面內容高度小的頁面,就會出現這樣的情況:

​繼續找之后,從“關於AutoLayout中的margin”這篇文章里找到了這樣一句話:

“關於layoutMargins

iOS8后,UIView 有個屬性 var layoutMargins: UIEdgeInsets ,用來指定該View的subview同其edge的間距。AutoLayout使用margins來放置內容。 默認的值為8pt。

如果一個View是ViewController的rootview,系統會自動設置和管理margins,top和bottom margins被設置為0pt,left和right的值根據當前的 size class (文末簡單介紹一下size class)不同而不同,可能取值為16或者20pt(iPhone6 plus, iPad),你不能修改這些值。”

在我的理解,就是它無視我的margin-bottom:60px;自己給了footer一個margin-bottom:0px;的屬性(不知我的理解是否正確,希望大神給予指點)​

因為pc和手機端要做成自適應,想到了一個辦法,就是在footer下邊,加一個div,給height屬性60px,當屏幕寬度大於1024px的時候,給這個div屬性display:none。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM