1. 程式人生 > >移動開發技巧以及彈性布局

移動開發技巧以及彈性布局

type ear 簡寫 rom 存在 status 寬度 微軟雅黑 彈出

[ViewPort基本知識]
設置布局ViewPort的各種信息:
1.width=device-width; 設置viewpoint視口寬度等於設備寬度;
2.initial-scale=1; 網頁默認縮放比為1(網頁在手持設備上,不會進行默認縮放)
3.minimum-scale=1 網頁最小縮放比為1
4.maximum-scale=1 網頁最大縮放比為1
5.user-scalable=no 禁止用戶手動縮放網頁的 (IOS10+ 的設備失效)

在手機站以及響應式網站的制作中,網頁必須添加下述viewpoint的設置語句

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />



禁止設備將手機號、郵箱進行識別,取消點擊撥打電話等事件。


<meta name="format-detection" content="telephone=no,email=no"/>


iOS 添加到主屏幕時,WebAPP的標題

<meta name="apple-mobile-web-app-title" content="傑小瑞的APP">


IOS添加到主屏幕時,啟用WebAPP的全屏模式,刪除頂端地址欄和底部工具欄

<meta name="apple-mobile-web-app-capable" content="yes" />


IOS 添加到主屏幕時,WebApp的頂部狀態欄顏色:
black:黑色
white:白色
black-translucent: 半透明。 (當設置為半透明時,網頁將充滿整個屏幕,頂部透明的狀態欄將蓋住網頁最上方一小條)

<meta name="apple-mobile-web-app-status-bar-style" content="black">


IOS添加到主屏幕時,WebAPP的圖標

<link rel="apple-touch-icon-precomposed" href="https://m.360buyimg.com/mobilecms/s80x80_jfs/t5965/339/3633548361/13799/cd4d0416/5954cf81N3294a71c.png" />


設置瀏覽器,使用最新的IE或Chrome去編譯;
>>> 這句設置語句,不是手機端專用,一般PC網頁均需要設置。

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

<style type="text/css">
body{
[手機端字體樣式]
1、一般手機端不支持微軟雅黑字體。
2、中文字體一般不設置,使用系統默認即可。
3、英文字體一般設置為font-family: helvetica;

font-family: helvetica;
設置用戶不能選中文本;
1、手機端不能長按選擇;
、PC端不能用鼠標選擇;

-webkit-user-select: none;
-moz-user-select: none;

}
input{
去除表單的默認外觀,手機、PC均可使用


appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
color:red;
}


設置placeholder的屬性

input::-webkit-input-placeholder {
color: red;
}
input:focus::-webkit-input-placeholder {
color: blue;
}
input:-ms-input-placeholder { // IE10+
color: red;
}
input:-moz-placeholder { // Firefox4-18
color: red;
}
input:focus::-moz-placeholder { // Firefox19+
color: red;
}
img,a{
禁止超鏈接和圖片,長按時彈出菜單
-webkit-appearance:none;
}

[Flex 彈性布局]
1、 了解兩個基本概念:
容器: 需要添加彈性布局的父元素;
項目: 彈性布局容器中的每一個子元素,稱為項目;

2、彈性布局的使用?
① 給父容器添加display: flex/inline-flex;屬性,即可使容器內容采用彈性布局顯示,而不遵循常規文檔流的顯示方式;
② 容器添加彈性布局後,僅僅是容器內容采用彈性布局,而容器自身在文檔流中的定位方式依然遵循常規文檔流;
③ display:flex; 容器添加彈性布局後,顯示為塊級元素;
display:inline-flex; 容器添加彈性布局後,顯示為行級元素;
④ 設為 Flex布局後,子元素的float、clear和vertical-align屬性將失效。但是position屬性,依然生效。

3、 作用於容器的相關屬性;
① flex-direction屬性決定主軸的方向(即項目的排列方向)。
row(默認值): 主軸為水平方向,起點在左端;
row-reverse: 主軸在水平方向,起點在右端 ;
column:主軸為垂直方向,起點在上沿。
column-reverse:主軸為垂直方向,起點在下沿。

② flex-wrap屬性定義,如果一條軸線排不下,如何換行。
nowrap(默認):不換行。當容器寬度不夠時,每個項目會被擠壓寬度;
wrap: 換行,並且第一行在容器最上方;
wrap-reverse: 換行,並且第一行在容器最下方。

③ flex-flow 是flex-direction和flex-wrap的縮寫形式,默認值為:flex-flow: row wrap;

④ justify-content屬性定義了項目在主軸上的對齊方式。

>>> 此屬性與主軸方向息息相關。 主軸方向為:row-起點在左邊,row-reverse-起點在右邊, column-起點在上邊,column-reverse-起點在下邊

flex-start(默認值): 項目位於主軸起點。
flex-end:項目位於主軸終點。
center: 居中
space-between:兩端對齊,項目之間的間隔都相等。(開頭和最後的項目,與父容器邊緣沒有間隔)
space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。(開頭和最後的項目,與父容器邊緣有一定的間隔)

⑤ align-items屬性定義項目在交叉軸上如何對齊。
flex-start:交叉軸的起點對齊。
flex-end:交叉軸的終點對齊。
center:交叉軸的中點對齊。
baseline: 項目的第一行文字的基線對齊。(文字的行高、字體大小會影響每行的基線)
stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。


⑥ align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。
(當項目換為多行時,可使用align-content取代align-items)
flex-start:與交叉軸的起點對齊。
flex-end:與交叉軸的終點對齊。
center:與交叉軸的中點對齊。
space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。
space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
stretch(默認值):軸線占滿整個交叉軸。


4、 作用於項目上的屬性:
① order屬性定義項目的排列順序。數值越小,排列越靠前,默認為0。
② flex-grow屬性定義項目的放大比例,默認為0,即如果存在剩余空間,也不放大。
③ flex-shrink屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。
④ flex-basis定義項目占據的主軸空間。(如果主軸為水平,則設置這個屬性,相當於設置項目的寬度。 原width將會失效。)

⑤ flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto。後兩個屬性可選。
此屬性有兩個快捷設置:auto=(1 1 auto)/none=(0 0 auto)

⑥ align-self:定義單個項目自身在交叉軸上的排列方式,可以覆蓋掉容器上的align-items屬性。
屬性值:與align-items相同,默認值為auto,表示繼承父容器的align-items屬性值。

移動開發技巧以及彈性布局