每次打開,不知道寫什么,還好一個私活把pc端網站交了出去,老板還是比較滿意,下面就是移動端的了。就邊寫邊記,當筆記好了。如果認為low的請越過。感覺對自己有些幫助的,請留言或點贊謝謝!
一、大體注意點:
1、兼容性問題:
當前移動端使用的瀏覽器基本上就2種,一種是Android,一種為ios,他們用的瀏覽器無非是谷歌瀏覽器和Safari瀏覽器,都是webkit內核,都支持css3,和es6。所以兼容性基本上可以不用考慮了。
2、手勢代替鼠標事件
因為移動設備沒有鼠標,而都是觸摸屏,所以用手勢代替鼠標事件是理所當然的事情。
3、屏幕大小的不一定
不可能為每一個屏幕尺寸開發一套css,所以應用響應式的開發也是水到渠成的。
4、關于css3動畫
現在的css3動畫在原理上使用GPU硬件加速,所以說使用css3動畫比用javascript動畫更快。
5、移動端的js庫。
大家都用zopto.js和angular.js,我們也沒有必要標新立異。
二、詳細展開
1、因為不存在兼容性問題(看到ie偷笑中...),html5和css3上吧。具體說
①布局使用flex布局,也可使用flex和固定像素的布局。
②布局單位的選擇rem(相對單位),為了更好的兼容屏幕,我們可以html根節點用屏幕的寬度 / 10(這個值你來確定,也可以為20),也更方便我們運算。
但是也有需要固定像素的時候,比如說:你無論在pc端看文章或者看書或者是phone上看小說,眼睛對于字體的要求是一定的。一般情況下是14px。
③圖片問題:
高清屏的dpr為2,這就是說如果你用100*100px的圖片,像達到100*100px的清晰度,因為高清屏幕的dpr為2,就是說它用200*200的物理像素來顯示你100*100的圖片,這就造成了圖片的模糊。也就是說如果想要達到你想要的效果,就需要用100*100dp(物理像素)來表現它。因為屏幕是我們無法控制的,所以我們只能控制圖片了。那么一個公式來表示:width=(w_dp / dpr)px;w_dp是指圖片的寬度,這樣我們就了解了,100*100的圖片我們應該用50*50來表現它,就可以達到了我們想要的效果。
注意下,iPhone 6 plus dpr都是3了;
④一像素邊框問題
由上面的第三小點,引申出第四個問題,因為dpr為2,也就是說1px邊框用2個物理像素顯示,也模糊掉了。如何解決呢?現在通用的用縮放的方式解決:
縮放的方式解決1px邊框問題
⑤為了用戶體驗,使用多行文本溢出:
多行文本溢出
暫時先寫這么多,也參考了X課網上的許多知識點,在此說聲謝謝。
天在一個前端群里發生了一件很有意思的事情,群成員A在群里提了一個關于行內元素排列間隙處理的問題,群成員B幫A解決了,兩個人就聊了起來,發現兩個人都是自學的前端,學歷都是普通二本。但A的月薪是10K,B的月薪只有6K。今天就借著這件事跟大家聊一下,為什么同樣是自學前端,有的人第一份工作能拿10K,有的人只能拿6K。
在聊這個話題之前,我們先把學歷、天賦這些無法改變的因素排除在外,就說作為一個普通人該怎么做,才能讓第一份工作拿到更高的薪資。
1. 選擇一座好城市
城市的發展有良性循環和惡性循環。大城市基礎設施完善,工作崗位多,就會吸引更多的人才涌入,人口越多消費能力越強,就會吸引更多的資本投資,資本投資會產生更多的高薪工作機會,從而形成良性循環。而小城市則會形成人口和資本外流的惡性循環。
所以。做前端開發的,挑選一座好城市真的非常重要,大城市起薪都高,并且成長速度也快。拿我的兩個朋友舉例,兩個人都是湖南人,都是一畢業就去了深圳,一個待了一年,覺得一線城市太累,工作壓力大,于是就回了長沙,另一個在深圳呆了5年,去年才回去。現在他們兩個在長沙的薪資,一個是18K,一個是25K。從事前端開發,我一直都是建議能去一線城市就去一線城市,不想去一線城市,最起碼也要在省會城市。
網上的教程很多,有些教程講的會比較深入,有些教程講的比較淺,學的程度不一樣,自然薪資就不一樣。舉個例子,普通教程ajax前后端交互會在學完js后直接講XMLHttp的API方法和使用, 跨域和封裝也都是只限于前端代碼部分的講解和庫的使用,而一份好的教程教程則會在這基礎上拓展HTTP理論、交互通信原理、服務端http服務器搭建、MIME、報文端口、監聽抓包、網絡業務模型、代理緩存、cookie session 鑒權認證、安全加密、Token、JWT、oauth、session管理、RESTful接口設計、協商合約、資源標識等原理規則性知識,能夠讓你真正清楚整個交互的來龍去脈 而不只是單純的抄方法 跟著教程寫代碼而已。所以,一份好的教程,也是你能否找到一份好的工作的關鍵點。
因為很多初學者對于這個行業完全不了解,也無法區分教程的優劣。所以我整理了一套最系統的優質前端教程作為粉絲福利,只要關注我,私信我“前端”二字,我免費分享給大家。
大多數初學者對于這個行業并不了解,并不知道自己的水平能夠拿多少薪資。可以在招聘網站上搜集一些能拿到10K的工作崗位,招聘需求上面需要會的東西,自己都有一定了解,那就可以投。面試前多刷刷面試題,面試后復盤總結,發現有不足的地方就補上,然后進行下一場面試。很多公司都是面試造火箭,工作擰螺絲。6k的前端和10K的前端,平常干的活差不了太多。面試問題回答得都不錯,問你期望薪資是多少,自信點,直接要10K或者是說11K就好(多報1k當做議價空間),不要說什么8-10K,這么說那就是8K了。
初學者對于這個行業不了解,不知道自己學怎么樣,基礎是否扎實,心里沒有一個底。有時候一個問題卡好幾個小時都無法解決,也會打擊到學習的信心。所以,一定要找個能指導你的人。這里不是說叫你參加培訓,很多機構表面上看老師都很厲害,但事實是你接觸不到這些厲害的老師,這些厲害的老師都只是錄制一個課程,課程的答疑都是助教。助教大多都是在這些機構學完找不到工作的,遇到問題也就是這個助教替你去百度,對你的幫助并不大。真正對你有幫助的一定是有個大佬帶你, 能夠根據你的情況把問題給你講解得很透徹,幫你弄清楚為什么會出現這個問題、該怎么解決這個問題。可以看看身邊有沒有從事前端開發工作的朋友,有的話可以讓他帶帶你。
如果身邊沒有朋友是做這方面的,那就借助“網友”的力量。可以加入我們這個WEB前端開發群,里面有很多工作很多年的前端大佬,問一個問題很快就能得到答案,并且會告訴你目前欠缺哪些知識,給你分享他們的經驗,感興趣可以私信“前端”加入到我們的圈子。
vscode開發工具使用、markdown文檔工具使用、瀏覽器平臺環境、標簽基礎、DTD與META
語義化、選擇器、權重與優先級、匹配規則、浮動與清除、BFC、類名組合規則、SEO前端技巧、定位、疊加技巧、
偽類、偽元素、盒子模型、代碼規范、性能優化、渲染原理、CSS Sprites 、 iconfont字體圖標、布局思路、布局定式
css3動畫、 css3選擇器、 css3過渡、flex布局、背景漸變、css3實用動效、3D模塊、css3變量、em/rem/vw
學完這些可以完成一個企業內部多頁面項目實戰(非仿站)有完整PSD與切圖
JavaScript概念、基礎認知、發展歷史、應用范圍、優缺點。
ECMAScript
語言概覽、語句語法、數據類型、運算符、隱式轉換、運算規則、控制流程、作用域、作用域鏈、作用域解析、js解釋引擎、字符串屬性方法、for of/for in
數組屬性方法、對象、廣義對象概念、對象特性、存儲機制、深拷貝、對象實際應用、工廠模式、構造函數、原型、原型鏈、原型指向、封裝
多種繼承、包裝對象、this、this指向、js數據處理、垃圾GC、閉包原理與應用、debug方法論、瀏覽器控制臺工具應用、面向對象開發、函數式開發
純函數、遞歸函數、回調函數、組合函數、緩存函數、柯里化函數、偏函數、函數防抖與節流、高級函數、IIFE函數、模塊化
數學對象、高級數組方法(reduce、filter、map、every、some、forEach、find、findIndex、include)等
高級對象方法(entires、defineProperty、freeze、fromEntries、assign、keys、create、hasOwnProperty)等
this通過bind、call、apply指向偏移、同步與異步、閉包模塊化、數據形變處理、性能處理
DOM/BOM
DOM對象與方法、節點與遍歷樹、DOM選擇器、DOM節點增刪改查、DOM樣式操作、DOM位置獲取與偏移、DOM對象與標簽區別、DOM虛擬化、DOM事件、
Event對象、定時器與監聽器、事件委托、事件代理、事件分流、事件冒泡、默認行為、事件捕獲、防抖、節流、滾動、鍵盤行為、事件降頻、行為鎖機制、
拖拽模組、碰撞檢測、距離判斷、三角函數、方向判斷、運動框架、彈性運動、重力加速度、DOM樹、CSSOM樹、渲染解析、加載、回流、重繪、瀏覽器線程與阻塞。
BOM深入、window對象、navigator、history、screen、location、spa概念、本地傳參、日期對象使用、日期格式化封裝、隨機封裝、DOM分片容器
JS業務應用擴展
JSON對象、數據解析、JSON方法、模板渲染、緩存懶加載、正則表達式RegExp、元字符、修飾符、正向預查、貪婪模式、replace方法、分組與不分組、test、match與exec
正則庫封裝、表單校驗、圖片預存懶加載、自定義封裝滾動組件、多重輪播(循環、視差、旋轉木馬)、選項卡切換、樓梯導航、吸頂導航、拖拽導航 、
JavaScript編碼風格指南、console應用技巧
ECMAScript5 --- ECMAScript9擴展
版本解讀、應用環境、let、const、解構賦值、箭頭函數、對象解構、reset參數解構、class、set、get、extends、super、static、private實現、symbol、promise、proxy代理攔截、async/await
對象新增API、數組新增API、字符串新增API、原型屬性、對象修飾、代理攔截、鏈式詢問、空值合并運算符、泡泡龍面向對象游戲開發
HTML5 / 移動端開發 部分
HTML5標簽與API
HTML5概念、定義、新增特性、DTD對比、新增H5標簽、新增語義化H5標簽、H5表單
H5拖拽事件 video、audio、fullScreen、FileReader文件流、Blob對象、sessionStorage、localStorage、
網絡狀態、頁面生命周期、網頁狀態監聽、地理信息與定位、canvas畫布、worker多線程、Notifications桌面通知
播放器開發 canvas交互特效開發
移動端適配/事件
移動端適配概念、尺寸與分辨率原理、PPI與DPI計算、DIP與DPR設備像素概念、視口viewport概念、布局視口、視覺視口、理想視口
視口適配方案(Meta viewport)縮放設置 、screen窗口大小API、媒體查詢@media、rem適配、vw vh適配
移動端適配方案、flexible rem方案、 vh vw方案 、復合方案、高清適配方案、移動端字體縮放解決、1px邊框問題解決、半像素線
圖片高清適配、image-set、srcset、js拼接URL技巧、IPhonex劉海屏適配、安全區域、fit與env
Meta權限管理、兼容優化、IOS頭部底部閃屏回退輸入框問題、輸入法空格問題、默認首字母大寫問題、滑動卡頓問題等
終端樣式美化與訪問判斷
Touch事件組封裝、click延遲處理、FastClick使用、禁用縮放設置理想視口
常用類庫/工具
jquery: 元素選擇、增刪改差、事件處理、位置獲取、動畫過渡、高級方法、特效應用
zepto:移動端的jquery、DOM操作、移動端事件、click延遲處理、touch事件組
基礎UI庫: layerUI 、easyUI、bootStrap、UI模塊化、UI庫使用技巧、文檔解讀、案例調試、表單系統
iScroll、touchjs等移動端事件庫使用
swiper:移動端網站觸摸滑動、輪播圖插件、模塊化應用、源碼解讀
art-template: 模板引擎 模板語法、渲染方法、原生模板引擎實現
CSS預處理:sass、less使用 stylus深入學習 、預處理語法、css編程、 Minxin 、預處理函數、繼承、嵌套
vscode高級插件與配置 liveserver sass
模板化應用 、預處理應用
date-picker移動端原生組件開發
需求分析、業務規則、技術棧選型、文件輸出規則、技術分析
MVC模型概念與設計、業務邏輯分類
view層適配方案 原型布局搭建 模板化生成
工具函數開發、面向對象式業務設計 功能類日期對象開發
交互業務封裝 模塊對接 優化設計 面向對象高級程序設計
Node原生基礎
Node基礎概念、NPM命令、V8引擎概念、JavaScript模塊化 CMD AMD UMD、EventLoop事件循環、同步異步、 阻塞非阻塞 、任務隊列、宏任務、微任務、
原生Node模塊、核心模塊與require、module、觸發器events與path模塊、fs模塊、Buffer對象、URL模塊、HTTP模塊 、stream流
Node原生封裝HTTP與文件服務器
Node框架
express框架使用、中間件、核心對象、路由配置、模板引擎、數據腳本、Router核心、CORS配置、錯誤處理、校驗封裝、PM2管理、nodemoon管理
MORGAN日志處理、查詢正則捕獲、中間件開發、bodyParse等第三方中間件使用 、文件流上傳下載、文件流切分
webpack工程化構建
工程化概念、工程化工具介紹、webpack基礎知識、webpack配置與運行、plugin插件、loader使用、入口出口配置、模塊modules、依賴處理、dev Server
target 、文件切分、build打包、熱處理、package管理、性能優化、測試處理 、第三方插件使用、babel等
前后端數據交互
HTTP通信交互原理、請求響應、MIME、URI地址、報文解析、端口、報文流、測試監聽抓包、TCP/IP握手機制、網絡業務模型
代理、緩存、網關、隧道等概念、method與請求頭分類
基礎XMLHTTPRequest對象方法屬性、方法、ajax異步交互 、同源策略原理
原生js封裝ajax交互、 jquery的ajax封裝交互、jsonp跨域處理、cors跨域處理、攜帶cookie與跨域處理、代理服務器跨域處理、
cookie驗證與通信 、axios庫的使用 代理、封裝、攔截、合并、二次封裝
通信加密策略、數據對稱加密、數據非對稱加密、RSA加密實踐、MD5加密實踐
登錄注冊與鑒權機制、Authenticity認證、Token認證、JWT認證、session狀態管理、 oauth認證
RESTful接口設計
RESTful設計原則、狀態碼設計與規范、服務器響應規則與格式、前后端接口協議制定、傳統RESTful改進
API設計規范、 資源定位、JSON模式、合約說明、資源標識符、緩存友好API、HTTP頭管理、文檔定義、松耦合原則、一致性、重用、穩定性原則
數據庫存儲
MongoDB基礎概念、NoSQL與SQL、CAP定理、RDBMS、MongoDB語法、指令、監控與GUI、MongoDb驅動、Mongoose應用
數據庫創建、集合增刪改查、文檔增刪改查、數據庫查詢、高級查詢操作、通道查詢、多條件查詢、反向篩選、索引處理、aggregate聚合管道、
validation驗證、population聯表、middleware中間件處理、查詢ERROR類二次封裝
博客后臺項目實戰
數據庫設計、服務端路由搭建、接口設計與API管理、通信交互管道封裝、注冊登錄、路由導航、前端路由管理、權限管理、用戶管理、分類管理、標簽管理
、文章管理、模塊化功能封裝、校驗庫封裝、promise鏈式行為封裝、
異步模塊處理、SPA單頁面應用初級實現、原生集中行為控制器、模板化+模塊化+預處理+工程化實現前端頁面
組件化封裝
組件化基礎概念、組件設計原則、組件封裝、組件耦合與解耦、工程化+模板化+模塊化實現原生組件化功能、
vue基礎
vue開發準備、工具與插件、mvc mvp mvvm設計理念、原生js實現MVVM核心框架、vue設計模式、生命周期、命令與屬性、組件化
數據驅動與雙向綁定、虛擬DOM概念原理、模板語法、條件與列表、數組監測、計算屬性、事件處理、修飾與表單、監聽器、過濾器、
methods watch computed filter對比、組件化開發、動態組件、組件通信、高級組件通信、插槽、vue動畫 、實例對象、set、get、nextTick、vue插件
vue工程化
Babel、webpack配置vue、vue單文件組件、vue-cli、工程平臺處理、postCss、animate、core、socket、lodash工具、vue-cli插件、preset、靜態資源處理、
環境變量與膜還是切換、工程化部署、工程構建
vue Router
vue路由概念、嵌套路由、路由視圖、動態路由、路由匹配、編程式導航、history、hash模式管理、命名視圖、重定向與別名、導航守衛、路由元信息、滾動與懶加載
導航故障處理
vuex
vuex核心概念、EventBus對比、狀態管理模式、Store、state、getter、mutation、action、moudule
vuex輔助函數與API功能、vuex環境選擇、vuex模塊化處理規則與技巧、對象風格提交方式、模塊重用等
vue項目實戰
vue博客項目實戰 PC + 移動端、 elementUI、vantUI、websocket聊天室、虛擬人偶、vueScroll、store、qs、nprogress、editor、
文章分類、詞云效果、spa單頁面應用、移動PC無縫切換、完整注冊登錄、vue加密鑒權、http封裝管理、錯誤處理封裝、vuex核心狀態管理、本地存儲狀態更新、令牌處理、
文章富文本編輯、點贊、收藏、訪問、評論、組件封裝、組件復用、組件混合、高級組件開發、復合性組件通信、vue中處理原生DOM行為、vue常見錯誤處理、
重置vue數據響應、個人信息修改、頭像上傳、通知組件封裝、postcss應用、項目打包優化
欲善其事必先利其器,本文重點介紹幾款web開發小工具,涉及分辨率測試、H5測試、性能測試。(PS:chrome devtools、firebug是web開發人員必須要掌握的開發工具,本文不做重點介紹。)
web開發時,一般會有分辨率適配的需求。這時我們首先要做的是要了解當下主流分辨率,以便做重點測試。相關數據可以參考【百度分辨率統計】。在線地址:http://tongji.baidu.com/data/screen/
頁面合成時,我們希望能同時看到不同分辨率下的頁面效果,推薦【響應式設計開發工具】。在線地址:http://www.coolrabbit.xin/blogs/tool_responsive/index.html
真機測試發現問題時,我們需要獲取真機的分辨率信息,此工具不僅可以查看分辨率,還可以查看dpr等信息。在線地址:https://quirksmode.org/m/tests/widthtest_vpdevice.html
在使用一些h5新特性時,有必要了解下此特性的兼容情況,同時此工具可以以國家為單位,提供支持度統計數據。在線地址:http://caniuse.com/
檢測當前瀏覽器對于html5的支持程度,給出相應分數、詳細說明。發現某個設備有兼容性問題時,可以運行下來定位原因。在線地址:http://html5test.com/
非常優秀的一款網頁性能評分工具,性能標準參考了google的PageSpeed,yahoo的Yslow。大家可以用下此工具,看下自己做的項目能得多少分,有哪些地方可以優化,尤其是我紅色標出的4個tab,需要重點看下。在線地址:https://gtmetrix.com/
二維碼生成/解碼
http://tool.oschina.net/qr/
正則測試
http://tool.oschina.net/regex/
加解密
http://tool.oschina.net/encrypt/
圖片壓縮
https://tinypng.com/
屏幕取色工具
https://colorpix.en.softonic.com/
如果你也有不錯的工具,歡迎一起分享。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。