怎么動手寫手機網(wǎng)站

怎么動手寫手機網(wǎng)站

最近一直在研究移動手機網(wǎng)站的開發(fā)艰猬,發(fā)現(xiàn)做手機網(wǎng)站沒有想象中的那么難。為什么會這么說呢?我們試想下:我們連傳統(tǒng)的PC網(wǎng)站都會做桃序,難道連一個小小的手機網(wǎng)站難道都搞不定嗎棒假?其實手機網(wǎng)站就是一個微縮版的PC網(wǎng)站罷了溯职!

手機網(wǎng)站基本框架代碼:

<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>手機網(wǎng)站</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">
    //根據(jù)屏幕大小及dpi調(diào)整縮放和大小
    (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" />
    <!--設(shè)置狀態(tài)欄的背景顏色(IOS),在web app應(yīng)用下狀態(tài)條(屏幕頂部條)的顏色-->
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <!--添加到主屏后的標(biāo)題(IOS)-->
    <meta name="apple-mobile-web-app-title" content="標(biāo)題">
    <link rel="icon"  type="image/x-icon">
    <!--蘋果移動設(shè)備(ipod、ipad帽哑、iphone)對移動網(wǎng)站-mobile web進(jìn)行收藏(“添加到桌面圖標(biāo)”)的時候增加的圖標(biāo)定義屬性-->
    <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">
    <!--優(yōu)先使用最新版本 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>
            大家好谜酒!這是手機網(wǎng)頁!
        </div>
    </body>
</html>

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

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

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

二碉输、把html5這門技術(shù)想的高深莫測

好像覺得學(xué)會用html5+css3做手機網(wǎng)站籽前,就相當(dāng)于學(xué)會了頂尖的絕世武功。其實你錯了敷钾!不要把html5這玩意想的太高深枝哄,其實做手機網(wǎng)站,真正意義上用不到什么的html5的強大功能阻荒。(可能對于一些不懂什么技術(shù)的小白而言:你的手機網(wǎng)站是用HTML5+CSS3做的啊挠锥,簡直牛逼呀!能用上目前互聯(lián)網(wǎng)上最新最前沿的技術(shù)侨赡。其實明眼人一看蓖租,就知道是用什么技術(shù)做的。俗話說的好:"外行看熱鬧羊壹,內(nèi)行看門道")
下面就說說怎么來開發(fā)移動手機網(wǎng)站吧蓖宦!
基本上開發(fā)手機網(wǎng)站,可大致分為兩大類油猫。一類是用框架開發(fā)手機網(wǎng)站稠茂。一類是自己手寫手機網(wǎng)站。

一情妖、框架開發(fā)手機網(wǎng)站

一般用現(xiàn)在常用的開發(fā)框架有:目前Web前端最火的框架(BootStrap)睬关、Jquery mobile..當(dāng)然可能還有一些移動端開發(fā)的框架,rachet.js
為什么說BootStrap是目前前端最火熱的開發(fā)框架呢毡证?
因為bootstrap自帶響應(yīng)式布局(柵格系統(tǒng))电爹,而且能做到移動設(shè)備優(yōu)先的原則。

運用bootstrap來開發(fā)網(wǎng)站有什么好處呢料睛?

1.不懂設(shè)計也可以做網(wǎng)站

就算不懂設(shè)計丐箩,你的網(wǎng)頁在Bootstrap的幫助下,也能擁有超高顏值秦效。它強大的內(nèi)置樣式庫讓你的作品變成尤物雏蛮。
主要體現(xiàn)在:字體文件和bootstrap自帶的UI樣式。(為廣大不會UI設(shè)計的程序員阱州,提供了福音)

2.上手快

你可以專心解決問題挑秉,冗繁的細(xì)節(jié)都丟給Bootstrap操心√酰可以做到一次開發(fā)犀概,就可適配所有終端立哑,并且能迅速上手并建出網(wǎng)站原型。還提供很多豐富的插件姻灶,就算你不會JS铛绰,基本能看懂常見的API,網(wǎng)站上的效果产喉,基本能解決捂掰。

缺點:

1.不遵循最佳實踐

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

2. Bootstrap 太重

直接點說:就是CSS和JS有點點大障涯。CSS壓縮后115k,JS壓縮后35k
如果你想要使用Bootstrap的所有功能罐旗,你應(yīng)該好好考慮資源的加載時間。當(dāng)然唯蝶,對于一些地方這可能不是問題九秀,但是在新西蘭互聯(lián)網(wǎng)不得不橫跨太平洋,這時數(shù)據(jù)達(dá)到那兒將是很緩慢的生棍。因此考慮你的目標(biāo)市場颤霎。
相信任何框架都有它的優(yōu)點,同時也是有它的缺點的涂滴。沒有一個產(chǎn)品是很完美的,所以根據(jù)自身實際情況進(jìn)行選擇晴音。至于一些其它框架暫時不做過多的解釋了柔纵,相信只要你肯愿意百度一下,就可以找到你想要的答案锤躁。

二搁料、手寫手機網(wǎng)站

一般我們自己手動開發(fā)手機網(wǎng)站的話,基本可以劃分兩類來做到系羞。一類是通過在網(wǎng)頁頭部添加meta標(biāo)簽進(jìn)行實現(xiàn)(網(wǎng)頁指html5的格式來開發(fā))郭计。另一類是通過CSS3的Media標(biāo)簽(媒介查詢)來實現(xiàn)。不了解媒介查詢的朋友椒振,可以看看這篇文章:響應(yīng)式布局昭伸。
在這里我們詳細(xì)講解下,利用添加meta標(biāo)簽來做手機網(wǎng)站。
基本在網(wǎng)頁頭部我們只需添加四個meta標(biāo)簽就可以實現(xiàn)一個手機網(wǎng)站的框架澎迎。我一起來看看是哪些meta標(biāo)簽庐杨。

1选调、添加viewport標(biāo)簽

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

詳細(xì)屬性:

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

2、禁止將數(shù)字變?yōu)殡娫捥柎a

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

