前端基礎知識複習之html

還記得統計湖畔的悠哈特濃鹽牛奶糖發表於2018-03-15

概覽

文件章節

  • <body>
  • <header>
  • <nav> 導航
  • <aside> 表示和主要內容不相關的區域
  • <article> 表示一個獨立的、可重複的結構
  • <section> 表示一組內容,相鄰的section之間的內容是有相關性的,相鄰的article標籤之間是獨立的
  • <footer>
  • <hx>

標題

  • h1
  • h2
  • h3
  • h4
  • h5
  • h6

文字

  • <a></a>標籤

    • 建立指向另一個文件的連結;
    • 建立指向另一個文件內部的錨點;
    • 連結到email地址;
     <!--href 屬性,連結地址-->
     <!--target 跳轉方式-->
     <!--_self:當前視窗顯示;-->
     <!--_blank:新開一個視窗顯示;-->
     <!--也可是一個名稱name,在名為name的iframe中開啟連結-->
     <a href="mailto:zhangweihang_amy@qq.com">給阿航發郵件</a>
     <a href="tel:10010">給聯通打電話</a>
         
     <!--?cc抄送-->
     <!--subject 主題-->
    複製程式碼
  • 更多不是特別常用的標籤

    <em></em> <!--表示強調-->
    <strong></strong>  <!--粗體強調-->
    <br>  <!--換行,在內容中換行 -->
    <cite></cite> <!--斜體,用在文章標題處;-->
    <q></q> <!--表示引用,會加引號“”;-->
    <code></code> <!--放程式碼-->
    <b></b> <!--粗體,關鍵詞-->
    <i></i> <!--斜體,關鍵字-->
    複製程式碼

組合內容

  • 分割槽 div:本身沒有任何的語義,主要用來作為分割槽,h5之前沒有header這種語義化的標籤,

  • 段落 p:段落

  • 列表,列表是可以巢狀的

    • ul:無序列表(導航 ,節目列表,使用者列表等都可以用無序列表來表示)
        /*預設的li的樣式會有小圓點,可以用css來控制*/
        .class{
            list-style:none
        }
    複製程式碼
    • ol:有序列表 (排行榜)
        //適合做排行榜等有順序的列表,預設樣式會有序號123
        //序號可以用type屬性改變,start屬性用來改變起始序號;
    複製程式碼
    • dl:自定義列表
        //dt定義了列表項,dd定義了對列表項的描述,
        //每一項的dt只能有一個,對應的dd可以有多個,
        //dd會有一定縮排
    複製程式碼
  • pre: 把code標籤的內容放到pre標籤中,可以保留code內容中的換行

  • blockquote: 大塊的引用

嵌入資源

  • <img>圖片

    • 頁面中嵌入圖片,自閉和標籤
    • src: 圖片路徑
    • alt: 描述圖片的含義(如果網速慢等情況,導致圖片沒有載入出來,或者地址寫錯了導致無法載入圖片,alt的內容就會替代圖片,顯示出來;一般都會要求寫上alt,改善使用者體驗)
  • <iframe></iframe> 嵌入頁面

    • 當前頁面的上下文(css,js)和嵌入頁面中的內容是隔離的,
    • 在嵌入頁面中的操做並不影響當前頁面
    • 比如頁面中的播放器,可以放在iframe中,這樣頁面的操作就不會影響播放器的操作
  • <object></object> 嵌入外部資源(可能是pdf等外掛)

    • 在type屬性中指定外掛型別,外掛的引數可以放在param標籤中
    • 播放器的地址也可以寫在object的data屬性上面,ie8以下不相容data屬性
        <object data="" type="application/x-shockwaveflash">
            <param name="movie" value="http://pdfReader.swf">
            <param name="flashvars" value="http://book.pdf">
        </object>
    複製程式碼
  • <embed></embed> 嵌入外掛

        <embed src="http://pdfReader.swf" type="application/x-shockwaveflash">
    複製程式碼
  • <video></video> 在h5中可以使用video標籤來插入視訊,viedo標籤,只有高版本的瀏覽器才支援

    
        <!--因為不同的瀏覽器對視訊的支援格式不一樣,-->
        <!--所以要準備多個視訊檔案,放在source的標籤中,如果只有一個視訊檔案,可以直接放在video標籤的src裡面-->
        <!--瀏覽器會選擇一個它支援的檔案視訊型別來播放-->
        <video src="" controls="controls" poster="海報地址" autoplay>
            <source src="movie.mp4" type="video/mp4">
            <source src="movie.webm" type="video/webm">
            <source src="movie.ogg" type="video/ogg">
            <track kind="subtitles" src="video.srt" label="English">
            您的瀏覽器不支援video標籤
        </video>
       
        <!--通過controls,顯示控制條-->
        <!--poster用來指定封面,如果沒有指定,則顯示視訊的第一幀;-->
        <!--track屬性用來引入字幕-->
        <!--autoplay屬性用來設定為自動播放-->
        <!--loop屬性,迴圈播放,沒有指定,則播放完畢後顯示視訊的最後一幀-->
    複製程式碼
  • <audio></audio> 和video標籤很類似

  • <canvas> (圖)基於畫素的,有很多圖形函式,可以在js中進行繪製;適合用來處理比較複雜的,實時性比較高的,比如遊戲;

  • <svg> (圖) 是向量的,適合用來處理高保真的、靜態的圖形影象

  • <map> (熱點區域)

  • <area> (熱點區域)

        <!--coords,區域-->
        <!--shape,形狀-->
        <img src="圖片地址" alt="圖片名稱" width="1090" height="995" usemap="#Map2">
        <map name="Map2">
            <area shape="rect" coords="669,75,1075,682" href="xiupin.com/..." target="_blank">
            <area shape="rect" coords="26,93,391,337" href="xiupin.com/..." target="_blank">
        </map>
    複製程式碼

