我們先來看看什麽是視口,視口就是瀏覽器顯示頁面內容的屏幕區域。 視口可以分為布局視口、視覺視口和理想視口,他又可以分成壹下四種
壹般移動設備的瀏覽器都默認設置了壹個布局視口,用於解決早期的PC端頁面在手機上顯示的問題。
iOS, Android基本都將這個視口分辨率設置為 980px,所以PC上的網頁大多都能在手機上呈現,只不過元素看上去很小,壹般默認可以通過手動縮放網頁。
字面意思,它是用戶正在看到的網站的區域。註意:是網站的區域。
我們可以通過縮放去操作視覺視口,但不會影響布局視口,布局視口仍保持原來的寬度。
為了使網站在移動端有最理想的瀏覽和閱讀寬度而設定
理想視口,對設備來講,是最理想的視口尺寸
需要手動添寫meta視口標簽通知瀏覽器操作
meta視口標簽的主要目的:布局視口的寬度應該與理想視口的寬度壹致,簡單理解就是設備有多寬,我們布局的視口就多寬
最標準的viewport設置
視口寬度和設備保持壹致
視口的默認縮放比例1.0
不允許用戶自行縮放
最大允許的縮放比例1.0
最小允許的縮放比例1.0
ps:註意二倍圖或者三倍圖問題
流式布局,就是百分比布局,也稱非固定像素布局。
通過盒子的寬度設置成百分比來根據屏幕的寬度來進行伸縮,不受固定像素的限制,內容向兩側填充。
流式布局方式是移動web開發使用的比較常見的布局方式。
父盒子開啟display:flex後,默認為不換行,所以使用flex-wrap:wrap;使其換行
使用justify-content: space-around; 使其子盒子主軸間距平均分配
使用align-content: space-around; 使其子盒子側軸間距平均分配
方案1
①假設設計稿是750px
②假設我們把整個屏幕劃分為15等份(劃分標準不壹可以是20份也可以是10等份)
③每壹份作為html字體大小,這裏就是50px
④那麽在320px設備的時候,字體大小為320/15就是? 21.33px
⑤用我們頁面元素的大小除以不同的 html字體大小會發現他們比例還是相同的
⑥比如我們以750為標準設計稿
⑦壹個100 100像素的頁面元素在? 750屏幕下,? 就是 100/ 50? 轉換為rem? 是? 2rem 2rem? 比例是1比1
⑧320屏幕下,? html字體大小為21.33? 則 2rem=? 42.66px? 此時寬和高都是 42.66? 但是寬和高的比例還是 1比1
⑨但是已經能實現不同屏幕下? 頁面元素盒子等比例縮放的效果
總結:
①最後的公式:頁面元素的rem值 =? 頁面元素值(px) /? (屏幕寬度? /? 劃分的份數)
②屏幕寬度/劃分的份數就是 htmlfont-size 的大小
③或者:頁面元素的rem值 =? 頁面元素值(px) /? html font-size 字體大小
方案2
1.less+rem+媒體查詢
2.lflexible.js+rem
響應式需要壹個父級做為布局容器,來配合子級元素來實現變化效果。
原理就是在不同屏幕下,通過媒體查詢來改變這個布局容器的大小,再改變裏面子元素的排列方式和大小,從而實現不同屏幕下,看到不同的頁面布局和樣式變化。
父容器版心的尺寸劃分
超小屏幕(手機,小於 768px):設置寬度為 100%
小屏幕(平板,大於等於 768px):設置寬度為 750px
中等屏幕(桌面顯示器,大於等於 992px):寬度設置為 970px
大屏幕(大桌面顯示器,大於等於 1200px):寬度設置為 1170px
但是我們也可以根據實際情況自己定義劃分
直接拿Bootstrap 預先定義好的樣式來使用
修改Bootstrap 原來的樣式,註意權重問題
學好Bootstrap 的關鍵在於知道它定義了哪些樣式,以及這些樣式能實現什麽樣的效果