1.Html相關(guān)
2.Css相關(guān)
3.Vue相關(guān)
Html相關(guān)
- html語義化
???????根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語義化),選擇合適的標(biāo)簽(代碼語義化)便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時(shí)讓瀏覽器的爬蟲和機(jī)器很好地解析绑蔫。
需要注意的是
1 盡可能少的使用無語義的標(biāo)簽div和span;
2 在語義不明顯時(shí),既可以使用div或者p時(shí)腊徙,盡量用p, 因?yàn)閜在默認(rèn)情況下有上下間距响蓉,對(duì)兼容特殊終端有利;
3 不要使用純樣式標(biāo)簽,如:b、font弄慰、u等第美,改用css設(shè)置;
4 需要強(qiáng)調(diào)的文本,可以包含在strong或者em標(biāo)簽中(瀏覽器預(yù)設(shè)樣式陆爽,能用CSS指定就不用他們),strong默認(rèn)樣式是加粗(不要用b),em是斜體(不用i);
5 使用表格時(shí)什往,標(biāo)題要用caption,表頭用thead慌闭,主體部分用tbody包圍别威,尾部用tfoot包圍。表頭和一般單元格要區(qū)分開驴剔,表頭用th省古,單元格用td;
6 表單域要用fieldset標(biāo)簽包起來,并用legend標(biāo)簽說明表單的用途;
7 每個(gè)input標(biāo)簽對(duì)應(yīng)的說明文本都需要使用label標(biāo)簽丧失,并且通過為input設(shè)置id屬性豺妓,在lable標(biāo)簽中設(shè)置for=someld來讓說明文本和相對(duì)應(yīng)的input關(guān)聯(lián)起來。
新標(biāo)簽:
標(biāo)簽 | 描述 |
---|---|
<article> | 定義文檔內(nèi)的文章 |
<aside> | 定義頁面內(nèi)容之外的內(nèi)容 |
<bdi> | 定義與其他不同的文本方向 |
<details> | 定義用戶可查看或隱藏的額外細(xì)節(jié) |
<dialog> | 定義對(duì)話框或窗口 |
<figure> | 定義自包含內(nèi)容布讹,比如圖片琳拭、圖表、照片描验、代碼清單等等 |
<figcaption> | 定義<figure>元素的標(biāo)題 |
<header> | 定義文檔或頁的頁眉 |
<footer> | 定義文檔或頁的頁腳 |
<main> | 定義文檔的主內(nèi)容 |
<mark> | 定義重要或強(qiáng)調(diào)的內(nèi)容 |
<menuitem> | 定義用戶能夠從彈出菜單調(diào)用的命令/菜單項(xiàng)目 |
<meter> | 定義已知范圍(尺度)內(nèi)的標(biāo)量測(cè)量 |
<nav> | 定義文檔內(nèi)的導(dǎo)航鏈接 |
<progress> | 定義任務(wù)進(jìn)度 |
<time> | 定義日期/時(shí)間 |
新標(biāo)簽兼容低版本:
- ie9之前版本通過
createElement
創(chuàng)建html5
新標(biāo)簽 - 引入
html5shiv.js
- meta viewport相關(guān)
<!DOCTYPE html> H5標(biāo)準(zhǔn)聲明白嘁,使用 HTML5 doctype,不區(qū)分大小寫
<head lang=”en”> 標(biāo)準(zhǔn)的 lang 屬性寫法
<meta charset=’utf-8′> 聲明文檔使用的字符編碼
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″/> 優(yōu)先使用 IE 最新版本和 Chrome
<meta name=”description” content=”不超過150個(gè)字符”/> 頁面描述
<meta name=”keywords” content=””/> 頁面關(guān)鍵詞
<meta name=”author” content=”name, email@gmail.com”/> 網(wǎng)頁作者
<meta name=”robots” content=”index,follow”/> 搜索引擎抓取
<meta name=”viewport” content=”initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no”> 為移動(dòng)設(shè)備添加 viewport
<meta name=”apple-mobile-web-app-title” content=”標(biāo)題”> iOS 設(shè)備 begin
<meta name=”apple-mobile-web-app-capable” content=”yes”/> 添加到主屏后的標(biāo)題(iOS 6 新增)
是否啟用 WebApp 全屏模式膘流,刪除蘋果默認(rèn)的工具欄和菜單欄
<meta name=”apple-itunes-app” content=”app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL”>
添加智能 App 廣告條 Smart App Banner(iOS 6+ Safari)
<meta name=”apple-mobile-web-app-status-bar-style” content=”black”/>
<meta name=”format-detection” content=”telphone=no, email=no”/> 設(shè)置蘋果工具欄顏色
<meta name=”renderer” content=”webkit”> 啟用360瀏覽器的極速模式(webkit)
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”> 避免IE使用兼容模式
<meta http-equiv=”Cache-Control” content=”no-siteapp” /> 不讓百度轉(zhuǎn)碼
<meta name=”HandheldFriendly” content=”true”> 針對(duì)手持設(shè)備優(yōu)化絮缅,主要是針對(duì)一些老的不識(shí)別viewport的瀏覽器,比如黑莓
<meta name=”MobileOptimized” content=”320″> 微軟的老式瀏覽器
<meta name=”screen-orientation” content=”portrait”> uc強(qiáng)制豎屏
<meta name=”x5-orientation” content=”portrait”> QQ強(qiáng)制豎屏
<meta name=”full-screen” content=”yes”> UC強(qiáng)制全屏
<meta name=”x5-fullscreen” content=”true”> QQ強(qiáng)制全屏
<meta name=”browsermode” content=”application”> UC應(yīng)用模式
<meta name=”x5-page-mode” content=”app”> QQ應(yīng)用模式
<meta name=”msapplication-tap-highlight” content=”no”> windows phone 點(diǎn)擊無高光
設(shè)置頁面不緩存
<meta http-equiv=”pragma” content=”no-cache”>
<meta http-equiv=”cache-control” content=”no-cache”>
<meta http-equiv=”expires” content=”0″>
Css相關(guān)
-
盒模型
1呼股、ie盒模型算上border耕魄、padding及自身(不算margin),標(biāo)準(zhǔn)的只算上自身窗體的大小 css設(shè)置方法如下:/* 標(biāo)準(zhǔn)模型 */ box-sizing:content-box; /*IE模型*/ box-sizing:border-box;
2彭谁、margin屎开、border、padding马靠、content由外到里 3.幾種獲得寬高的方式
dom.style.width/height //這種方式只能取到dom元素內(nèi)聯(lián)樣式所設(shè)置的寬高奄抽,也就是說如果該節(jié)點(diǎn)的樣式是在style標(biāo)簽中或外聯(lián)的CSS文件中設(shè)置的話,通過這種方法是獲取不到dom的寬高的甩鳄。
dom.currentStyle.width/height //這種方式獲取的是在頁面渲染完成后的結(jié)果逞度,就是說不管是哪種方式設(shè)置的樣式,都能獲取到妙啃。但這種方式只有IE瀏覽器支持档泽。
window.getComputedStyle(dom).width/height //這種方式的原理和2是一樣的俊戳,這個(gè)可以兼容更多的瀏覽器,通用性好一些馆匿。
dom.getBoundingClientRect().width/height //這種方式是根據(jù)元素在視窗中的絕對(duì)位置來獲取寬高的
dom.offsetWidth/offsetHeight //這個(gè)就沒什么好說的了抑胎,最常用的,也是兼容最好的渐北。
3阿逃、各種獲得寬高的方式
/*獲取屏幕的高度和寬度(屏幕分辨率):*/ window.screen.height/width
/*獲取屏幕工作區(qū)域的高度和寬度(去掉狀態(tài)欄):*/ window.screen.availHeight/availWidth
/*網(wǎng)頁全文的高度和寬度:*/ document.body.scrollHeight/Width
/*滾動(dòng)條卷上去的高度和向右卷的寬度:*/ document.body.scrollTop/scrollLeft
/*網(wǎng)頁可見區(qū)域的高度和寬度(不加邊線):*/ document.body.clientHeight/clientWidth
/*網(wǎng)頁可見區(qū)域的高度和寬度(加邊線):*/ document.body.offsetHeight/offsetWidth
Vue相關(guān)
生命周期順序
組件通信:
父?jìng)髯佑?code>props,父用子用ref
子調(diào)父用$emit
,無關(guān)系用Bus
- VueRouter
定義
var routes = [
{
path:"/one",
component:導(dǎo)入的組件1
},
{
path:"/two",
component:導(dǎo)入的組件2
},
];
// 定義路由組件
var router = new VueRouter({
routes
});
// 定義路由
new Vue({
el:"#box",
router
});
訪問設(shè)定的路由后 會(huì)將<router-view></router-view>替換成相應(yīng)的模版
html訪問方式 <router-link to="/one">One</router-link>(類似a標(biāo)簽)
js訪問方式 this.$router.push('/one');
replace方式 替換當(dāng)前頁面
攜帶的參數(shù) 可以通過this.$route.query.xxxx來獲取
- Vue雙向綁定
原理:利用了
Object.defineProperty()
這個(gè)方法重新定義了對(duì)象獲取屬性值(get)和設(shè)置屬性值(set)的操作來實(shí)現(xiàn)的。 缺點(diǎn):雙向數(shù)據(jù)流是自動(dòng)管理狀態(tài)的, 但是在實(shí)際應(yīng)用中會(huì)有很多不得不手動(dòng)處理狀態(tài)變化的邏輯, 使得程序復(fù)雜度上升, 難以調(diào)試赃蛛。
- computed watch methods
用法: 區(qū)別:
1恃锉、前兩者自動(dòng)追蹤數(shù)據(jù),執(zhí)行相關(guān)函數(shù)呕臂,最后一個(gè)手動(dòng)調(diào)用破托;
2、computed是計(jì)算屬性歧蒋,用法與data一致
3土砂、watch像事件監(jiān)聽,對(duì)象發(fā)生變化時(shí)谜洽,執(zhí)行相關(guān)操作
4瘟芝、methods與js中執(zhí)行方法類似
5、computed通常只有g(shù)et屬性
6褥琐、數(shù)據(jù)變化的同時(shí)進(jìn)行異步操作或者是比較大的開銷,那么watch為最佳選擇
7晤郑、watch的對(duì)象必須事先聲明