怎么動手寫手機網站

怎么動手寫手機網站

最近一直在研究移動手機網站的開發,發現做手機網站沒有想象中的那么難。為什么會這么說呢?我們試想下:我們連傳統的PC網站都會做,難道連一個小小的手機網站難道都搞不定嗎?其實手機網站就是一個微縮版的PC網站罷了!

手機網站基本框架代碼:

<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>手機網站</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <meta name="author" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
    <script type="text/javascript">
    //根據屏幕大小及dpi調整縮放和大小
    (function() {
        var scale = 1.0;
        var ratio = 1;
        if (window.devicePixelRatio >= 2) {
            scale *= 0.5;
            ratio *= 2;
        }
        var text = '<meta name="viewport" content="initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', width=device-width, user-scalable=no" />';
        document.write(text);
        document.documentElement.style.fontSize = 50 * ratio + "px";
    })();
    </script>
    <!--啟用 WebApp 全屏模式(IOS)-->
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-touch-fullscreen" content="yes" />
    <!--設置狀態欄的背景顏色(IOS),在web app應用下狀態條(屏幕頂部條)的顏色-->
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <!--添加到主屏后的標題(IOS)-->
    <meta name="apple-mobile-web-app-title" content="標題">
    <link rel="icon"  type="image/x-icon">
    <!--蘋果移動設備(ipod、ipad、iphone)對移動網站-mobile web進行收藏(“添加到桌面圖標”)的時候增加的圖標定義屬性-->
    <link rel="apple-touch-icon-precomposed" sizes="57x57" >
    <link rel="apple-touch-icon-precomposed" sizes="120x120" >
    <link rel="apple-touch-icon-precomposed" sizes="196x196" >
    <!--IOS Web app啟動動畫-->
    <link rel="apple-touch-startup-image"  media="(device-height:568px)">
    <link rel="apple-touch-startup-image"  media="(device-height:480px)">
    <!-- iPhone -->
    <link href="apple-touch-startup-image-320x460.png" media="(device-width: 320px)" rel="apple-touch-startup-image">
    <!-- iPhone (Retina) -->
    <link href="apple-touch-startup-image-640x960.png" media="(device-width: 320px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    <!-- iPad (portrait) -->
    <link href="apple-touch-startup-image-768x1004.png" media="(device-width: 768px) and (orientation: portrait)" rel="apple-touch-startup-image">
    <!-- iPad (landscape) -->
    <link href="apple-touch-startup-image-748x1024.png" media="(device-width: 768px) and (orientation: landscape)" rel="apple-touch-startup-image">
    <!-- iPad (Retina, portrait) -->
    <link href="apple-touch-startup-image-1536x2008.png" media="(device-width: 1536px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    <!-- iPad (Retina, landscape) -->
    <link href="apple-touch-startup-image-2048x1496.png" media="(device-width: 1536px)  and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    <!--移動端手機號碼識別(IOS)-->
    <meta name="format-detection" content="telephone=no">
    <!--移動端郵箱識別(Android)-->
    <meta name="format-detection" content="address=no">
    <!--優先使用最新版本 IE 和 Chrome-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <link href="css/style.css" rel="stylesheet"/>
    <style>
        body{font-size:62.5%;font-family:"Microsoft YaHei",Arial; overflow-x:hidden; overflow-y:auto;}
        .viewport{ max-width:640px; min-width:300px; margin:0 auto;}
    </style>
    </head> 
    <body>
        <div>
            大家好!這是手機網頁!
        </div>
    </body>
</html>

至于為什么覺得難、覺得無從下手。有以下幾點:

一、沒有完整的思路和流程

就像做網站的流程一樣,如果你能知道它的流程,我相信就不會覺得做手機網站難!真正難的是你沒有思路。

二、把html5這門技術想的高深莫測

好像覺得學會用html5+css3做手機網站,就相當于學會了頂尖的絕世武功。其實你錯了!不要把html5這玩意想的太高深,其實做手機網站,真正意義上用不到什么的html5的強大功能。(可能對于一些不懂什么技術的小白而言:你的手機網站是用HTML5+CSS3做的啊,簡直牛逼呀!能用上目前互聯網上最新最前沿的技術。其實明眼人一看,就知道是用什么技術做的。俗話說的好:"外行看熱鬧,內行看門道")
下面就說說怎么來開發移動手機網站吧!
基本上開發手機網站,可大致分為兩大類。一類是用框架開發手機網站。一類是自己手寫手機網站。

一、框架開發手機網站

一般用現在常用的開發框架有:目前Web前端最火的框架(BootStrap)、Jquery mobile..當然可能還有一些移動端開發的框架,rachet.js
為什么說BootStrap是目前前端最火熱的開發框架呢?
因為bootstrap自帶響應式布局(柵格系統),而且能做到移動設備優先的原則。

