整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          前端開發(fā)-javascript必會知識及面試重點

          前端開發(fā)-javascript必會知識及面試重點

          avascript面試重點


          什么是執(zhí)行上下文

          執(zhí)行上下文就是當(dāng)前 JavaScript 代碼被解析和執(zhí)行時所在環(huán)境的抽象概念, JavaScript 中運行任何的代碼都是在執(zhí)行上下文中運行

          這是因為當(dāng)函數(shù)執(zhí)行的時候,首先會形成一個新的私有的作用域,然后依次按照如下的步驟執(zhí)行

          • 如果有形參,先給形參賦值
          • 進(jìn)行私有作用域中的預(yù)解釋,函數(shù)聲明優(yōu)先級比變量聲明高,最后后者會被前者覆蓋,但是可以重新賦值
          • 私有作用域中的代碼從上到下執(zhí)行

          閉包是什么

          個人理解為,閉包就是函數(shù)中的函數(shù),里面的函數(shù)可以訪問外面函數(shù)的變量,外面的變量是這個內(nèi)部函數(shù)的一部分

          閉包的作用

          • 使用閉包可以訪問函數(shù)中的變量
          • 可以長期保存在內(nèi)存中,聲明周期比較長
          • 注意:閉包不能亂用,否則會導(dǎo)致內(nèi)存泄露,影響網(wǎng)頁的性能。閉包使用完之后,要立即釋放資源,將引用的變量指向null

          閉包的主要應(yīng)用

          • 函數(shù)作為參數(shù)傳遞
          • 函數(shù)作為返回值

          異步和單線程

          JS 需要異步的根本原因是 JS 是單線程運行的,即在同一時間只能做一件事,不能“一心二用”。為了利用多核CPU的計算能力,HTML5提出Web Worker標(biāo)準(zhǔn),允許JavaScript腳本創(chuàng)建多個線程,但是子線程完全受主線程控制,且不得操作DOM。所以,這個新標(biāo)準(zhǔn)并沒有改變JavaScript單線程的本質(zhì)。

          一個 Ajax 請求由于網(wǎng)絡(luò)比較慢,請求需要 5 秒鐘。如果是同步,這 5 秒鐘頁面就卡死在這里啥也干不了了。異步的話,就好很多了,5 秒等待就等待了,其他事情不耽誤做,至于那 5 秒鐘等待是網(wǎng)速太慢,不是因為 JS 的原因

          前端使用異步的場景

          • setTimeout setInterval
          • 網(wǎng)絡(luò)請求ajax,動態(tài)加載
          • 事件綁定

          原型和原型鏈

          原型:在JavaScript中原型是一個prototype對象,用于表示類型之間的關(guān)系。

          原型鏈:JavaScript萬物都是對象,對象和對象之間也有關(guān)系,并不是孤立存在的。對象之間的繼承關(guān)系,在JavaScript中是通過prototype對象指向父類對象,直到指向Object對象為止,這樣就形成了一個原型指向的鏈條,專業(yè)術(shù)語稱之為原型鏈。

           var Person=function(){
           			this.name='匿名',
           			this.age=18 
           		}
           		var Student=function(){}
           Student.prototype=new Person();
           var s1=new Student();
           
          

          DOM操作

          • 新增節(jié)點和移動節(jié)點
          var div1=document.getElementById('div1');
          var p1=document.creatElement('p'); //添加新節(jié)點
          p1.innerHTML="this is p1"; 
          div1.appendChild(p1); //添加新創(chuàng)建的元素
          var p2=document.getElementById('p2');
          div1.appendChild(p2); //移動元素,這里的p2不加引號
          
          • 獲取父元素
          var div1=document.getElementById('div1');
          var par=div1.parentElement;
          
          • 獲取子元素
          var p2=document.getElementById('p2');
          var child=p2.childNodes; //返回子元素的標(biāo)簽數(shù)組
          

          DOM時間模型和事件流

          DOM事件模型氛圍捕獲和冒泡。 一個事件發(fā)生后,會在子元素和父元素之間傳播,這種傳播分成三個階段

          1. 捕獲階段 事件從window對象自上而下向目標(biāo)節(jié)點傳播的階段
          2. 目標(biāo)階段 真正的目標(biāo)節(jié)點正在處理事件的階段
          3. 冒泡階段 事件從目標(biāo)節(jié)點自下而上向window對象傳播的階段

          捕獲是從上到下,事件先從window對象,然后再到document對象,然后是html標(biāo)簽,(通過document.documentElement獲取html標(biāo)簽),然后是body標(biāo)簽,(通過document.body獲取body標(biāo)簽),然后按照普通的html結(jié)構(gòu)一層一層往下傳,最后到達(dá)目標(biāo)元素

          阻止冒泡

          ev.stopPropagation()
          

          事件代理(事件委托)

          由于事件會在冒泡的階段向上傳播到父節(jié)點,因此可以把子節(jié)點的監(jiān)聽函數(shù)定義在父節(jié)點上,由父節(jié)點的監(jiān)聽函數(shù)統(tǒng)一處理多個子元素的事件,這種方式叫做事件的代理

          我們設(shè)定一種場景,一個div包含若干個a,而且還能繼續(xù)增加,那如何快捷方便的為所有a綁定事件呢

          如果給每個a標(biāo)簽都綁定一個事件,那對內(nèi)存的消耗是非常巨大的,借助事件代理,我們只需要給父容器div綁定方法即可,

          這樣不管是點擊的哪一個后代元素,都會根據(jù)冒泡傳播的傳遞機制,把父容器的click事件觸發(fā),然后把對應(yīng)的方法執(zhí)行,根據(jù)事件源,

          我們可以知道點擊的是誰,從而完成不同的事情

          a標(biāo)簽的各種屬性都可以獲取到,取需要的數(shù)據(jù)就可以了
          

          使用代理的優(yōu)點

          • 代碼簡潔
          • 減少瀏覽器的內(nèi)存占用

          BOM操作

          BOM(瀏覽器對象模型)是瀏覽器本身的一些信息的設(shè)置和獲取,例如獲取瀏覽器的寬度、高度、設(shè)置讓瀏覽器跳轉(zhuǎn)哪個地址

          1. window.screen 對象,包含有關(guān)屏幕的信息
          2. window.location對象,用戶獲取當(dāng)前地址的url,并把瀏覽器定向到新的頁面
          3. window.history對象,瀏覽歷史的前進(jìn)后退
          4. window.navigator對象,常常用來獲取瀏覽器信息,是否移動端訪問

          獲取屏幕的寬高

          window.width
          window.height
          

          獲取網(wǎng)址,協(xié)議,path,參數(shù),hash等

          // 例如當(dāng)前網(wǎng)址是 https://juejin.im/timeline/frontend?a=10&b=10#some
          console.log(location.href) // https://juejin.im/timeline/frontend?a=10&b=10#some
          console.log(location.protocol) // https:
          consloe.log(location.pathname) //timeline/frontend
          consloe.log(location.search) //?a=10&b=10
          consloe.log(location.hash) // #some
          

          瀏覽器的前進(jìn)后退

          history.back()
          history.forward()
          

          獲取瀏覽器的特性,然后識別客戶端,例如判斷是不是chrom瀏覽器

          TML(英文Hyper Text Markup Language的縮寫)中文譯為“超文本標(biāo)簽語言”,主要是通過HTML標(biāo)簽對網(wǎng)頁中的文本、圖片、聲音等內(nèi)容進(jìn)行描述。

          1 HTML骨架格式

          日常生活的書信,我們要遵循共同的約定。

          同理:HTML 有自己的語言語法骨架格式:

          <HTML>   
              <head>     
                  <title></title>
              </head>
              <body>
              </body>
          </HTML>
          1. html結(jié)構(gòu):包括head body
          2. html標(biāo)簽是以尖括號包圍的關(guān)鍵字
          3. html標(biāo)簽通常是成對出現(xiàn)的,有開始就有結(jié)束,包含成對標(biāo)簽、獨立標(biāo)簽
          4. html通常都有屬性,格式:屬性名=“屬性值”(多個屬性之間空格隔開)
          5. html標(biāo)簽不區(qū)分大小寫,建議小寫

          2 html基本標(biāo)簽

          • HTML標(biāo)簽

          作用:所有HTML中標(biāo)簽的一個根節(jié)點。

          • head標(biāo)簽

          作用:用于存放:title,meta,base,style,script,link

          注意:在head標(biāo)簽中我們必須要設(shè)置的標(biāo)簽是title

          • title標(biāo)簽

          作用:讓頁面擁有一個屬于自己的標(biāo)題。

          • body標(biāo)簽

          作用:頁面在的主體部分,用于存放所有的HTML標(biāo)簽:p,h,a,b,u,i,s,em,del,ins,strong,img

          3 顏色的表示方式

          1. color:文本的顏色
          2. bgcolor:背景色
          3. background:背景圖片

          第一種方式:使用顏色名稱: 僅僅有16種顏色名可用英文字母,其余的要用16進(jìn)制值。

          aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow

          第二種方式:RGB模式

          第三種:十六進(jìn)制

          #000000 #ffffff #325687 #377405

          4 文檔類型<!DOCTYPE>(重點)

          <!DOCTYPE html>這句話就是告訴我們使用哪個html版本, 我們使用的是 html 5 的版本。 html有很多版本,那我們應(yīng)該告訴用戶和瀏覽器我們使用的版本號。

          標(biāo)簽位于文檔的最前面,用于向瀏覽器說明當(dāng)前文檔使用哪種 HTML 或 XHTML 標(biāo)準(zhǔn)規(guī)范,必需在開頭處使用標(biāo)簽為所有的XHTML文檔指定XHTML版本和類型,只有這樣瀏覽器才能按指定的文檔類型進(jìn)行解析。

          5 HTML標(biāo)簽的語義化(重點)

          所謂標(biāo)簽語義化,就是指標(biāo)簽的含義。

          為什么要有語義化標(biāo)簽:方便代碼的閱讀和維護(hù),同時讓瀏覽器或是網(wǎng)絡(luò)爬蟲可以很好地解析,從而更好分析其中的內(nèi)容,使用語義化標(biāo)簽會具有更好地搜索引擎優(yōu)化

          核心:合適的地方給一個最為合理的標(biāo)簽。

          語義是否良好: 當(dāng)我們?nèi)サ鬋SS之后,網(wǎng)頁結(jié)構(gòu)依然組織有序,并且有良好的可讀性,不管是誰都能看懂這塊內(nèi)容是什么。

          遵循的原則:先確定語義的HTML ,再選合適的CSS。

          6 總結(jié):(重要知識點)

          • 雙標(biāo)簽
          <html></html>
          <head></head>
          <title></title>
          <body></body>
          <table></table>
          <tr></tr>
          <td></td>
          <span></span>
          <p></p>
          <form></form>
          <h1></h1>
          <h2></h2>
          <h3></h3>
          <h4></h4>
          <h5></h5>
          <h6></h6>
          <object></object>
          <style></style>
          <b></b>
          <u></u>
          <strong></strong>
          <i></i>
          <div></div>
          <a></a>
          <script></script>
          <center><center>
          • 單標(biāo)簽
          <br>
          <hr>
          <img>
          <input>
          <param>
          <meta>
          <link>
          • 排版標(biāo)簽
          1.注釋標(biāo)簽:<!–注釋–>
          -------------------------------------
          2.換行標(biāo)簽:<br/>
          -------------------------------------
          3.段落標(biāo)簽:<p>文本文字
             特點:段與段之間有行高
             屬性:align對齊方式
                     (left:左對齊 center:居中 right:右對齊)
          -------------------------------------
          4.水平線標(biāo)簽:<hr/>
             屬性:
                  width:水平線的長度(兩種:第一種:像素表示;第二種,百分比表示)
                  size: 水平線的粗細(xì) (像素表示,例如:10px)
                  color: 水平線的顏色
                  align:水平線的對齊方式(left:左對齊 center:居中 right:右對齊)
          -------------------------------------
          5.容器標(biāo)簽(重點)
               <div>:塊級標(biāo)簽,獨占一行,換行
               <span>:行級標(biāo)簽,所有內(nèi)容都在同一行作用
               <div>:主要是結(jié)合css頁面分塊布局
               <span>:進(jìn)行友好提示信息
          • 標(biāo)題標(biāo)簽 (熟記)

          為了使網(wǎng)頁更具有語義化,我們經(jīng)常會在頁面中用到標(biāo)題標(biāo)簽,HTML提供了6個等級的標(biāo)題,隨著數(shù)字增大文字逐漸變小,字體是加粗的,內(nèi)置字號,默認(rèn)占據(jù)一行;

          <h1>、<h2>、<h3>、<h4>、<h5>和<h6>
          • 列表標(biāo)簽

          容器里面裝載著文字或圖表的一種形式,叫列表。列表最大的特點就是 整齊 、整潔、 有序

          無序列表 ul (重點)

          無序列表標(biāo)簽: <ul></ul>
              屬性:type :三個值,分別為:
                     circle(空心圓) ,disc(默認(rèn),實心圓),square(黑色方塊)
              列表項:<li></li>
          注意:
          <ul></ul>中只能嵌套<li></li>,直接在<ul></ul>標(biāo)簽中輸入其他標(biāo)簽或者文字的做法是不被允許的。
          <li>與</li>之間相當(dāng)于一個容器,可以容納所有元素。
          
          無序列表會帶有自己樣式屬性,放下那個樣式,一會讓CSS來!

          有序列表 ol

          有序列表標(biāo)簽:<ol>
                屬性:type:1、A、a、I、i(數(shù)字、字母、羅馬數(shù)字)
                列表項: <li></li>

          定義列表dl

          \dl>
          <dt>名詞1
          <dd>名詞1解釋1
          <dd>名詞1解釋2
          …
          <dt>名詞2
          <dd>名詞2解釋1
          <dd>名詞2解釋2
          …
          </dl>
          
          dl>
          名詞1
          名詞1解釋1
          名詞1解釋2
          ... 名詞2
          名詞2解釋1
          名詞2解釋2
          ...
          • 圖片標(biāo)簽

          獨立標(biāo)簽

          屬性:
          src:圖片地址: 相對路徑 (同一個網(wǎng)站) 絕對路徑 (不同網(wǎng)站)
          width:寬度height:高度border:邊框align:對齊方式,代表圖片與相鄰的文本的相當(dāng)位置(有三個屬性值:top middle bottom)
          alt:圖片的文字說明hspace 和 vspace 設(shè)定圖片邊沿上下左右空白,以免文字或其它圖片過于貼近

          鏈接標(biāo)簽

          超鏈接可以是文本,也可以是一幅圖像,您可以點擊這些內(nèi)容來跳轉(zhuǎn)到新的文檔或者當(dāng)前文檔中的某個部分。(不僅可以創(chuàng)建文本超鏈接,在網(wǎng)頁中各種網(wǎng)頁元素,如圖像、表格、音頻、視頻等都可以添加超鏈接)

          屬性:
          href:跳轉(zhuǎn)頁面的地址(跳轉(zhuǎn)到外網(wǎng)需要添加協(xié)議);
          name:名稱,錨點(回到錨點: 頂部,底部,中間),在訪問錨點的書寫格式:#name的值
          target:_self(自己) _blank(新頁面,之前頁面存在) _
          __parent top 默認(rèn)
          self_search相等于給頁面起一個名字,如果再次打開時,如果頁面存在,則不再打開新的頁面。可以是任意名字。

          如果當(dāng)時沒有確定鏈接目標(biāo)時,通常將鏈接標(biāo)簽的href屬性值定義為“#”(即href="#"),表示該鏈接暫時為一個空鏈接。

          TML基本語法

          認(rèn)識網(wǎng)頁

          網(wǎng)頁主要由文字、圖像和超鏈接等元素構(gòu)成。當(dāng)然,除了這些元素,網(wǎng)頁中還可以包含音頻、視頻以及Flash等。

          常見瀏覽器內(nèi)核介紹

          瀏覽器是網(wǎng)頁運行的平臺,常用的瀏覽器有IE、火狐(Firefox)、谷歌(Chrome)、Safari和Opera等。我們平時稱為五大瀏覽器。

          瀏覽器內(nèi)核(理解)

          瀏覽器內(nèi)核又可以分成兩部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。
          渲染引擎 它負(fù)責(zé)取得網(wǎng)頁的內(nèi)容(HTML、XML、圖像等等)、整理訊息(例如加入 CSS 等),以及計算網(wǎng)頁的顯示方式,然后會輸出至顯示器或打印機。瀏覽器的內(nèi)核的不同對于網(wǎng)頁的語法解釋會有不同,所以渲染的效果也不相同。
          JS 引擎 則是解析 Javascript 語言,執(zhí)行 javascript語言來實現(xiàn)網(wǎng)頁的動態(tài)效果。

          最開始渲染引擎和 JS 引擎并沒有區(qū)分的很明確,后來 JS 引擎越來越獨立,內(nèi)核就傾向于只指渲染引擎。有一個網(wǎng)頁標(biāo)準(zhǔn)計劃小組制作了一個 ACID 來測試引擎的兼容性和性能。內(nèi)核的種類很多,如加上沒什么人使用的非商業(yè)的免費內(nèi)核,可能會有10多種,但是常見的瀏覽器內(nèi)核可以分這四種:Trident、Gecko、Blink、Webkit。

          (1)Trident(IE內(nèi)核)

          國內(nèi)很多的雙核瀏覽器的其中一核便是 Trident,美其名曰 "兼容模式"。

          代表: IE、傲游、世界之窗瀏覽器、Avant、騰訊TT、獵豹安全瀏覽器、360極速瀏覽器、百度瀏覽器等。

          Window10 發(fā)布后,IE 將其內(nèi)置瀏覽器命名為 Edge,Edge 最顯著的特點就是新內(nèi)核 EdgeHTML。

          (2)Gecko(firefox)

          Gecko(Firefox 內(nèi)核): Mozilla FireFox(火狐瀏覽器) 采用該內(nèi)核,Gecko 的特點是代碼完全公開,因此,其可開發(fā)程度很高,全世界的程序員都可以為其編寫代碼,增加功能。 可惜這幾年已經(jīng)沒落了, 比如 打開速度慢、升級頻繁、豬一樣的隊友flash、神一樣的對手chrome。

          (3) webkit(Safari)

          Safari 是蘋果公司開發(fā)的瀏覽器,所用瀏覽器內(nèi)核的名稱是大名鼎鼎的 WebKit。

          現(xiàn)在很多人錯誤地把 webkit 叫做 chrome內(nèi)核(即使 chrome內(nèi)核已經(jīng)是 blink 了),蘋果感覺像被別人搶了媳婦,都哭暈再廁所里面了。

          代表瀏覽器:傲游瀏覽器3、 Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機瀏覽器、Android 默認(rèn)瀏覽器,

          (4) Chromium/Blink(chrome)

          在 Chromium 項目中研發(fā) Blink 渲染引擎(即瀏覽器核心),內(nèi)置于 Chrome 瀏覽器之中。Blink 其實是 WebKit 的分支。

          ? 大部分國產(chǎn)瀏覽器最新版都采用Blink內(nèi)核。二次開發(fā)

          (5) Presto(Opera)

          Presto(已經(jīng)廢棄) 是挪威產(chǎn)瀏覽器 opera 的 "前任" 內(nèi)核,為何說是 "前任",因為最新的 opera 瀏覽器早已將之拋棄從而投入到了谷歌懷抱了。

          移動端的瀏覽器內(nèi)核主要說的是系統(tǒng)內(nèi)置瀏覽器的內(nèi)核。

          Android手機而言,使用率最高的就是Webkit內(nèi)核,大部分國產(chǎn)瀏覽器宣稱的自己的內(nèi)核,基本上也是屬于webkit二次開發(fā)。

          iOS以及WP7平臺上,由于系統(tǒng)原因,系統(tǒng)大部分自帶瀏覽器內(nèi)核,一般是Safari或者IE內(nèi)核Trident的

          Web標(biāo)準(zhǔn)(重點)

          通過以上瀏覽器的內(nèi)核不同,我們知道他們工作原理、解析肯定不同,顯示就會有差別。

          Web 標(biāo)準(zhǔn)的好處

          1、讓W(xué)eb的發(fā)展前景更廣闊
          2、內(nèi)容能被更廣泛的設(shè)備訪問
          3、更容易被搜尋引擎搜索
          4、降低網(wǎng)站流量費用
          5、使網(wǎng)站更易于維護(hù)
          6、提高頁面瀏覽速度

          Web 標(biāo)準(zhǔn)構(gòu)成

          Web標(biāo)準(zhǔn)不是某一個標(biāo)準(zhǔn),而是由W3C和其他標(biāo)準(zhǔn)化組織制定的一系列標(biāo)準(zhǔn)的集合。

          主要包括結(jié)構(gòu)(Structure)、表現(xiàn)(Presentation)和行為(Behavior)三個方面。

          結(jié)構(gòu)標(biāo)準(zhǔn):結(jié)構(gòu)用于對網(wǎng)頁元素進(jìn)行整理和分類,咱們主要學(xué)的是HTML。 最重要
          表現(xiàn)標(biāo)準(zhǔn):表現(xiàn)用于設(shè)置網(wǎng)頁元素的版式、顏色、大小等外觀樣式,主要指的是CSS。
          行為標(biāo)準(zhǔn):行為是指網(wǎng)頁模型的定義及交互的編寫,咱們主要學(xué)的是

          理想狀態(tài)我們的源碼: .HTML .css .js

          HTML 初識

          一般先學(xué)習(xí)HTML+CSS, 這里我們先定一個小目標(biāo),先學(xué)HTML,后學(xué)習(xí)CSS。

          HTML(英文Hyper Text Markup Language的縮寫)中文譯為“超文本標(biāo)簽語言”。是用來描述網(wǎng)頁的一種語言。

          所謂超文本,因為它可以加入圖片、聲音、動畫、多媒體等內(nèi)容,不僅如此,它還可以從一個文件跳轉(zhuǎn)到另一個文件,與世界各地主機的文件連接。

          <h1> 我是一個大標(biāo)題 </h1>

          注意: 體會 文本 標(biāo)簽 語言 幾個詞語

          • HTML 指的是超文本標(biāo)記語言 (Hyper Text Markup Language)
          • HTML 不是一種編程語言,而是一種標(biāo)記語言 (markup language)
          • 標(biāo)記語言是一套標(biāo)記標(biāo)簽 (markup tag)

          總結(jié): HTML 作用就是用標(biāo)記標(biāo)簽來描述網(wǎng)頁,把網(wǎng)頁內(nèi)容在瀏覽器中展示出來。

          用文字來描述網(wǎng)頁標(biāo)簽

          HTML骨架格式

          日常生活的書信,我們要遵循共同的約定。

          同理:HTML 有自己的語言語法骨架格式:

          <HTML>   
              <head>     
                  <title></title>
              </head>
              <body>
              </body>
          </HTML>
          1 HTML標(biāo)簽:
          
          作用所有HTML中標(biāo)簽的一個根節(jié)點。 最大的標(biāo)簽   根標(biāo)簽
          
          2 head標(biāo)簽: 文檔的頭部
          
          文檔的頭部描述了文檔的各種屬性和信息,包括文檔的標(biāo)題、在 Web 中的位置以及和其他文檔的關(guān)系等。絕大多數(shù)文檔頭部包含的數(shù)據(jù)都不會真正作為內(nèi)容顯示給讀者。
          
          注意在head標(biāo)簽中我們必須要設(shè)置的標(biāo)簽是title
          
          3.title標(biāo)簽: 文檔的標(biāo)題
          
          作用:讓頁面擁有一個屬于自己的標(biāo)題。
          
          4.body標(biāo)簽:文檔的主體  以后我們的頁面內(nèi)容 基本都是放到body里面的
          
          body 元素包含文檔的所有內(nèi)容(比如文本、超鏈接、圖像、表格和列表等等。)

          HTML標(biāo)簽分類

          在HTML頁面中,帶有“< >”符號的元素被稱為HTML標(biāo)簽,如上面提到的 <HTML>、<head>、<body>都是HTML骨架結(jié)構(gòu)標(biāo)簽。所謂標(biāo)簽就是放在“< >” 標(biāo)簽符中表示某個功能的編碼命令,也稱為HTML標(biāo)簽或 HTML元素

          1.雙標(biāo)簽

          <標(biāo)簽名> 內(nèi)容 </標(biāo)簽名>

          該語法中“<標(biāo)簽名>”表示該標(biāo)簽的作用開始,一般稱為“開始標(biāo)簽(start tag)”,“” 表示該標(biāo)簽的作用結(jié)束,一般稱為“結(jié)束標(biāo)簽(end tag)”。和開始標(biāo)簽相比,結(jié)束標(biāo)簽只是在前面加了一個關(guān)閉符“/”。

          比如 <body>我是文字  </body>

          2.單標(biāo)簽

          <標(biāo)簽名 />

          單標(biāo)簽也稱空標(biāo)簽,是指用一個標(biāo)簽符號即可完整地描述某個功能的標(biāo)簽。

          比如  <br />

          HTML標(biāo)簽關(guān)系

          標(biāo)簽的相互關(guān)系就分為兩種:

          1.嵌套關(guān)系

          <head>  <title> </title>  </head>

          2.并列關(guān)系

          <head></head>
          <body></body>

          倡議: 如果兩個標(biāo)簽之間的關(guān)系是嵌套關(guān)系,子元素最好縮進(jìn)一個tab鍵的身位。如果是并列關(guān)系,最好上下對齊。

          文檔類型<!DOCTYPE>

          <!DOCTYPE html> 

          同學(xué)你用啥手機?你咋回答?

          這句話就是告訴我們使用哪個html版本? 我們使用的是 html 5 的版本。 html有很多版本,那我們應(yīng)該告訴用戶和瀏覽器我們使用的版本號。

          <!DOCTYPE> 標(biāo)簽位于文檔的最前面,用于向瀏覽器說明當(dāng)前文檔使用哪種 HTML 或 XHTML 標(biāo)準(zhǔn)規(guī)范,必需在開頭處使用<!DOCTYPE>標(biāo)簽為所有的XHTML文檔指定XHTML版本和類型,只有這樣瀏覽器才能按指定的文檔類型進(jìn)行解析。

          注意: 一些老網(wǎng)站可能用的還是老版本的文檔類型比如 XHTML之類的,但是我們學(xué)的是HTML5,而且HTML5的文檔類型兼容很好(向下兼容的原則),所以大家放心的使用HTML5的文檔類型就好了。

          字符集

          utf-8是目前最常用的字符集編碼方式,常用的字符集編碼方式還有g(shù)bk和gb2312。

          gb2312 簡單中文 包括6763個漢字

          BIG5 繁體中文 港澳臺等用

          GBK包含全部中文字符 是GB2312的擴展,加入對繁體字的支持,兼容GB2312

          UTF-8則包含全世界所有國家需要用到的字符

          記住一點,以后我們統(tǒng)統(tǒng)使用UTF-8 字符集, 這樣就避免出現(xiàn)字符集不統(tǒng)一而引起亂碼的情況了。

          HTML標(biāo)簽的語義化

          白話: 所謂標(biāo)簽語義化,就是指標(biāo)簽的含義,使用做合適的標(biāo)簽做做合適的事,比如標(biāo)題用 h 標(biāo)簽而不是 div 標(biāo)簽。

          為什么要有語義化標(biāo)簽

          1. 方便代碼的閱讀和維護(hù)
          2. 同時讓瀏覽器或是網(wǎng)絡(luò)爬蟲可以很好地解析,從而更好分析其中的內(nèi)容
          3. 使用語義化標(biāo)簽會具有更好地搜索引擎優(yōu)化

          核心:合適的地方給一個最為合理的標(biāo)簽。

          語義是否良好: 當(dāng)我們?nèi)サ鬋SS之后,網(wǎng)頁結(jié)構(gòu)依然組織有序,并且有良好的可讀性。

          白話,一眼看去,就知道那個是重點,結(jié)構(gòu)是什么,知道每塊的內(nèi)容是干啥的。

          遵循的原則:先確定語義的HTML ,再選合適的CSS。

          HTML常用標(biāo)簽

          首先 HTML和CSS是兩種完全不同的語言,我們學(xué)的是結(jié)構(gòu),就只寫HTML標(biāo)簽,認(rèn)識標(biāo)簽就可以了。 不會再給結(jié)構(gòu)標(biāo)簽指定樣式了。

          HTML標(biāo)簽有很多,這里我們學(xué)習(xí)最為常用的,后面有些較少用的,我們可以查下手冊就可以了。

          排版標(biāo)簽

          排版標(biāo)簽主要和css搭配使用,顯示網(wǎng)頁結(jié)構(gòu)的標(biāo)簽,是網(wǎng)頁布局最常用的標(biāo)簽。

          標(biāo)題標(biāo)簽 (熟記)

          單詞縮寫: head 頭部. 標(biāo)題 title 文檔標(biāo)題

          為了使網(wǎng)頁更具有語義化,我們經(jīng)常會在頁面中用到標(biāo)題標(biāo)簽,HTML提供了6個等級的標(biāo)題,即

          <h1>、<h2>、<h3>、<h4>、<h5>和<h6>

          標(biāo)題標(biāo)簽語義:  作為標(biāo)題使用,并且依據(jù)重要性遞減

          其基本語法格式如下:

          <hn>   標(biāo)題文本   </hn>

          注意: h1 標(biāo)簽因為重要,盡量少用,不要動不動就向你扔了一個h1。 一般h1 都是給logo使用,或者頁面中最重要標(biāo)題信息。

          段落標(biāo)簽( 熟記)

          單詞縮寫: paragraph 段落

          在網(wǎng)頁中要把文字有條理地顯示出來,離不開段落標(biāo)簽,就如同我們平常寫文章一樣,整個網(wǎng)頁也可以分為若干個段落,而段落的標(biāo)簽就是

          <p>  文本內(nèi)容  </p>

          是HTML文檔中最常見的標(biāo)簽,默認(rèn)情況下,文本在一個段落中會根據(jù)瀏覽器窗口的大小自動換行。

          水平線標(biāo)簽(認(rèn)識)

          單詞縮寫: horizontal 橫線 [?h?r??zɑntl] 同上

          在網(wǎng)頁中常常看到一些水平線將段落與段落之間隔開,使得文檔結(jié)構(gòu)清晰,層次分明。這些水平線可以通過插入圖片實現(xiàn),也可以簡單地通過標(biāo)簽來完成,


          就是創(chuàng)建橫跨網(wǎng)頁水平線的標(biāo)簽。其基本語法格式如下:


          <hr />是單標(biāo)簽

          在網(wǎng)頁中顯示默認(rèn)樣式的水平線。

          換行標(biāo)簽(熟記)

          單詞縮寫: break 打斷 ,換行

          在HTML中,一個段落中的文字會從左到右依次排列,直到瀏覽器窗口的右端,然后自動換行。如果希望某段文本強制換行顯示,就需要使用換行標(biāo)簽

          <br />

          這時如果還像在word中直接敲回車鍵換行就不起作用了。

          div span標(biāo)簽(重點)

          div span 是沒有語義的 是我們網(wǎng)頁布局主要的2個盒子 css+div

          div 就是 division 的縮寫 分割, 分區(qū)的意思 其實有很多div 來組合網(wǎng)頁。

          span, 跨度,跨距;范圍

          語法格式:

          <div> 這是頭部 </div>    <span>今日價格</span>

          文本格式化標(biāo)簽(熟記)

          在網(wǎng)頁中,有時需要為文字設(shè)置粗體、斜體或下劃線效果,這時就需要用到HTML中的文本格式化標(biāo)簽,使文字以特殊的方式顯示。

          標(biāo)簽屬性

          屬性就是特性 比如 手機的顏色 手機的尺寸 ,總結(jié)就是手機的。。

          手機的顏色是黑色 手機的尺寸是 8寸

          水平線的長度是 200

          圖片的寬度 是 300 鍵 值對

          使用HTML制作網(wǎng)頁時,如果想讓HTML標(biāo)簽提供更多的信息,可以使用HTML標(biāo)簽的屬性加以設(shè)置。其基本語法格式如下:

          <標(biāo)簽名 屬性1="屬性值1" 屬性2="屬性值2" …> 內(nèi)容 </標(biāo)簽名>

          在上面的語法中,

          1.標(biāo)簽可以擁有多個屬性,必須寫在開始標(biāo)簽中,位于標(biāo)簽名后面。

          2.屬性之間不分先后順序,標(biāo)簽名與屬性、屬性與屬性之間均以空格分開。

          3.任何標(biāo)簽的屬性都有默認(rèn)值,省略該屬性則取默認(rèn)值。

          采取 鍵值對 的格式 key="value" 的格式

          比如:

          <hr width="400" />

          屬性 是 寬度

          值 是 400

          提倡: 盡量不使用 樣式屬性。

          圖像標(biāo)簽img (重點)

          單詞縮寫: image 圖像

          HTML網(wǎng)頁中任何元素的實現(xiàn)都要依靠HTML標(biāo)簽,要想在網(wǎng)頁中顯示圖像就需要使用圖像標(biāo)簽,接下來將詳細(xì)介紹圖像標(biāo)簽以及和他相關(guān)的屬性。其基本語法格式如下:

          該語法中src屬性用于指定圖像文件的路徑和文件名,他是img標(biāo)簽的必需屬性。

          <img src="圖像URL" />

          鏈接標(biāo)簽(重點)

          單詞縮寫: anchor 的縮寫 [???k?(r)] 。基本解釋 錨, 鐵錨 的

          在HTML中創(chuàng)建超鏈接非常簡單,只需用標(biāo)簽環(huán)繞需要被鏈接的對象即可,其基本語法格式如下:

          <a href="跳轉(zhuǎn)目標(biāo)" target="目標(biāo)窗口的彈出方式">文本或圖像</a>

          href:用于指定鏈接目標(biāo)的url地址,當(dāng)為標(biāo)簽應(yīng)用href屬性時,它就具有了超鏈接的功能。 Hypertext Reference的縮寫。意思是超文本引用

          target:用于指定鏈接頁面的打開方式,其取值有_self和_blank兩種,其中_self為默認(rèn)值,_blank為在新窗口中打開方式。

          注意:

          1.外部鏈接 需要添加 http:// www.baidu.com

          2.內(nèi)部鏈接 直接鏈接內(nèi)部頁面名稱即可 比如 < a href="index.html"> 首頁

          3.如果當(dāng)時沒有確定鏈接目標(biāo)時,通常將鏈接標(biāo)簽的href屬性值定義為“#”(即href="#"),表示該鏈接暫時為一個空鏈接。

          4.不僅可以創(chuàng)建文本超鏈接,在網(wǎng)頁中各種網(wǎng)頁元素,如圖像、表格、音頻、視頻等都可以添加超鏈接。

          錨點定位 (難點)

          通過創(chuàng)建錨點鏈接,用戶能夠快速定位到目標(biāo)內(nèi)容。
          創(chuàng)建錨點鏈接分為兩步:

          1.使用“a href=”#id名>“鏈接文本"</a>創(chuàng)建鏈接文本(被點擊的)
            <a href="#two">   
          
          2.使用相應(yīng)的id名標(biāo)注跳轉(zhuǎn)目標(biāo)的位置。
            <h3 id="two">第2集</h3> 

          base 標(biāo)簽 基本的

          base 可以設(shè)置整體鏈接的打開狀態(tài)

          base 寫到 <head> </head> 之間

          把所有的連接 都默認(rèn)添加 target="_blank"

          特殊字符標(biāo)簽 (理解)

          注釋標(biāo)簽

          在HTML中還有一種特殊的標(biāo)簽——注釋標(biāo)簽。如果需要在HTML文檔中添加一些便于閱讀和理解但又不需要顯示在頁面中的注釋文字,就需要使用注釋標(biāo)簽。其基本語法格式如下:
          ?

              <!-- 注釋語句 -->   ctrl + /       或者 ctrl +shift + / 

          注釋內(nèi)容不會顯示在瀏覽器窗口中,但是作為HTML文檔內(nèi)容的一部分,也會被下載到用戶的計算機上,查看源代碼時就可以看到。

          路徑(重點、難點)

          實際工作中,通常新建一個文件夾專門用于存放圖像文件,這時再插入圖像,就需要采用“路徑”的方式來指定圖像文件的位置。

          路徑可以分為: 相對路徑和絕對路徑

          相對路徑

          以引用文件之網(wǎng)頁所在位置為參考基礎(chǔ),而建立出的目錄路徑。因此,當(dāng)保存于不同目錄的網(wǎng)頁引用同一個文件時,所使用的路徑將不相同,故稱之為相對路徑。

          1. 圖像文件和HTML文件位于同一文件夾:只需輸入圖像文件的名稱即可,如<img src="logo.gif" />。
          2. 圖像文件位于HTML文件的下一級文件夾:輸入文件夾名和文件名,之間用“/”隔開,如<img src="img/img01/logo.gif" />。
          3. 圖像文件位于HTML文件的上一級文件夾:在文件名之前加入“../” ,如果是上兩級,則需要使用 “../ ../”,以此類推,如<img src="../logo.gif" />。絕對路徑

          絕對路徑以Web站點根目錄為參考基礎(chǔ)的目錄路徑。之所以稱為絕對,意指當(dāng)所有網(wǎng)頁引用同一個文件時,所使用的路徑都是一樣的

          “D:\web\img\logo.gif”,或完整的網(wǎng)絡(luò)地址,例如
          “http://www.itcast.cn/images/logo.gif”

          列表標(biāo)簽

          無序列表 ul (重點)

          無序列表的各個列表項之間沒有順序級別之分,是并列的。其基本語法格式如下:

          <ul>
            <li>列表項1</li>
            <li>列表項2</li>
            <li>列表項3</li>
            ......
          </ul>

          比如下面這些,新聞是沒有順序的,不用排隊,先到先得,后發(fā)布先顯示。

           1. <ul></ul>中只能嵌套<li></li>,直接在<ul></ul>標(biāo)簽中輸入其他標(biāo)簽或者文字的做法是不被允許的。
           2. <li>與</li>之間相當(dāng)于一個容器,可以容納所有元素。
           3. 無序列表會帶有自己樣式屬性,放下那個樣式,一會讓CSS來!

          有序列表 ol (了解)

          有序列表即為有排列順序的列表,其各個列表項按照一定的順序排列定義,有序列表的基本語法格式如下:

          <ol>
            <li>列表項1</li>
            <li>列表項2</li>
            <li>列表項3</li>
            ......
          </ol>

          所有特性基本與ul 一致。

          自定義列表(理解)

          定義列表常用于對術(shù)語或名詞進(jìn)行解釋和描述,定義列表的列表項前沒有任何項目符號。其基本語法如下:

          <dl>
            <dt>名詞1</dt>
            <dd>名詞1解釋1</dd>
            <dd>名詞1解釋2</dd>
            ...
            <dt>名詞2</dt>
            <dd>名詞2解釋1</dd>
            <dd>名詞2解釋2</dd>
            ...
          </dl>

          表格 table(會使用)

          創(chuàng)建表格

          在HTML網(wǎng)頁中,要想創(chuàng)建表格,就需要使用表格相關(guān)的標(biāo)簽。創(chuàng)建表格的基本語法格式如下:

          <table>
            <tr>
              <td>單元格內(nèi)的文字</td>
              ...
            </tr>
            ...
          </table>

          在上面的語法中包含三對HTML標(biāo)簽,分別為 <table></table>、<tr></tr>、<td></td>,他們是創(chuàng)建表格的基本標(biāo)簽,缺一不可,下面對他們進(jìn)行具體地解釋

          1.table用于定義一個表格。
          
          2.tr 用于定義表格中的一行,必須嵌套在 table標(biāo)簽中,在 table中包含幾對 tr,就有幾行表格。
          
          3.td /td:用于定義表格中的單元格,必須嵌套在<tr></tr>標(biāo)簽中,一對 <tr> </tr>中包含幾對<td></td>,就表示該行中有多少列(或多少個單元格)。

          注意:

          1. <tr></tr>中只能嵌套<td></td>
          2. <td></td>標(biāo)簽,他就像一個容器,可以容納所有的元素

          表格屬性


          三參為0
          即:border cellpadding cellspacing 為 0

          表頭標(biāo)簽

          表頭單元格一般位于表格的第一行或第一列,其文本加粗居中,如下圖所示,即為設(shè)置了表頭的表格。設(shè)置表頭非常簡單,只需用表頭標(biāo)簽<th></th>替代相應(yīng)的單元格標(biāo)簽<td></td>即可。

          表格結(jié)構(gòu)

          在使用表格進(jìn)行布局時,可以將表格劃分為頭部、主體和頁腳(頁腳因為有兼容性問題,我們不在贅述),具體 如下所示:

          <thead></thead>:用于定義表格的頭部。

          必須位于<table></table> 標(biāo)簽中,一般包含網(wǎng)頁的logo和導(dǎo)航等頭部信息。

          <tbody></tbody>:用于定義表格的主體。

          位于<table></table>標(biāo)簽中,一般包含網(wǎng)頁中除頭部和底部之外的其他內(nèi)容。

          表格標(biāo)題

          表格的標(biāo)題: caption

          定義和用法

          caption 元素定義表格標(biāo)題。

          <table>
             <caption>我是表格標(biāo)題</caption>
          </table>

          caption 標(biāo)簽必須緊隨 table 標(biāo)簽之后。

          只存在 表格里面

          您只能對每個表格定義一個標(biāo)題。通常這個標(biāo)題會被居中于表格之上。

          合并單元格

          跨行合并:rowspan 跨列合并:colspan

          合并單元格的思想:

          ? 將多個內(nèi)容合并的時候,就會有多余的東西,把它刪除。 例如 把 3個 td 合并成一個, 那就多余了2個,需要刪除。

          ? 公式: 刪除的個數(shù)=合并的個數(shù) - 1

          合并的順序 先上 后下 先左 后右

          1. 先確定是跨行還是跨列合并
          2. 根據(jù) 先上 后下 先左 后右的原則找到目標(biāo)單元格
          3. 刪除單元格 刪除的個數(shù)=合并的個數(shù) - 1

          總結(jié)表格

          1. 表格提供了HTML 中定義表格式數(shù)據(jù)的方法。
          2. 表格中由行中的單元格組成。
          3. 表格中沒有列元素,列的個數(shù)取決于行的單元格個數(shù)。
          4. 表格不要糾結(jié)于外觀,那是CSS 的作用。

          表單標(biāo)簽(掌握)

          表單目的是為了收集用戶信息。

          在我們網(wǎng)頁中, 我們也需要跟用戶進(jìn)行交互,收集用戶資料,此時也需要表單。

          在HTML中,一個完整的表單通常由表單控件(也稱為表單元素)、提示信息和表單域3個部分構(gòu)成。

          表單控件:

          ? 包含了具體的表單功能項,如單行文本輸入框、密碼輸入框、復(fù)選框、提交按鈕、重置按鈕等。

          提示信息:

          ? 一個表單中通常還需要包含一些說明性的文字,提示用戶進(jìn)行填寫和操作。

          表單域:

          ? 他相當(dāng)于一個容器,用來容納所有的表單控件和提示信息,可以通過他定義處理表單數(shù)據(jù)所用程序的url地址,以及數(shù)據(jù)提交到服務(wù)器的方法。如果不定義表單域,表單中的數(shù)據(jù)就無法傳送到后臺服務(wù)器。

          input 控件(重點)

          input 輸入的意思

          在上面的語法中,<input />標(biāo)簽為單標(biāo)簽,type屬性為其最基本的屬性 類型 ,其取值有多種,用于指定不同的控件類型。除了type屬性之外,<input />標(biāo)簽還可以定義很多其他的屬性,其常用屬性如下表所示。

          type 說明了屬于那種表單

          radio 如果是一組,我們必須給他們命名相同的名字 name 這樣就可以多個選其中的一個啦

          label標(biāo)簽(理解)

          label 標(biāo)簽為 input 元素定義標(biāo)注(標(biāo)簽)。

          table

          作用: 用于綁定一個表單元素, 當(dāng)點擊label標(biāo)簽的時候, 被綁定的表單元素就會獲得輸入焦點

          如何綁定元素呢?

          for 屬性規(guī)定 label 與哪個表單元素綁定。

          <label for="male">Male</label>
          <input type="radio" name="sex" id="male" value="male">

          textarea控件(文本域)

          text 文本框 只能寫一行文本呢

          textarea 文本域

          如果需要輸入大量的信息,就需要用到<textarea></textarea>標(biāo)簽。通過textarea控件可以輕松地創(chuàng)建多行文本輸入框,其基本語法格式如下:

          <textarea cols="每行中的字符數(shù)" rows="顯示的行數(shù)">
            文本內(nèi)容
          </textarea>

          下拉菜單

          使用select控件定義下拉菜單的基本語法格式如下 select 選擇

          <select>
            <option>選項1</option>
            <option>選項2</option>
            <option>選項3</option>
            ...
          </select>

          注意:

          1. <select></select>中至少應(yīng)包含一對<option></option>。
          2. 在option 中定義selected=" selected "時,當(dāng)前項即為默認(rèn)選中項。

          表單域

          在HTML中,form標(biāo)簽被用于定義表單域,即創(chuàng)建一個表單,以實現(xiàn)用戶信息的收集和傳遞,form中的所有內(nèi)容都會被提交給服務(wù)器。創(chuàng)建表單的基本語法格式如下:

          <form action="url地址" method="提交方式" name="表單名稱">
            各種表單控件
          </form>

          常用屬性:

          1. Action
            在表單收集到信息后,需要將信息傳遞給服務(wù)器進(jìn)行處理,action屬性用于指定接收并處理表單數(shù)據(jù)的服務(wù)器程序的url地址。
          2. method
            用于設(shè)置表單數(shù)據(jù)的提交方式,其取值為get或post。
          3. name
            用于指定表單的名稱,以區(qū)分同一個頁面中的多個表單。

          主站蜘蛛池模板: 国产精品视频一区| 消息称老熟妇乱视频一区二区| 日韩精品一区二区三区国语自制 | 区三区激情福利综合中文字幕在线一区| 国产精品一区二区久久精品无码| 中文字幕一区二区三区精华液 | 久久久人妻精品无码一区| 无码国产精品一区二区免费 | 国产福利日本一区二区三区| 国产精久久一区二区三区| 韩国一区二区三区| 97se色综合一区二区二区| 91久久精品无码一区二区毛片| 精品国产AⅤ一区二区三区4区 | 日韩精品无码免费一区二区三区| 波多野结衣一区二区三区88| 久久精品无码一区二区三区免费| 无码一区二区三区免费| 夜色福利一区二区三区| 精品一区二区三区3d动漫| 国产成人精品一区二区A片带套| 日韩在线一区视频| 无码一区二区三区免费| 中文字幕日韩一区二区不卡| jizz免费一区二区三区| 麻豆一区二区99久久久久| 国产一区二区三区亚洲综合 | 久久精品无码一区二区WWW| 日本一区中文字幕日本一二三区视频| 国产99精品一区二区三区免费 | 色婷婷一区二区三区四区成人网 | 一本大道在线无码一区| 熟妇人妻一区二区三区四区| 亚洲sm另类一区二区三区| 在线精品国产一区二区三区| 国产一区高清视频| 麻豆精品人妻一区二区三区蜜桃| 日本一区二区免费看| 国产精品主播一区二区| 在线免费观看一区二区三区| 日本一区二区在线播放|