HTML基礎

HTML的全程是Hyper Text Markup Language,中文名叫超文本標記語言,是一種用于創(chuàng)建網頁的標準標記語言。HTML不是一種編程語言,而是一種標記語言,用來描述網頁。

一、最基本的HTML文檔

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>First Page</title>
</head>
<body>
    <h1>這是標題</h1>
    <p>這是段落</p>
</body>
</html>

其中

  • <!DOCTYPE html>:聲明該文檔是HTML5文檔,加上這個聲明有助于瀏覽器正確的顯示網頁內容。
  • <html>:HTML文檔的根元素。
  • <head>:包含HTML文檔的頭信息,包括文檔標題和文檔的元數(shù)據(jù)。
  • <title>:文檔標題。
  • <meta>:文檔元數(shù)據(jù),其中的charset="utf-8"屬性表示文檔采用utf-8編碼,如果沒有這個聲明,可能會出現(xiàn)中文亂碼。
  • <body>:可見的頁面內容。
  • <h1>:標題。
  • <p>:段落。

HTML內容

HTML在顯示時瀏覽器會移除多余的的空格和空行,所有的空行和空格都會顯示成一個空格。

HTML標簽

  • HTML標簽不區(qū)分大小寫,但是推薦使用小寫,未來版本中會強制使用小寫。
  • HTML標簽最好全都開始標簽和結束標簽成對出現(xiàn),沒有內容的標簽可以在開始標簽最后添加"/"關閉標簽,表示空標簽。
  • 在開始標簽中設置屬性可以給元素增加附件信息。

HTML屬性

  • 屬性使用鍵值對表示。
  • 其中屬性值始終包含在引號內,一般使用雙引號,也可以使用單引號。
  • 屬性也使用小寫。

二、基本標簽

標題

使用<h1> - <h6>來表示,字體越來越小。

<h1>這是標題</h1>

段落

使用<p>表示。

<p>這是段落</p>

鏈接

使用<a>表示。

<a >這是指向百度的鏈接</a>

在元素中添加標簽ID,可以在href中添加#id來跳轉到頁面特定部分,還可以把文字換成圖片標簽來顯示圖片鏈接。

圖像

使用<img>表示。

<img src="./imges/logo.png" width="255" height="255" />

注釋

<!-- 這是注釋 -->

分割線

<hr>

段落內換行

<br>

格式化文本

可以使用<b><i>設置粗體、斜體等,還有很多別的格式化文本的標簽。

三、常用屬性

幾乎所有HTML標簽都有的屬性:

  • class: 定義元素的一個或多個類名。
  • id:定義元素的唯一ID。
  • style:定義元素的行內樣式。
  • title:定義元素的額外信息(作為工具條使用)。

四、HTML頭部

頭部標簽用<head>括起來,可以包含到這個標簽里的標簽有:<title><style><meta><link><script><noscript><base>。

  • <title>
    定義標題。
  • <base>
    定義本 文檔中所有的鏈接標簽的默認鏈接地址。
  • <link>
    定義本文檔和外部資源的關系,通常用于鏈接到樣式表。
  • <style>
    定義了文檔的樣式文件引用地址,也可以直接添加樣式信息。
  • <meta>
    定義了網頁元數(shù)據(jù),可以包含網頁的描述、關鍵詞、文件的最后修改時間、作者。
  • <script>
    用于加載腳本。

五、HTML樣式

可以通過3種方式把樣式表添加到HTML文檔中:

  • 內聯(lián)樣式:在標簽中使用style屬性。
  • 內部樣式表:在<head>中的<style>中包含樣式信息。
  • 外部引用:使用外部CSS文件。
    最好的方式是通過外部引用CSS文件

六、布局顯示

大多數(shù)HTML的標簽都可以定義為塊級元素和內聯(lián)元素,塊級元素以新行來顯示,內聯(lián)元素不會以新行開始。

表格

表格由<table>定義,每個表格有若干行,由<tr>定義,每行被分割為若干個單元格,由<td>定義,意思是表格數(shù)據(jù),單元格里可以嵌套其他的標簽。另外還可以定義表頭,用<th>表示。
需要注意表格現(xiàn)在一般不用于布局。

列表

列表支持有序列表、無序列表和自定義列表。

  • 有序列表:使用<ol>定義,列表項用<li>定義。
  • 無序列表:使用<ul>定義,列表項用<li>定義。
  • 自定義列表:使用<dl>定義,一個列表使用<dt>定義,列表項用<dd>定義。
    列表項內部可以嵌套各種標簽。