運用bootstrap來開發網站有什么好處呢?

1.不懂設計也可以做網站

就算不懂設計,你的網頁在Bootstrap的幫助下,也能擁有超高顏值。它強大的內置樣式庫讓你的作品變成尤物。
主要體現在:字體文件和bootstrap自帶的UI樣式。(為廣大不會UI設計的程序員,提供了福音)

2.上手快

你可以專心解決問題,冗繁的細節都丟給Bootstrap操心。可以做到一次開發,就可適配所有終端,并且能迅速上手并建出網站原型。還提供很多豐富的插件,就算你不會JS,基本能看懂常見的API,網站上的效果,基本能解決。

缺點:

1.不遵循最佳實踐

我們在使用Bootstrap時遇到的最大問題之一是你的DOM元素上將擁擠大量的類。這打破了良好的web設計基本規則之一,HTML不再有語義,而且內容和表示不再分離。前端純粹主義者會覺得這相當令人討厭,以為它使可擴展性、重用性和維護性遇到了更大的挑戰。

2. Bootstrap 太重

直接點說:就是CSS和JS有點點大。CSS壓縮后115k,JS壓縮后35k
如果你想要使用Bootstrap的所有功能,你應該好好考慮資源的加載時間。當然,對于一些地方這可能不是問題,但是在新西蘭互聯網不得不橫跨太平洋,這時數據達到那兒將是很緩慢的。因此考慮你的目標市場。
相信任何框架都有它的優點,同時也是有它的缺點的。沒有一個產品是很完美的,所以根據自身實際情況進行選擇。至于一些其它框架暫時不做過多的解釋了,相信只要你肯愿意百度一下,就可以找到你想要的答案。

二、手寫手機網站

一般我們自己手動開發手機網站的話,基本可以劃分兩類來做到。一類是通過在網頁頭部添加meta標簽進行實現(網頁指html5的格式來開發)。另一類是通過CSS3的Media標簽(媒介查詢)來實現。不了解媒介查詢的朋友,可以看看這篇文章:響應式布局。
在這里我們詳細講解下,利用添加meta標簽來做手機網站。
基本在網頁頭部我們只需添加四個meta標簽就可以實現一個手機網站的框架。我一起來看看是哪些meta標簽。

1、添加viewport標簽

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />

詳細屬性:

  • width ---- viewport的寬度(width=device-width意思是:寬度等于設備寬度)
  • height ------ viewport的高度(height=device-height意思是:高度等于設備寬度)
  • initial-scale ----- 初始的縮放比例
  • minimum-scale ----- 允許用戶縮放到的最小比例
  • maximum-scale ----- 允許用戶縮放到的最大比例
  • user-scalable ----- 用戶是否可以手動縮放

2、禁止將數字變為電話號碼

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

一般情況下,IOS和Android系統都會默認某長度內的數字為電話號碼,即使不加也是會默認顯示為電話的,so,取消這個很有必要!

3、iphone設備中的safari私有meta標簽

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

它表示:允許全屏模式瀏覽,隱藏瀏覽器導航欄

4、iphone的私有標簽

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

它指定的iphone中safari頂端的狀態條的樣式
默認值為default(白色),可以定為black(黑色)和black-translucent(灰色半透明)
另外還有一個個性化的link標簽,它支持用戶將網頁創建快捷方式到桌面時,其圖標變為我們自己定義的圖標。比如手機騰訊網上的標簽:

<link rel="apple-touch-icon-precomposed" >

不過騰訊對這個png圖標的命名并不規范,常規我們要求文件名應為 apple-touch-icon.png 或 apple-touch-icon-precomposed.png ,前者的命名iOS會為這個圖標自動添加圓角、陰影和高亮覆蓋層,后者則不會添加這些效果。

蘋果圖標apple-touch-icon-precomposed和apple-touch-icon兩種設置的區別探究

蘋果safari瀏覽器當中apple-touch-icon-precomposed 和 apple-touch-icon屬性是有區別的
圖標設置的屬性分為:
apple-touch-icon 和 apple-touch-icon-precomposed兩種屬性,從字面意思上可以看出,第一個是 “蘋果移動設備圖標”,第二個為“蘋果移動設備初始圖標樣式”
使用apple-touch-icon屬性的明顯比使用apple-touch-icon-precomposed圖標多出一個高光,因為在ios系統中對icon有一套規范,就是在ios設備的圖標統一為“四邊圓角”、“高光處理”,至于“圖標陰影”,是ios設備中統一為所有桌面元素增加的,所以不作為圖標單獨處理的樣式,由于在視覺上統一最重要的是形狀的統一,所以“圓角”是必須的,但是對于“高光”蘋果沒有做出特別的強調,所以蘋果設置當中把“高光”作為可選項,就產生了apple-touch-icon 和 apple-touch-icon-precomposed屬性。
結論
使用apple-touch-icon屬性為“增加高光光亮的圖標”;
使用apple-touch-icon-precomposed屬性為“設計原圖圖標”;

