Meta基礎:
H5頁面視窗自動調整到裝置寬度,並禁止使用者縮放頁面
//一、HTML頁面結構
// width view
// width 'device-width'// height 設定viewport高度,一般設定了寬度,會自動解析出高度,可以不用設定// initial-scale 縮放比例,為一個數字,可以帶小數 / minimum-scale 允許使用者最小縮放比例,為一個數字,可以帶小數// maximum-scale 允許用戶最大縮放比例,為一個數字,可以帶小數// user-scalableable//二、JS動態判斷
var phoneWidth = parseInt(window.screen.width);
var phoneScale = phoneWidth/640;
var phoneScale = phoneWidth/640;
if (varator_ovarator_ovaratord . )/.test(ua)){ var version = parseFloat(RegExp.$1); if(version> }else{document. write('
'); }} else {
document.write('
');其他meta標籤
其他meta標籤
常見問題:
行動端如何定義字體font-family
@ --------------------------------------中文字體的英文名稱@ 宋體 SimSun
@ 黑體 SimHei
@ 微信雅黑 Microsoft Yahei@ 微軟正黑體Microsoft JhengHei
@ 新宋體體 MingLiU
@ 標楷體 DFKai-SB@ 仿宋 FangSong
@ 楷體 KaiTi
@ 仿宋_GB2312 FangSong_GB2312@ 仿宋_GB2312 FangSong_GB2312
@@ 說明:中文字體多數使用宋體、雅黑,英文用Helvetica body { font-family: Microsoft Yahei,SimSun,Helvetica; }打電話發短信寫郵件怎麼實現
// 一、打電話
發短信,winphone系統無效發短信給: 10086
// 三、寫郵件//註:在加入這些功能時,第一個功能以"?"開頭,後面的以"&"開頭
//1.普通郵件
//2.收件地址後新增?cc=開頭,可新增副本地址(Android有相容問題)
//3.跟著抄送地址後,寫上&bcc=,可新增密件抄送地址(Android有相容問題)
//4.包含多個收件人、抄送、密件抄送人,用分號(;)隔開多個郵件人的地址
//5.包含主題,用?subject=
//6.包含內容,用?body=; %0A給文字換行
//7.內容包含鏈接,含http(s)://等的文本自動轉化為鏈接
/ 8.內容包含圖片(PC不支援)
//9.完整範例
手機機
touches:屏幕上所有手指的信息
targetTouches:手指在目標區域的手指信息
changedTouches:最近一次觸發該事件的手指信息
touchend時,touches與targetTouches信息會被刪除,changedTouches保存的最後一次的信息,最好用於計算手指信息
//參數資訊(changedTouches[0])clientX、clientY在顯示區的座標target:目前元素 //事件回應順序ontouchstart //以下支援winphone 8MSPointerDown—當手指觸碰螢幕時發生。不管目前有多少隻手指MSPointerMove——當手指在螢幕上滑動時連續觸發。通常我們再滑屏頁面,會呼叫css的html{-ms-touch-action: none;}可以阻止預設情況的發生:阻止頁面滾動MSPointerUp——當手指離開螢幕時觸發
原因就出在瀏覽器需要如何判斷快速點擊上,當用戶在屏幕上單擊某一個元素時候,例如跳轉鏈接,此處瀏覽器會先捕獲該次單擊,但瀏覽器不能決定用戶是單純要點擊連結還是要雙擊該部分區域進行縮放操作,所以,捕獲第一次點擊後,瀏覽器會先Hold一段時間t,如果在t時間區間裡用戶未進行下一次點擊,則瀏覽器會做點擊跳轉連結的處理,如果t時間裡使用者進行了第二次點擊操作,則瀏覽器會禁止跳轉,轉而進行對該部分區域頁面的縮放操作。那麼這個時間區間t有多少呢?在IOS safari下,大概為300毫秒。這就是延遲的由來。造成的後果使用者純粹點擊頁面,頁面需要一段時間才回應,給使用者慢體驗感覺,對於web開發者來說是,頁面js捕捉click事件的回調函數處理,需要300ms後才生效,也就間接導致影響其他業務邏輯的處理。
//解決方案:
fastclick可以解決在手機上點擊事件的300ms延遲
zepto的touch模組,tap事件也是為了解決在clicks的延遲問題
.
ios機產生背景或邊框怎麼去點擊
}}
/ios出現一個半透明灰色遮罩, 如果想要停用,可設定-webkit-tap-highlight-color的alpha值為0去除灰色半透明遮罩;
//android用戶點擊一個鏈接,會出現一個邊框或者半透明灰色遮罩, 不同生產商定義出來額效果不一樣,可設定-webkit-tap-highlight-color的alpha值為0去除部分機器自帶的效果;
//winphone系統,點擊標籤產生的灰色半透明背景,能透過設定去掉;
//特殊說明:有些機型去除不了,如小米2。按鈕類別還有個辦法,不使用a或input標籤,直接用div標籤
a,button,input,textarea {
-webkit-tap-highlight-color: rgba(0,0,0,0) ;
-webkit-user-modify:read-write-plaintext-only; //-webkit-user-modify有個副作用,就是輸入法不再能夠輸入多個字元
}
/// 也可以
// 也可以// 也可以
// 也可以// 也可以// 也可以
* { -webkit-tap-highlight-color: rgba(0,0,0,0); }
//winphone下
ance表單元素
美化/一、使用appearance/web器的預設外觀
input,select { -webkit-appearance:none; appearance: none; }
//二、winphone下,使用偽元素改變表單元素預設外觀
///1.select箭頭,::-ms-expand修改表單控制項下拉箭頭,設定隱藏並使用背景圖片來修飾select::-ms-expand { display:none; } //2.停用radio和checkbox預設樣式,::-ms-check修改表單複選框或單選框預設圖標,設定隱藏並使用背景圖片來修飾input[type=radio]::-ms-check,input[type=checkbox ]::-ms-check { display:none; } //3.停用pc端表單輸入框預設清除按鈕,::-ms-clear修改清除按鈕,設定隱藏並使用背景圖片來修飾input[type=text]::-ms-clear,
input[type=tel]::-ms-clear,
input[type=number]::-ms-clear { display:none; }
行動端字體單位font-size選擇px還是rem🎜🎜// 如需適合多種行動設備,建議使用rem。以下為參考值:🎜🎜html { font-size: 62.5%; } //10*16 = 62.5%🎜//設定12px字體 這裡注意在rem前面要加上對應的px值,解決不支援rem的瀏覽器的相容問題,做到優雅降級
body { font-size:12px; font-size:1.2rem ; }
超實用的CSS樣式
//去掉webkit的捲軸條-display: none;
//其他參數
::::-webkit-scrollba //滾動條webkit-scrollbar-thumb //滾動條內的小方塊::-webkit-scrollbar-track //捲軸軌道::-webkit-scrollbar-button //捲軸軌道兩端。 -webkit-scrollbar-track-piece //捲軸中間部分,內建軌道::-webkit-scrollbar-corner //邊角,兩個捲軸交會處::-webkit-resizerizer 捲軸的交會處上用於透過拖曳調整元素大小的小控制 // 禁止長按連結與圖片彈出式選單a,img { -webkit-touch-callout: none } // 禁止ios與android使用者選取文字html,body {-webkit-user-select:none; user-select: none; } // 改變輸入框placeholder的顏色值kit
::-webkit -input-placeholder { /* WebKit browsers */color: #999; }:-moz-placeholder { /* Mozilla Firefox 4 to 18 */color: #999; -placeholder { /* Mozilla Firefox 19+ */color: #999; }:-ms-input-placeholder { /* Internet Explorer 10+ */color: #999; }in; ::-webkit-input-placeholder{ color:#999; }
// android上去掉語音輸入按鈕
input::-webkit-input-speech-button {display: none}
/ / 阻止windows Phone的預設觸控事件
/*說明:winphone下預設觸控事件事件使用e.preventDefault是無效的,可透過樣式來停用,如:*/
html { -ms-touch-action:none ; } //禁止winphone預設觸控事件
取消input在ios下,輸入的時候英文首字母的預設大寫
手機拍照和上傳圖片/IOS有拍攝圖片功能,部分Android只有選擇本機圖片功能。 Winphone不支援 螢幕旋轉的事件和樣式//JS處理function orientInit(){. documentElement.clientHeight?'landscape ':'portrait';
if(orientChk =='lapdscape'){//這裡是橫向螢幕下螢幕下需要執行的事件
}
audio元素和video元素在ios和andriod中無法自動播放
//音頻,寫法一
你的瀏覽器還不支援哦播放(操作window時,播放音樂)$ (window).one('touchstart', function(){
music.play();
})
//微信下相容於處理
//微信下相容處理
.
music.play(); //1.audio元素的autoplay屬性在.audio元素沒有設定controls時,在IOS及Android會佔據空間大小,而在PC端Chrome是不會佔據任何空間重力感應事件
// 運用HTML5的deviceMotion,調用重力感應事件if (window.DeviceMotionEvent){ document.addEventListener('devicemotion', deviceMotionHandler, false)} = hahhaah = 0;function deviceMotionHandler(eventData){
var acceleration = event.accelerationIncludingGravity;
x = acceleration.x;
if(Math.abs(x-lastX)>speed || Math. abs(y-lastY)>speed || Math.abs(z-lastZ)>speed ){
//這裡是搖晃後執行的方法
lastX = x;
lastY = y;
lastZ = z;
}
function yaoAfter(){
//說明:說見案例搖一搖效果中yao. js微信瀏覽器用戶調整字體大小後頁面矬了,怎麼阻止用戶調整
//以下程式碼可使Android機頁面不再受用戶字體縮放強制改變大小,但是會有1S左右延時,期間可以考慮loading來處理
if (typeof(WeixinJSBridge) == "undefined") {
document.addEventListener("WeixinJSBridgeReady WeixinJSBridge.invoke(' setFontSizeCallback', { 'fontSize':0}, function(res){
alert(JSON }, 0)
});
}else{
setTimeout(function(){
})
}, 0 )
}
//IOS下可使用-webkit-text-size-adjust禁止使用者調整字體大小
body { -webkit-text-size-adjust:100%
ant } //最好的解決方案:最好使用rem或百分比佈局定位的坑
//fixed定位
//1.ios下fixed元素容易定位出錯,軟鍵盤彈出時,影響fixed元素定位
//2.android下fixed表現要比iOS更好,軟鍵盤彈出時,不會影響fixed元素定位
//3.ios4下不支援position:fixed
//解決方案:使用[Iscroll ](http://cubiq.org/iscroll-5),如:
.....
<script></script>
var myscroll;
function loaded(){
myscroll=new iScroll("wrapper");
}
window.addEventListener("DOMContentLoaded",loaded,false);
//position定位
//Android下彈出軟鍵盤彈出時,影響absolute元素定位
ator機//Android下彈出式鍵盤彈出時,影響absolute元素(Penvaratorsf. 'Android');
if(ua>-1){
$('.ipt').on('focus', function(){
').on('focus', function(){
'). ':'hidden'})
}).on('blur', function(){
$() }
播放影片不全螢幕ator
機JS判斷微信瀏覽器 function isWeixin(){ }else{ android 2.3 bug //1.@-webkit-keyframes 需要以0%開始100%結束,0%的百分號不能去掉 //2.after和before偽類無法使用動畫animation //3.border-radius不支援%單位,如要相容,可以給radius設定較大的值 //4.translate百分比的寫法和scale在一起會導致失效,例如: -webkit-transform: translate(-50%,-50%) scale(-0.5, 1 ) //1.三星Galaxy S4自帶瀏覽器不支援border-radius縮寫 //2.同時設定border-radius和背景色的時候,背景色會溢出到圓角以外部分 //3.部分手機(如三星),a連結支援滑鼠:visited事件,也就是說連結造訪後文字變成紫色 //4.android無法同時播放多音訊audio -webkit-transform-style: preserve-3d; 開啟硬體加速 //目前,像Chrome/Filefox/Safari/IE9+以及最新版本Opera都支援硬體加速,當偵測到某個DOM元素應用了某些CSS規則時就會自動開啟,從而解決頁面閃白,保證動畫流暢。 渲染優化
return true;
android 4.x bug
.css {