區(qū)塊

區(qū)塊用<div>定義,一般用于其他標簽的容器作文檔布局和對大的內容塊設置樣式屬性。另外還有一個<span>標簽,用于部分文本設置樣式屬性。

七、表單

表單用于收集不同類型的用戶輸入,用<form>來定義,。一般里面都是嵌套輸入標簽<input>,通過不同的類型屬性定義不同輸入類型。輸入類型常用以下幾種:

  • 文本域:type="text",用來輸入文本。
  • 密碼:type="password",用來輸入密碼。
  • 單選按鈕:type="radio",用來定義單選選項。
  • 復選框:type="checkbox",用來定義復選選項。
  • 提交按鈕:type="submit",用來定義提交按鈕。
    另外還可以定義下拉列表、按鈕等。
    表單標簽中還可以定義其他很多和用戶輸入相關的標簽。

八、框架

使用框架,可以在一個瀏覽器窗口中顯示不止一個頁面,例如左邊是目錄,右邊是內容的頁面。
框架是通過<iframe>來定義的。

<iframe src=""></iframe>

可以通過屬性定義框架的尺寸、是否顯示邊框等。

九、顏色

顏色值使用一個十六進制符號定義:#0000ff。另外還有一部分的常用顏色可以使用顏色名來定義:blue。

十、腳本

腳本使用<script>定義,該標簽可以嵌在<head>中或<body>中,腳本代碼就包含在這個標簽中。通過腳本可以和用戶進行交互,對內容進行動態(tài)更新等。

十一、字符實體

如果在文檔內容中包含HTML的保留字符,必須替換為字符實體才能顯示??梢杂米址麑嶓w顯示的還有特殊字符和空格,使用字符實體可以顯示連續(xù)的多個空格。

十二、URL

在網絡上使用統(tǒng)一資源定位符URL來定位萬維網上的文檔,URL的格式如下

scheme://host.domain:port/path/filename
  • scheme:定義因特網服務的類型,最常見的類型是http。
  • host:定義域主機(http的默認主機是www)。
  • domain:定義域名。
  • :port:定義端口號。
  • path:定義服務器上的路徑,相對于網站根目錄。
  • filename:定義文檔或資源名稱。
    URL中只能使用ASCII字符集,如果有非ASCII字符需要轉為URL編碼表示。URL編碼使用“%”后跟兩位十六進制數(shù)來表示。URL中不能包含空格,一般使用+來替換空格。

十三、HTML5

HTML5的設計目的是在移動設備上支持多媒體。HTML5中增加了很多新特性:

  • 增加了一些新元素和新屬性,例如畫布元素、多媒體元素等,也去除了一些原來的標準中不規(guī)范或沒什么用的元素。
  • 支持本地離線存儲。
  • 全面支持CSS3。

1.畫布canvas

<canvas>標簽定義畫布,實際就是一個矩形框,在js中獲取到這個畫布對象進行繪圖。

<canvas id="myCanvas" width="200" height="200"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0, 100, 100);
</script>

2.SVG矢量圖

SVG是一種使用XML描述2d圖形的語言,可以在HTML頁面中直接嵌入SVG數(shù)據(jù)顯示矢量圖。SVG中的每個繪制的圖形都被視為對象,可以使用js操作也可以添加事件處理。適合帶有大型渲染區(qū)域的應用,如谷歌地圖,不適合游戲應用。

<svg xmln="http://www.w3.org/2000/svg" version="1.1" height="190">
    <polygon points="100,10 40,180 190,60 10,60 160,180" />
</svg>

3.MathML

MathML是一種基于XML的用于在web上書寫數(shù)學符號和公式的標記語言,在HTML中可以通<math>標準嵌入在頁面中。

<math xmln="http://www.w3.org/1998/Math/MathML">
    <mrow>
        <msup><mi>a</mi><mn>2</mn></msup>
        <mo>+</mo>
        <msup><mi>b</mi><mn>2</mn></msup>
        <mo>=</mo>
<msup><mi>c</mi><mn>2</mn></msup>
    </mrow>
</math>

4.拖放

在HTML5中,任何元素都可以拖放。

<script>
    function drag(ev)
    {
        ev.dataTransfer.setData("Text", ev.target.id);
    }

    function allowDrop(ev)
    {
        ev.preventDefault();
    }

    function drop(ev)
    {
        ev.preventDefault();
        var data=ev.dataTransfer.getData("Text");
        ev.target.appendChild(document.getElementById(data));
    }