一般情況下灵份,IOS和Android系統(tǒng)都會默認(rèn)某長度內(nèi)的數(shù)字為電話號碼仁堪,即使不加也是會默認(rèn)顯示為電話的,so填渠,取消這個很有必要弦聂!

3、iphone設(shè)備中的safari私有meta標(biāo)簽

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

它表示:允許全屏模式瀏覽氛什,隱藏瀏覽器導(dǎo)航欄

4莺葫、iphone的私有標(biāo)簽

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

它指定的iphone中safari頂端的狀態(tài)條的樣式
默認(rèn)值為default(白色),可以定為black(黑色)和black-translucent(灰色半透明)
另外還有一個個性化的link標(biāo)簽屉更,它支持用戶將網(wǎng)頁創(chuàng)建快捷方式到桌面時徙融,其圖標(biāo)變?yōu)槲覀冏约憾x的圖標(biāo)。比如手機騰訊網(wǎng)上的標(biāo)簽:

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

不過騰訊對這個png圖標(biāo)的命名并不規(guī)范瑰谜,常規(guī)我們要求文件名應(yīng)為 apple-touch-icon.png 或 apple-touch-icon-precomposed.png 欺冀,前者的命名iOS會為這個圖標(biāo)自動添加圓角、陰影和高亮覆蓋層萨脑,后者則不會添加這些效果隐轩。

蘋果圖標(biāo)apple-touch-icon-precomposed和apple-touch-icon兩種設(shè)置的區(qū)別探究

蘋果safari瀏覽器當(dāng)中apple-touch-icon-precomposed 和 apple-touch-icon屬性是有區(qū)別的
圖標(biāo)設(shè)置的屬性分為:
apple-touch-icon 和 apple-touch-icon-precomposed兩種屬性,從字面意思上可以看出渤早,第一個是 “蘋果移動設(shè)備圖標(biāo)”职车,第二個為“蘋果移動設(shè)備初始圖標(biāo)樣式”
使用apple-touch-icon屬性的明顯比使用apple-touch-icon-precomposed圖標(biāo)多出一個高光,因為在ios系統(tǒng)中對icon有一套規(guī)范鹊杖,就是在ios設(shè)備的圖標(biāo)統(tǒng)一為“四邊圓角”悴灵、“高光處理”,至于“圖標(biāo)陰影”骂蓖,是ios設(shè)備中統(tǒng)一為所有桌面元素增加的积瞒,所以不作為圖標(biāo)單獨處理的樣式,由于在視覺上統(tǒng)一最重要的是形狀的統(tǒng)一登下,所以“圓角”是必須的茫孔,但是對于“高光”蘋果沒有做出特別的強調(diào),所以蘋果設(shè)置當(dāng)中把“高光”作為可選項被芳,就產(chǎn)生了apple-touch-icon 和 apple-touch-icon-precomposed屬性缰贝。
結(jié)論
使用apple-touch-icon屬性為“增加高光光亮的圖標(biāo)”;
使用apple-touch-icon-precomposed屬性為“設(shè)計原圖圖標(biāo)”畔濒;

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 移動端

