1.CSS作用
CSS:層疊樣式表單,渲染HTML元素標籤的樣式。通過使用CSS樣式設計頁面的格式,可將頁面的內容與表現形式分離。不僅可使維護站點的外觀更加容易,而且還可以使HTML文件程式碼更加簡練,縮短瀏覽器的載入時間。
2.CSS3動畫
animation:
@keyframes規則用於建立動畫,在 @keyframes 中規定CSS 樣式,就能建立由當前樣式逐漸改為新樣式的動畫效果。
在 @keyframes 中建立動畫時,請把它捆綁到某個選擇器,否則不會產生動畫效果。
通過規定至少以下兩項 CSS3 動畫屬性,即可將動畫繫結到選擇器:
- 規定動畫的名稱 animation-name
- 規定動畫的時長 animation-duration
用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同於 0% 和 100%。
0% 是動畫的開始,100% 是動畫的完成。
屬性 | 描述 | |
---|---|---|
@keyframes | 規定動畫。 | |
animation | 所有動畫屬性的簡寫屬性,除了 animation-play-state 屬性。 | |
animation-name | 規定 @keyframes 動畫的名稱。 | |
animation-duration | 規定動畫完成一個週期所花費的秒或毫秒。預設是 0。 | |
animation-timing-function | 規定動畫的速度曲線。預設是 "ease"。 | |
animation-delay | 規定動畫何時開始。預設是 0。 | |
animation-iteration-count | 規定動畫被播放的次數。預設是 1。 | |
animation-direction | 規定動畫是否在下一週期逆向地播放。預設是 "normal"。 | |
animation-play-state | 規定動畫是否正在執行或暫停。預設是 "running"。 | |
animation-fill-mode | 規定物件動畫時間之外的狀態。 |
CSS的transition和animation有何區別
transition和animation都可以作動效。
transition
是過渡,由一個狀態過渡到另一個狀態,比如高度100px過渡到200px;transition的作用在於,指定狀態變化所需要的時間。
(1)transition需要事件觸發,所以沒法在網頁載入時自動發生。
(2)transition是一次性的,不能重複發生,除非一再觸發。
(3)transition只能定義開始狀態和結束狀態,不能定義中間狀態,也就是說只有兩個狀態。
(4)一條transition規則,只能定義一個屬性的變化,不能涉及多個屬性。
animation
是動畫,animation有幀的概念,可以設定關鍵幀keyframe,一個動畫可以由多個狀態過渡組成。
3.選擇器權重及優先順序
權重分為四級,權重值越大優先順序越高。
1.內聯樣式。如:style=“xxx”,權值為1000
2.ID選擇器。如:#content,權值為100
3.類,偽類和屬性選擇器。如:.content,:hover,[attribute],權值為10
4.元素選擇器,偽元素選擇器。如:div,p,權值為1
注意:通用選擇器(*),子選擇器(>),相鄰同胞選擇器(+)並不在四個等級中,權值為0
權重值越大優先順序越高,相同權值後定義覆蓋前面定義的
!important 強制重定義,提升優先順序。
不要用標籤名限制 class 規則,如div.info這樣的寫法,其實我們可以直接寫為.info,從右到左解析的原因可以知道為什麼其低效。
4.JQuery機制
5.AJAX
通過在後臺與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。AJAX是一種在無需重新載入整個網頁的情況下,能夠更新部分網頁的情況。
1.建立一個ajax物件,var ajax = new XMLHttpRequest();
2.連線伺服器,ajax.open(method,url,true ); 非同步傳輸(多個事情一起做)
3.傳送請求,ajax.send( );
4.接受返回,處理資料。
readystate(瀏覽器伺服器進行到哪一步了)
0:(未初始化)未呼叫open方法
1:(載入)已呼叫send方法,正在傳送求情
2:(載入完成)send完成
3:(解析)正在解析響應內容
4:(完成)響應內容解析完成
status HTTP狀態碼
200:成功
301:永久重定向
302:臨時重定向
304:資源找到,但不符合條件
404:找不到資源
500:伺服器端出錯
6.HTTP協議
HTTP協議是超文字傳輸協議
HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等)。
HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器傳送所有請求。Web伺服器根據接收到的請求後,向客戶端傳送響應資訊。
1.輸入地址
2.瀏覽器通過DNS伺服器查詢域名的IP地址(DNS查詢過程:瀏覽器快取->系統快取->路由器快取)
3.瀏覽器向web伺服器傳送一個HTTP請求
4.伺服器永久重定向響應(從http://example.com到http://www.example.com)
5.瀏覽器跟蹤重定向地址
6.伺服器處理請求
7.服務返回一個HTTP響應
8.瀏覽器顯示HTML
9.瀏覽器傳送請求獲取嵌在HTML中的資源(如圖片,音訊,視訊,css,js等)
10.瀏覽器傳送非同步請求
7.原型
JS進階(2):人人都能懂的原型物件8.閉包
9.Promise
10.回撥機制
11.ES6 Class 繼承 與原生JS繼承區別
在ES5中,繼承實質上是子類先建立屬於自己的this,然後再將父類的方法新增到this
(也就是使用Parent.apply(this)
的方式)或者this.__proto__
(即Child.prototype=new Parent()
)上。
而在ES6中,則是先建立父類的例項物件this,然後再用子類的建構函式修改this
12.跨域
允許跨域請求: link, img, script
不允許跨域: xhr物件 (ajax請求)
變通: script 需要伺服器返回一段可執行的js語句
伺服器應該返回包含資料的一條可執行的js語句複製程式碼
如何實現?
客戶端實現: JSONP (填充式json)
1. 在客戶端定義處理函式
2. 在按鈕單擊事件中,動態建立script元素,src設定為服務端地址,並攜帶請求引數callback=函式名(jsonp不支援POST請求,因為script只支援get請求)
3. 在伺服器端,接收請求引數中的函式名,將函式名和要返回的資料,拼接為一條可執行的js語句
4. 客戶端script,請求服務端php,獲得可執行語句,自動呼叫提前定義好的函式處理資料
5. 在客戶端處理函式結尾,要動態刪除script
伺服器端代理:新增http請求頭
CORS