1. 程式人生 > >移動開發與響應式

移動開發與響應式

lac 方向 取消 底部工具欄 ont maximum 中文字體 lin 點擊

一、移動開發常用技巧
(一)viewport基本知識
設置布局viewport的各種信息: 1、width=device-width:設置viewport視口寬度等於設備寬度 2、initial-scale=1:網頁默認縮放比為1(網頁在手持設備上,不會進行默認縮放) 3、minimum-scale=1網頁最小縮放比為1 4、maximum-scale=1網頁最大縮放比為1 5、user-scalable=no 禁止用戶手動縮放網頁(IOS10+ 的設備失效) 在手機站以及響應式網站的制作中,網頁必須添加下述viewport的設置語句
  <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"/>

)webAPP


1、IOS 添加到主屏幕時,webAPP的標題

<meta name="apple-mobile-web-app-title
" content="標題">

2、IOS 添加到主屏幕時,啟用webAPP的全屏模式,刪除頂端地址欄和底部工具欄
<meta name="apple-mobile-web-app-capable" content="yes" />

3、IOS 添加到主屏幕時,webAPP的頂部狀態欄顏色: black:黑色 white:白色 black-translucent:半透明。(當設置為半透明時,網頁將充滿整個屏幕,頂部透明的狀 態欄將蓋住網頁最上方一小條)
<meta name="apple-mobile-web-app-status-bar-style
" content="black">

4、IOS 添加到主屏幕時,webAPP的圖標
<link rel="apple-touch-icon-precomposed" href=""/>

5、設置瀏覽器使用最新的IE或Chrome去編譯 >>>這句設置語句,不是手機端專用,一般pc網頁均需要設置
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

)手機端字體樣式
1、一般手機端不支持微軟雅黑字體。 2、中文字體一般不設置,使用系統默認即可。 3、英文字體一般設置為font-family: helvetica; )設置用戶不能選中文本
1、手機端不能長按選擇 2、pc端不能鼠標選擇
-webkit-user-select: none;
 -moz-user-select: none;

禁止超鏈接和圖片長安時彈出菜單

 -webkit-appearance: none;

)去除表單的默認外觀


手機、pc均可使用

appearance: none;
-webkit-appearance: none;
-moz-appearance: none;

)設置placeholder的屬性


input::-webkit-input-placeholder {
     color: #999;
                      }
 input:-ms-input-placeholder { // IE10+
     color: #999;
 }
 input:-moz-placeholder { // Firefox4-18
     color: #999;
 }
 input::-moz-placeholder { // Firefox19+
     color: #999;
 }

手機端發短信 <a href="sms://10086">發短信</a> 手機端打電話 <a href="tel://10086">發短信</a> 二、使用媒體查詢的三種方式
1、直接在css中使用:
 @media 類型(常選all/screen)and (條件1)and(條件2){    
     css選擇器{                                                                     
     css屬性:屬性值;                                                           
     }                                                                                     
 }    

2、使用link鏈接css,media屬性可以設置媒體查詢方式

 <link rel="stylesheet" href="css/02-響應式布局.css"
 media="all and (max-width:800px)"/>

3、使用import導入,直接在url()後面使用空格,間隔媒體查詢規則:
@import url("css/02-響應式布局.css") all and (max-width:800px);

三、強大的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 nowrap; ④ 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屬性 技術分享

移動開發與響應式