關(guān)閉iOS鍵盤首字母自動大寫

在iOS中剩晴,默認(rèn)情況下鍵盤是開啟首字母大寫的功能的,如果啟用這個功能篓冲,可以這樣:

<input type="text" autocapitalize="off" />
關(guān)閉iOS輸入自動修正

和英文輸入默認(rèn)自動首字母大寫那樣李破,IOS還做了一個功能宠哄,默認(rèn)輸入法會開啟自動修正輸入內(nèi)容,這樣的話嗤攻,用戶經(jīng)常要操作兩次毛嫉。如果不希望開啟此功能,我們可以通過input標(biāo)簽屬性來關(guān)閉掉:

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

當(dāng)移動設(shè)備橫豎屏切換時妇菱,文本的大小會重新計算承粤,進(jìn)行相應(yīng)的縮放,當(dāng)我們不需要這種情況時闯团,可以選擇禁止:

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

需要注意的是辛臊,PC端的該屬性已經(jīng)被移除,該屬性在移動端要生效房交,必須設(shè)置 `meta viewport'彻舰。

移動端如何清除輸入框內(nèi)陰影

在iOS上,輸入框默認(rèn)有內(nèi)部陰影候味,但無法使用 box-shadow 來清除刃唤,如果不需要陰影,可以這樣關(guān)閉:

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

快速回彈滾動

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

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

在iOS上如果你想讓一個元素?fù)碛邢?Native 的滾動效果躬柬,你可以這樣做:

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

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

移動端禁止選中內(nèi)容

如果你不想用戶可以選中頁面中的內(nèi)容,那么你可以在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高亮效果

在做移動端頁面時堪嫂,會發(fā)現(xiàn)所有a標(biāo)簽在觸發(fā)點擊時或者所有設(shè)置了偽類 :active 的元素偎箫,默認(rèn)都會在激活狀態(tài)時,顯示高亮框皆串,如果不想要這個高亮淹办,那么你可以通過css以下方法來進(jìn)行全局的禁止:

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

但這個方法在三星的機子上無效,有一種妥協(xié)的方法是把頁面非真實跳轉(zhuǎn)鏈接的a標(biāo)簽換成其它標(biāo)簽恶复,可以解決這個問題怜森。

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

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

img { -webkit-touch-callout: none; }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姥宝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恐疲,更是在濱河造成了極大的恐慌腊满,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件培己,死亡現(xiàn)場離奇詭異碳蛋,居然都是意外死亡,警方通過查閱死者的電腦和手機省咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門肃弟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人零蓉,你說我怎么就攤上這事笤受。” “怎么了壁公?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵感论,是天一觀的道長。 經(jīng)常有香客問我紊册,道長比肄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任囊陡,我火速辦了婚禮芳绩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撞反。我一直安慰自己妥色,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布遏片。 她就那樣靜靜地躺著嘹害,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吮便。 梳的紋絲不亂的頭發(fā)上笔呀,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音髓需,去河邊找鬼许师。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的微渠。 我是一名探鬼主播搭幻,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逞盆!你這毒婦竟也來了檀蹋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纳击,失蹤者是張志新(化名)和其女友劉穎续扔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焕数,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡纱昧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了堡赔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片识脆。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖善已,靈堂內(nèi)的尸體忽然破棺而出灼捂,到底是詐尸還是另有隱情,我是刑警寧澤换团,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布悉稠,位于F島的核電站,受9級特大地震影響艘包,放射性物質(zhì)發(fā)生泄漏的猛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一想虎、第九天 我趴在偏房一處隱蔽的房頂上張望卦尊。 院中可真熱鬧,春花似錦舌厨、人聲如沸岂却。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躏哩。三九已至,卻和暖如春揉燃,著一層夾襖步出監(jiān)牢的瞬間震庭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工你雌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓婿崭,卻偏偏與公主長得像拨拓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氓栈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

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