apple-touch-startup-image啟動畫面

橫屏和豎屏:
<link rel="apple-touch-startup-image" media="screen and (orientation: portrait)" href="milanoo_startup.png" />
<link rel="apple-touch-startup-image" media="screen and (orientation: landscape)" href="milanoo_startup1.png" />

HTML/CSS 移動端

關閉iOS鍵盤首字母自動大寫

在iOS中,默認情況下鍵盤是開啟首字母大寫的功能的,如果啟用這個功能,可以這樣:

<input type="text" autocapitalize="off" />
關閉iOS輸入自動修正

和英文輸入默認自動首字母大寫那樣,IOS還做了一個功能,默認輸入法會開啟自動修正輸入內容,這樣的話,用戶經常要操作兩次。如果不希望開啟此功能,我們可以通過input標簽屬性來關閉掉:

<input type="text" autocorrect="off" />
禁止文本縮放

當移動設備橫豎屏切換時,文本的大小會重新計算,進行相應的縮放,當我們不需要這種情況時,可以選擇禁止:

html {
  -webkit-text-size-adjust: 100%;
}

需要注意的是,PC端的該屬性已經被移除,該屬性在移動端要生效,必須設置 `meta viewport'。

移動端如何清除輸入框內陰影

在iOS上,輸入框默認有內部陰影,但無法使用 box-shadow 來清除,如果不需要陰影,可以這樣關閉:

input,
textarea {
  border: 0; /* 方法1 */
  -webkit-appearance: none; /* 方法2 */
}

快速回彈滾動

我們先來看看回彈滾動在手機瀏覽器發展的歷史:

  • 早期的時候,移動端的瀏覽器都不支持非body元素的滾動條,所以一般都借助 iScroll;
  • Android 3.0/iOS解決了非body元素的滾動問題,但滾動條不可見,同時iOS上只能通過2個手指進行滾動;
  • Android 4.0解決了滾動條不可見及增加了快速回彈滾動效果,不過隨后這個特性又被移除;
  • iOS從5.0開始解決了滾動條不可見及增加了快速回彈滾動效果

在iOS上如果你想讓一個元素擁有像 Native 的滾動效果,你可以這樣做:

.xxx {
    overflow: auto; /* auto | scroll */
    -webkit-overflow-scrolling: touch;
}

PS:iScroll用過之后感覺不是很好,有一些詭異的bug,這里推薦另外一個 iDangero Swiper,這個插件集成了滑屏滾動的強大功能(支持3D),而且還有回彈滾動的內置滾動條,官方地址:
http://www.idangero.us/sliders/swiper/index.php

移動端禁止選中內容

如果你不想用戶可以選中頁面中的內容,那么你可以在css中禁掉:

.user-select-none {
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all (移動端不需要) */
  -ms-user-select: none;      /* IE 10+ */      
}

移動端取消touch高亮效果

在做移動端頁面時,會發現所有a標簽在觸發點擊時或者所有設置了偽類 :active 的元素,默認都會在激活狀態時,顯示高亮框,如果不想要這個高亮,那么你可以通過css以下方法來進行全局的禁止:

html {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

但這個方法在三星的機子上無效,有一種妥協的方法是把頁面非真實跳轉鏈接的a標簽換成其它標簽,可以解決這個問題。

如何禁止保存或拷貝圖像(IOS)

通常當你在手機或者pad上長按圖像 img ,會彈出選項 存儲圖像 或者 拷貝圖像,如果你不想讓用戶這么操作,那么你可以通過以下方法來禁止:

img { -webkit-touch-callout: none; }
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,151評論 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協議。它實...
    香橙柚子閱讀 23,989評論 8 183
  • 我不知道什么是感情,怎樣的感覺算感情,但是我不想以失去你為代價去體會這種感覺。情感是我所追求又不敢觸碰的,正如刺...
    小超哥在此閱讀 200評論 0 2
  • 每一天其實都很特別! 今天是我女兒兩歲的第一天。這句話怎么也沒有說“昨天是我女兒的生日”這句更讓人記得住。其實,女...
    厲冰凌閱讀 2,002評論 0 3
  • 昨天說的籃球,今天說說足球。剛看完曼市德比- - 真正算喜歡足球應該是在高中,可能是籃球太爛了需要找個出口。所以就...
    S的隨便用賬號閱讀 495評論 0 50