附錄
video檔案相容性 https://en.wikipedia.org/wiki/HTML5_video#Browser_support audio檔案相容性https://en.wikipedia.org/wiki/HTML5_audio#Supported_audio_coding_formats

表格

  • <table></table>
    <table>
        <caption>照片沖印價格詳情</caption>
        <thead>
            <tr>
                <!--表頭單元格用th表示-->
                <th>照片尺寸</th>
                <th>富士</th>
                <th>科達</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th>6寸</th>
                <!--普通單元格用td表示-->
                <td>0.45</td>
                <td>0.6</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <!--跨列用colspan,跨行用rowspan-->
                <td colspan="3">運費8元每單,滿99免運費</td>
            </tr>
        </tfoot>
    </table>
    複製程式碼

表單

  • <form></form>

    <!--action,介面;method,方式-->
    <form action="/login" method="post">
        <!--fieldset表示不同的區域-->
        <fieldset>
            <legend>照片選擇</legend>
            <!--input有兩個重要的屬性,name和value,name是向後臺傳值時的引數名,value是向後臺傳值時的引數值-->
            <input type="file" name="file">
        </fieldset>
    
        <fieldset>
            <legend>填寫資訊</legend>
            <div>
                <!--多選-->
                <!--checked 表示預設選中-->
                <!--同一組單選框或者多選框的name的值是一樣的-->
                <input type="checkbox" value="香蕉" id="banana" checked><label for="banana">香蕉</label>
                <input type="checkbox" value="蘋果" id="apple"><label for="apple">蘋果</label>
            </div>
            <div>
                <!--單選-->
                <input type="radio" value="榨汁" id="1" name="how-to-eat" checked><label for="1">榨汁</label>
                <input type="radio" value="直接吃" id="2" name="how-to-eat"><label for="2">直接吃</label>
                <!--disabled屬性用來禁用某個選項-->
                <input type="radio" value="不吃了" id="3" name="how-to-eat" disabled><label for="2">不吃了</label>
            </div>
            <div>
                <!--文字-->
                <!--label為表單做提示,for對應input、textarea、select的id-->
                <label for="name">姓名</label>
                <!--placeholder佔位符,預設展示的文字-->
                <!--readonly屬性,表示只讀-->
                <!--hidden屬性表示隱藏,頁面上不可見,但是向後臺傳值的時候是傳的-->
                <input type="text" id="name" placeholder="請輸入姓名" readonly>
                <input type="text" id="name2" placeholder="請輸入姓名" readonly hidden>
            </div>
            <div>
                <label for="more-info">備註</label>
                <!--多行文字框用textarea表示-->
                <textarea name="" id="more-info" cols="30" rows="10"></textarea>
            </div>
            <label for="delivery">delivery</label>
            <!--下拉框-->
            <select name="" id="delivery">
                <!--optgroup用來區分選項組-->
                <optgroup label="group1">
                    <option value="0">快遞</option>
                    <option value="1">平郵</option>
                </optgroup>
                <option value="2" selected>EMS</option>
            </select>
        </fieldset>
        <!--<div>-->
        <!--&lt;!&ndash;input也可以用來做按鈕,但是,為了更好地語義化,我們通常使用button&ndash;&gt;-->
        <!--<input type="submit">-->
        <!--<input type="reset">-->
        <!--</div>-->
        <div>
            <button type="submit">提交</button>
            <button type="reset">重置</button>
        </div>
    </form>
    複製程式碼
  • <input/>

        //input的type屬性
        //email
        //url
        //number
        //tel
        //search
        //range 一定範圍內的資料
        //color 顏色的拾色器
        //date-picker (date,month,week,time,datetime,datetime-local)
    複製程式碼

語義化

  • 什麼是語義化呢? 瞭解每一種標籤的用途,用適當的標籤來描述頁面。

  • 語義化的作用:

    1. 便於SEO(Search Engine Optimization)優化, 我們的頁面是給搜尋引擎看的,搜尋引擎的爬蟲呢會根據語義話的標籤來確定關鍵字的權重,這樣子我們的關鍵字能和使用者的關鍵字能更加的匹配;另外,搜尋引擎也會給語義化的頁面一個更高的權重,這樣我們的頁面也會更早出現在使用者的搜尋結果中。

    2.可訪問性 頁面也可能是給殘障人士看的,他們可以通過螢幕閱讀器來訪問頁面,螢幕閱讀器會對不同的標籤發出不同的聲音,使用更語義化的標籤能夠傳達不同資訊的重要性,使他們能夠更好的理解頁面的內容。

    3.可讀性 提高程式碼的可讀性,便於多人的修改維護,提高開發效率。

(ps:主流瀏覽器都相容HTML5的新標籤,對於 IE8 及以下版本不認識 HTML5的新元素,可以使用 JavaScript 建立一個沒用的元素來解決,例如:,也可以使用shiv來解決相容性問題,詳情可參考HTML5 Shiv https://github.com/afarkas/html5shiv)

相關文章