html 基礎知識1. 網頁的組成部分2. html 設計思想3. 基本的 html 頁面3.1 html 結構源碼3.2 源碼逐行分析4. 元素,屬性與值與其它4.1 元素4.2 屬性和值4.2.1 基本語法4.2.2 三大通用屬性5. 層級關係6. 網頁中的文本字符7. 文件與文件夾名稱8. URL8.1 語法8.2 絕對 URL8.3 相對 URL9. html 標籤的語義化的優勢10. html 元素的默認樣式
1. 網頁的組成部分序號內容描述1文本內容用戶看到的網頁文本,例如新聞,電話等2其它文件的引用如圖片,視頻,音頻,CSS 樣式表,JS 腳本等3標記對文本以及引用文件的正確描述每個頁面都是由這三部分組成的, 並且都是採用純文本進行描述
意味著任何能編寫純文本的編輯器都可以用來創建 HTML 頁面
現在主流 HTML 版本是 5.0,後面的教程默認就是 HTML5 版本
2. html 設計思想html 文檔中的一切,都是基於標籤實現的
標籤就類似於超市中玲琅滿目的商品,你能通過一個標籤快速識別並找到它們
頁面中的每一塊內容,如果想識別出來,同樣也需要給他們貼上不同的標籤
html 是超文本標記語言(下表描述並不精準,但力求簡要易記)
術語描述超文本是指包含有超連結的文本標記就是用來描述內容的固定標籤語言html 並不程式語言,只是書寫 html 文檔的工具3. 基本的 html 頁面3.1 html 結構源碼<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HTML5頁面結構</title>
</head>
<body>
<!-- 頁面主體內容 -->
<h2>歡迎您...</h2>
</body>
</html>3.2 源碼逐行分析代碼解析<!DOCTYPE html>通知瀏覽器這是一個 HTML5 文檔,應始終寫在第一行<html>...</html>根標籤,或叫根元素,整個 hmtl 文檔內容都必須寫到這對標籤中<html lang="en">通知搜尋引擎 html 文檔使用的編寫語言,如果是中文建議改成<html lang="zh-CN"><head>...</head>供瀏覽器和搜尋引擎使用,描述字符編碼集,視口與頁面標題,用戶並不感興趣<meta>設置頁面元素數據, 所謂元數據, 就是描述某種特定信息的數據<meta charset="UTF-8">通知瀏覽器 html 文檔編寫語言所屬的字符編碼集,最流行的是UTF-8,已成行業標準<meta name="viewport" content="..." />下面三行是對它的解讀name="viewport"設置視口(即可視區屏幕)如何顯示這個頁面, 例如是否允許縮放這個頁面width=device-width頁面寬度應該與顯示設備的寬度相匹配,類似還有device-height 表示設備的屏幕高度initial-scale=1.0設置頁面初始綻放比例,1.0表示原樣 1:1 顯示,不允許有任何綻放<title>顯示在瀏覽器標籤上的文本, 指定當前頁面的標題, 這個標籤對 SEO 非常重要<body>...</body>頁面主體內容,允許或希望用戶的內容都應該寫到這裡,用戶也只對這裡的內容感興趣<!-- 注釋內容 ->注釋用來描述標籤功能或用途,它的內容不要出現在顯示的網頁中, 只會出現在 html 原始碼中<h2>歡迎您...</h2>瀏覽器渲染這個 html 文檔時,最終只會呈現這個標題內容與效果,並不顯示標籤<h2>編寫 html 文檔的標籤字符不區分大小寫, 但是推薦全部使用小寫字母
4. 元素,屬性與值與其它4.1 元素元素標籤語法描述非空元素雙標籤<p>學習讓我變得更強大</p><起始標籤>元素內容</結束標籤>空元素單標籤<img src="..." alt="">|<link><標籤>空元素也有使用雙標籤描述的,如<script>|<video>|<br>...
4.2 屬性和值4.2.1 基本語法屬性: 必須寫到元素的 "起始標籤" 中,由屬性名和屬性值二部分組成
語法: 屬性名="屬性值",屬性名推薦只使用小寫字母,屬性值推薦加上雙引號
案例: <input type="password" maxlength="20" placeholder="至少8個字符" required>
序號值類型描述1字符串<p>...</p>2預定義值<input type="text">3指定格式<a href="https://php.cn">...</a>4數值<table width="200">...</table>5布爾值<input type="email" required>布爾屬性的值是可選的, 只要元素中出現該屬性,表示它取真值
4.2.2 三大通用屬性序號屬性名描述舉例1id元素的唯一標識<div id="wrap">...</div>2class給元素添加類樣式<div>...</div>3style設置當前元素樣式<div style="...">...</div>這幾個屬性,幾乎可以添加到任何元素上
5. 層級關係<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>元素的標籤,屬性和值,正確的嵌套關係</title>
</head>
<body>
<!-- 元素之間應該保持正確的嵌套 -->
<form action="">
<div>
<label for="email">郵箱:</label>
<!-- 元素值: 預定義值, 指定值, 布爾值,數值 -->
<input type="email" name="email" id="email" maxlength="100" required />
</div>
<div>
<label for="password">密碼:</label>
<input
type="password"
name="password"
id="papassword"
placeholder="至少8位"
required
/>
</div>
<div>
<button>提交</button>
</div>
</form>
</body>
</html>6. 網頁中的文本字符多個空格,制表符,回車符,換行符,都會被壓縮為一個空格
<,>,&等字符具有特殊意義,需要轉義後才允許添加到 html 文檔
轉義字符語法: & + 字符實體名稱 + ;, 如<,使用: <表示
Unicode極大的緩解了特殊字符的問題,推薦將文檔編碼設置為utf-8
只需要在<head> <mata charset="UTF-8"> </head>
常用轉義字符表
序號字符描述轉義字符實體編號1' '空格nbsp; 2<小於<<3>大於>>4&&符號&&5"雙引號""6©版權©©7®已註冊商標®®8×乘號××9÷除號÷÷7. 文件與文件夾名稱8. URL8.1 語法序號名稱描述舉例1模式也稱"協議",瀏覽器如何訪問這個文件http,https,ftp,mailto...2主機名使用"域名"或"IP"表示https://www.php.cn/,或者http://127.0.0.1/3路徑使用一個或多個正斜線分割的字符串public/admin4文件名最後一個路徑後面的,帶有擴展名的文檔ablut.html如果 URL 是以路徑分隔符/結尾, 則啟用默認文件名,如index.html
8.2 絕對 URL序號使用場景舉例1被引用目標與當前位置無關http://php.cn/courses/123.html2引用其它伺服器上的文件https://www.php.net/manual/zh/8.3 相對 URL當有人向你問路時,你肯定不會從國家/省/市/縣/區開始,而是從他當前的位置給你指示
同樣, 相對 URL 是以包含 URL 本身的文件位置為參考點,描述目標文件的位置
序號使用場景舉例1引用同一目錄下文件直接寫文件名,如demo2.html2引用子目錄下文件目標文件前帶上子目錄名,使用目錄分隔符/連接,如chapter2/demo2.html3引用上層目錄的文件文件名前添加二個點,同樣使用目錄分隔符/連接,允許逐級向上查詢,如../../demo2.html4根路徑/為防止過多層級的向上遞歸查詢,可以從當前伺服器根目錄開始查詢,如/admin/books/chapter2/訪問同一個網站的文件,應該始終堅持使用相對 URL 地址
9. html 標籤的語義化的優勢序號優點描述1更直觀對於一篇文章<article>標籤,顯然要比使用<div>2SEO 優化搜尋引擎更加喜歡你的網頁,有利於 SEO, 得升關鍵詞優化與排名3代碼更少提高加載速度,也方便代碼維護與樣式控制4無障礙支持例如視力受損使用的屏幕閱讀器, 語義化就非常重要了10. html 元素的默認樣式為什麼同樣的內容,添加不同的標籤,在瀏覽器中呈現出不同的顯示效果呢?
原因是瀏覽器為這么元素預定了一張樣式表,即每個元素都有默認樣式
不幸的是, 不同瀏覽器廠商之間因為商業利益或競爭關係,這些元素在不同瀏覽器表現並不完全相同
所以,我們需要使用自定義的樣式表,來重置元素的樣式,讓它們在所有瀏覽器中看上去是完全一樣的
用戶自定義的樣式規則, 優先級要高於默認樣式, 這是應該的,也是合理的