</script>
<img draggable="true" ondragstart="draw(event)">
<div ondrop="drop(event)" ondragover="allowDrop(event)"></div>

5.音頻視頻

音頻使用標簽<audio>,視頻使用標簽<video>。

6.表單

HTML5中新增了很多新的input類型,類型增加了日期、時間、顏色、電子郵件等,提供了更好的輸入控制和驗證。另外還新增了幾種表單標簽:

  • <datalist>:選項列表。
  • <keygen>:密鑰生成器。
  • <output>:輸出。

另外每種標簽增加了很多新的屬性,用于對標簽進行更好的控制。

7.Web存儲

HTML5的Web存儲是一種比cookie更好的本地存儲方式。用于存儲對象的兩上對象是localStorage和sessionStorage:

  • localStorage:用于長久保存一個網站的數(shù)據(jù),沒有過期時間,直到手動刪除。
  • sessionStorage:用于臨時保存同一窗口或標簽頁的數(shù)據(jù),在關閉窗口或標簽頁之后會刪除。

使用之前先檢查瀏覽器是否支持Web存儲:

if (typeof(Storage)!=="undefined")
{
    //支持
}

localStorage

常用的API:

  • localStorage.setItem(key, value):保存數(shù)據(jù)
  • localStorage.getItem(key, value):讀取數(shù)據(jù)
  • localStorage.removeItem(key):刪除單個數(shù)據(jù)
  • localStorage.clear():刪除所有數(shù)據(jù)
  • localStorage.key(index):獲取某個索引的key

一般在使用時的方式:

localStorage.key = value; //保存數(shù)據(jù)
localStorage.key; //讀取數(shù)據(jù)

當然,如果key是一個變量,就只能使用上面展示的API中的方式了。

sessionStorage

API、用法和localStorage是一樣的,只是其數(shù)據(jù)在網頁關閉后會清除。

8.Web SQL

Web SQL并不是HTML5標準的一部分,它是一個獨立的規(guī)范,引入了一組使用SQL操作客戶端數(shù)據(jù)庫的API。這個規(guī)范中有3個核心方法:

  • openDatabase:使用現(xiàn)有的數(shù)據(jù)庫或新建的數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫對象。

  • transaction:控制一個事務,以及基于這種事務的提交或回滾。

  • executeSql:執(zhí)行實際的SQL語句。

    var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024)

參數(shù)分別是數(shù)據(jù)庫名稱、版本號、描述文本、數(shù)據(jù)庫大小,回調,最后一個參數(shù)可有可無。

db.transaction(function (tx){
    tx.executeSql('Sql語句');
});

executeSql中還可以增加其他參數(shù)來對結果進行控制。

9.應用程序緩存

HTML5引入了應用程序緩存,這樣Web應用可進行緩存,緩存了之后不聯(lián)網也可以使用。

10.Web Worker

Web worker是運行在后臺的JavaScript,不會影響頁面的性能。

11.服務器發(fā)送事件Server-Sent Events

通過SSE可以讓網頁自動獲取來自服務器的更新,這除了在頁面中添加對應的處理,在服務器端也要支持發(fā)送事件。服務器的新消息就是通過這種方式發(fā)送的?

12.WebSocket

WebSocket是HTML5開始提供的一種在單個TCP連接上進行全雙工通訊的協(xié)議。在WebSocket API中,瀏覽器和服務器只需要做一個握手的動作,瀏覽器和服務器之間就形成了一條快速通道,兩者之間就可以進行數(shù)據(jù)交換了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • HTML基礎 本文包括 HTML基本知識與結構 HTML常見標簽 標簽寫法與嵌套的討論 HTML、CSS、java...
    廖少少閱讀 2,209評論 2 21
  • html簡介: HTML學習總結慕課網 一、html介紹 (一)html和Css的關系 HTML是網頁內容的載體。...
    數(shù)獨題閱讀 736評論 0 1
  • 瀏覽器請求數(shù)據(jù)過程 1.URL http://127.0.0.1/index.html(瀏覽器會自動添加80) h...
    菜鳥白澤閱讀 785評論 0 0
  • 原 Blog 鏈接:HTML基礎學習筆記 自學 html 基礎筆記 Web 前端簡單介紹 web 前端包含: pc...
    任凱閱讀 1,485評論 0 5
  • 1.在聊天頁面里,我們可以看到雙方的頁面工具欄是不一樣的。TIM刪除了QQ空間、動態(tài)、游戲等和辦公無關的功能,提供...
    Wtow_bc69閱讀 650評論 0 0

友情鏈接更多精彩內容