html基本結構和常見元素

html5文檔基本結構

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>文檔標題</title>
</head>
<body>文檔正文部分
</body>
</html>

html文檔可分為文檔頭和文檔體兩部分,文檔頭包括網頁語言、關鍵字、字符集的定義等信息,文檔體當中的內容就是頁面里面要顯示的信息

html文檔的基本結構由三對標簽負責,這三對標簽分別是<html>,<head>,<body>

?title的內容會顯示在導航欄里

標簽分為單標簽與多標簽


元素可分為三類:元信息元素、語義元素和無語義元素——元信息元素用來描述文檔自身信息,meta元素定義元信息,其常用屬性如下:

  • charset:定義文檔的字符編碼,常用UTF-8
  • content:定義name和http-equiv相關的元信息
  • name:關聯content的名稱(常用的有keywords關鍵字、author作者名、description頁面描述)

其中,name的參數格式:

例子:

?<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content="這是一個關于HTML和前端開發的教程頁面。"><meta name="keywords" content="HTML, CSS, JavaScript, 前端開發"><meta name="author" content="Kimi"><meta name="robots" content="index, follow"><title>前端開發教程</title><link rel="stylesheet" href="styles.css">
</head>
<body><h1>歡迎來到前端開發教程</h1><p>這里將介紹HTML、CSS和JavaScript的基礎知識。</p>
</body>
</html>

語義元素又可分為塊級元素、行內(內聯)元素、行內塊元素等等..

塊級元素指的是本身屬性為display:block的元素。通常用于:大結構布局的搭建。
特點:
1.獨占一行
2.可以直接控制相關元素
3.在不設置寬度的情況下,其寬度為其父級寬度
4.在不設置高度的情況下,其高度為其本身的內容高度

行內元素也稱內聯元素,是指本身屬性為display:inline元素行內元素可以與相鄰的行內元素在同一行,對寬、高屬性不生效,通常使用塊級元素來進行文字、小圖標(小結構)的搭建。
1.與其他內聯元素從左到右在同一行顯示
2.無法控制豎直的margin和padding

?3.行內元素的行高,由本身內容(文字、圖片)的大小決定
4.不能在行內嵌套塊級元素

常見的css有:
display:block—塊級元素
display:inline—內聯元素
display:inline-block—內聯塊元素,表現為同行顯示并且可以修改寬、高、內外邊距等屬性

行內塊元素:(就是內聯塊元素)

HTML5新增結構語義元素

HTML5引入了許多新的語義結構元素,這些元素的主要作用是為網頁的結構提供更清晰、更明確的語義化標記。語義化標記不僅有助于開發者更好地理解代碼結構,還能提升網頁的可訪問性、搜索引擎優化(SEO)以及維護性。以下是HTML5新增的一些主要語義結構元素及其用途:
1. <header>
? ?用途:表示頁面或文章的頭部區域,通常包含網站的標志、導航欄、標題等內容。
? ?示例:

<header><h1>網站標題</h1><nav><ul><li><a href="#">首頁</a></li><li><a href="#">關于我們</a></li><li><a href="#">服務</a></li><li><a href="#">聯系我們</a></li></ul></nav>
</header>

? ?優點:明確標識頁面的頭部區域,便于屏幕閱讀器識別,提升可訪問性。
2. <nav>
? ?用途:表示頁面的導航鏈接部分,通常用于網站的菜單欄或導航欄。
? ?示例:

<nav><ul><li><a href="#">首頁</a></li><li><a href="#">產品</a></li><li><a href="#">支持</a></li><li><a href="#">聯系我們</a></li></ul>
</nav>

? ?優點:明確標識導航區域,便于搜索引擎識別導航結構,提升SEO效果。
3. <main>
? ?用途:表示頁面的主要內容區域,一個頁面中只能有一個<main>元素。
? ?示例:

<main><article><h2>文章標題</h2><p>文章內容...</p></article><aside><h3>相關文章</h3><ul><li><a href="#">相關文章1</a></li><li><a href="#">相關文章2</a></li></ul></aside>
</main>

? ?優點:明確標識頁面的核心內容,便于屏幕閱讀器和搜索引擎識別主要內容區域。
4. <article>
? ?用途:表示一個獨立的、可獨立分發的內容單元,如博客文章、新聞報道、論壇帖子等。
? ?示例:

<article><header><h2>文章標題</h2><p>作者:張三</p></header><section><h3>引言</h3><p>文章引言部分...</p></section><section><h3>正文</h3><p>文章正文內容...</p></section>
</article>

? ?優點:明確標識獨立的內容單元,便于內容的復用和分發。
5. <section>
? ?用途:表示文檔中的一個獨立的章節或邏輯部分,通常包含標題。
? ?示例:

<section><h2>章節標題</h2><p>章節內容...</p>
</section>

? ?優點:將內容劃分為邏輯部分,便于結構化閱讀和搜索引擎索引。
6. <aside>
? ?用途:表示與頁面主要內容相關的輔助信息,如側邊欄、廣告、相關鏈接等。
? ?示例:

<aside><h3>廣告</h3><p>廣告內容...</p>
</aside>

? ?優點:明確標識輔助信息,便于區分主要內容和輔助內容。
7. <footer>
? ?用途:表示頁面或文章的底部區域,通常包含版權信息、聯系方式、網站地圖等。
? ?示例:

<footer><p>&copy; 2025 版權所有</p><address><a href="mailto:example@example.com">聯系我們</a></address>
</footer>

? ?優點:明確標識頁面的底部區域,便于屏幕閱讀器識別。
8. <figure> 和 <figcaption>
? ?用途:<figure>用于包含圖像、圖表、代碼片段等獨立內容,<figcaption>用于為<figure>提供標題或說明。
? ?示例:

<figure><img src="image.jpg" alt="圖片描述"><figcaption>圖片標題</figcaption>
</figure>

? ?優點:明確標識圖像和其他媒體內容及其說明,便于語義化標記。
9. <details> 和 <summary>
? ?用途:<details>用于創建可折疊的內容區域,<summary>用于提供折疊區域的標題。
? ?示例:

<details><summary>點擊展開</summary><p>這里是隱藏的內容。</p>
</details>

? ?優點:提供交互式內容區域,增強用戶體驗。
總結
HTML5新增的語義結構元素的主要作用是:
1. ?提高可讀性和可維護性:通過語義化的標記,代碼結構更清晰,便于開發者閱讀和維護。
2. ?提升可訪問性:屏幕閱讀器可以更好地理解頁面結構,幫助視障用戶更好地訪問網頁內容。
3. ?優化搜索引擎排名(SEO):搜索引擎可以更準確地識別頁面的主要內容和結構,從而提高網頁的搜索排名。
4. ?增強用戶體驗:通過語義化的標記,可以更好地利用CSS和JavaScript實現更豐富的交互效果。
總之,語義結構元素是HTML5的重要進步,它們不僅讓代碼更加規范,還為網頁的可訪問性和SEO帶來了顯著的提升。


無語義元素

確實,無語義元素(如<div>和<span>)和語義元素都可以用來包裹內容,從功能上來說,它們都可以實現布局和展示內容的目的。然而,它們之間存在本質的區別,主要體現在語義化和可訪問性上,而不僅僅是功能實現。
1. 功能實現的相似性
從功能上來說,無語義元素和語義元素都可以用來包裹內容,并且可以通過CSS和JavaScript進行樣式和行為的控制。例如:
使用<div>(無語義元素)

<div><h1>標題</h1><p>這是一個段落。</p>
</div>

使用<section>(語義元素)

<section><h1>標題</h1><p>這是一個段落。</p>
</section>

在上面的兩個例子中,<div>和<section>都可以包裹內容,并且可以通過CSS進行樣式控制。從功能上來說,它們確實可以實現相同的效果。
2. 語義化的重要性
盡管功能上相似,但語義元素和無語義元素在語義化和可訪問性上有本質的區別。
(1)語義化
? ?語義元素:語義元素(如<header>、<nav>、<main>、<section>等)自帶語義含義,能夠明確表達其內容的性質和用途。例如:
? ?<header>表示頁面的頭部區域。
? ?<nav>表示導航鏈接部分。
? ?<main>表示頁面的主要內容區域。
? ?<section>表示文檔中的一個獨立章節。
? ?<article>表示一個獨立的內容單元,如博客文章。
? ?<aside>表示與主要內容相關的輔助信息。
? ?<footer>表示頁面的底部區域。
? ?無語義元素:無語義元素(如<div>和<span>)本身沒有語義含義,它們只是通用的容器,用于布局和樣式控制。例如:
? ?<div>是一個塊級容器,用于包裹內容。
? ?<span>是一個行內容器,用于對文本進行樣式控制。
(2)可訪問性
? ?語義元素:語義元素能夠被屏幕閱讀器等輔助工具更好地理解,從而為視障用戶和其他有特殊需求的用戶提供更友好的體驗。例如,屏幕閱讀器可以識別<header>、<nav>、<main>等元素,幫助用戶快速導航到頁面的不同部分。
? ?無語義元素:無語義元素(如<div>和<span>)本身沒有語義含義,屏幕閱讀器無法理解其內容的結構和層次,只能逐個元素讀取內容。這會導致視障用戶難以理解頁面的結構和內容。
3. 搜索引擎優化(SEO)
? ?語義元素:搜索引擎(如Google、Bing等)能夠更好地理解頁面的結構和內容,從而提高頁面的搜索排名。例如,搜索引擎可以識別<header>、<main>、<footer>等元素,從而更準確地提取頁面的主要內容和結構。
? ?無語義元素:搜索引擎無法準確理解頁面的結構和內容,可能導致搜索排名下降。
4. 代碼的可讀性和可維護性
? ?語義元素:使用語義元素的代碼結構更清晰,易于理解。開發者可以快速定位和修改代碼,提高開發效率。例如:

<header><h1>網站標題</h1><nav><ul><li><a href="#">首頁</a></li><li><a href="#">關于我們</a></li><li><a href="#">服務</a></li><li><a href="#">聯系我們</a></li></ul></nav>
</header>
<main><article><header><h2>文章標題</h2><p>作者:張三</p></header><section><h3>引言</h3><p>文章引言部分...</p></section><section><h3>正文</h3><p>文章正文內容...</p></section></article><aside><h3>相關文章</h3><ul><li><a href="#">相關文章1</a></li><li><a href="#">相關文章2</a></li></ul></aside>
</main>
<footer><p>&copy; 2025 版權所有</p><address><a href="mailto:example@example.com">聯系我們</a></address>
</footer>

這種方式更直觀,易于理解和維護。
? ?無語義元素:使用無語義元素的代碼結構較為模糊,需要通過類名或ID來理解代碼的結構和用途。例如:

<div class="header"><h1>網站標題</h1><div class="nav"><ul><li><a href="#">首頁</a></li><li><a href="#">關于我們</a></li><li><a href="#">服務</a></li><li><a href="#">聯系我們</a></li></ul></div>
</div>
<div class="main"><div class="article"><div class="header"><h2>文章標題</h2><p>作者:張三</p></div><div class="section"><h3>引言</h3><p>文章引言部分...</p></div><div class="section"><h3>正文</h3><p>文章正文內容...</p></div></div><div class="aside"><h3>相關文章</h3><ul><li><a href="#">相關文章1</a></li><li><a href="#">相關文章2</a></li></ul></div>
</div>
<div class="footer"><p>&copy; 2025 版權所有</p><div class="address"><a href="mailto:example@example.com">聯系我們</a></div>
</div>

這種方式需要開發者查看類名來理解代碼的結構,增加了理解和維護的難度。
總結
雖然無語義元素和語義元素都可以用來包裹內容并實現布局,但它們在語義化、可訪問性、搜索引擎優化(SEO)以及代碼的可讀性和可維護性上有本質的區別。語義元素通過明確的語義含義,幫助開發者、輔助工具和搜索引擎更好地理解頁面結構和內容,從而實現更高效、更友好的用戶體驗。因此,建議在開發中優先使用語義元素,以提升網頁的整體質量和用戶體驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67948.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67948.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67948.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cursor如何使用Google Gemini以及碰到的坑

Cursor如何使用Google Gemini以及碰到的坑 Cursor介紹下載安裝Google Gemini介紹Google Gemini 官網申請Google Gemini API網址 配置Cursor使用Google Gemini打開Corsur設置 Cursor介紹 ?Cursor是一款基于人工智能的代碼編輯器&#xff0c;旨在幫助開發者更高效地編寫代碼。?…

【云安全】云原生-K8S-簡介

K8S簡介 Kubernetes&#xff08;簡稱K8S&#xff09;是一種開源的容器編排平臺&#xff0c;用于管理容器化應用的部署、擴展和運維。它由Google于2014年開源并交給CNCF&#xff08;Cloud Native Computing Foundation&#xff09;維護。K8S通過提供自動化、靈活的功能&#xf…

【C++】線程池實現

目錄 一、線程池簡介線程池的核心組件實現步驟 二、C11實現線程池源碼 三、線程池源碼解析1. 成員變量2. 構造函數2.1 線程初始化2.2 工作線程邏輯 3. 任務提交(enqueue方法)3.1 方法簽名3.2 任務封裝3.3 任務入隊 4. 析構函數4.1 停機控制 5. 關鍵技術點解析5.1 完美轉發實現5…

深入理解 C# 與.NET 框架

.NET學習資料 .NET學習資料 .NET學習資料 一、引言 在現代軟件開發領域&#xff0c;C# 與.NET 框架是構建 Windows、Web、移動及云應用的強大工具。C# 作為一種面向對象的編程語言&#xff0c;而.NET 框架則是一個綜合性的開發平臺&#xff0c;它們緊密結合&#xff0c;為開…

雷電等基于VirtualBox的Android模擬器映射串口和測試CSerialPort串口功能

雷電等基于VirtualBox的Android模擬器映射串口和測試CSerialPort串口功能 1. 修改VirtualBox配置文件映射串口 模擬器配置文件vms/leidian0/leidian.vbox。 在UART標簽下增加(修改完成后需要將leidian.vbox修改為只讀) <Port slot"1" enabled"true"…

【Linux系統】SIGCHLD 信號(選學了解)

SIGCHLD 信號 使用wait和waitpid函數可以有效地清理僵尸進程。父進程可以選擇阻塞等待&#xff0c;直到子進程結束&#xff1b;或者采用非阻塞的方式&#xff0c;通過輪詢檢查是否有子進程需要被回收。 然而&#xff0c;無論是選擇阻塞等待還是非阻塞的輪詢方式&#xff0c;父…

【R語言】獲取數據

R語言自帶2種數據存儲格式&#xff1a;*.RData和*.rds。 這兩者的區別是&#xff1a;前者既可以存儲數據&#xff0c;也可以存儲當前工作空間中的所有變量&#xff0c;屬于非標準化存儲&#xff1b;后者僅用于存儲單個R對象&#xff0c;且存儲時可以創建標準化檔案&#xff0c…

Vim的基礎命令

移動光標 H(左) J(上) K(下) L(右) $ 表示移動到光標所在行的行尾&#xff0c; ^ 表示移動到光標所在行的行首的第一個非空白字符。 0 表示移動到光標所在行的行首。 W 光標向前跳轉一個單詞 w光標向前跳轉一個單詞 B光標向后跳轉一個單詞 b光標向后跳轉一個單詞 G 移動光標到…

11. 9 構建生產級聊天對話記憶系統:從架構設計到性能優化的全鏈路指南

構建生產級聊天對話記憶系統:從架構設計到性能優化的全鏈路指南 關鍵詞: 聊天對話記憶系統、多用戶會話管理、LangChain生產部署、Redis記憶存儲、高并發對話系統 一、服務級聊天記憶系統核心需求 多用戶隔離:支持同時處理數千個獨立對話持久化存儲:對話歷史不因服務重啟丟…

Block Blaster Online:免費解謎游戲的樂趣

Block Blaster Online 是一款免費的在線解謎游戲&#xff0c;它將挑戰你的思維和反應能力&#xff01;在這里&#xff0c;你可以匹配五彩繽紛的方塊&#xff0c;創造出令人驚嘆的組合&#xff0c;享受無盡的解謎樂趣。無需安裝&#xff0c;點擊即可開始&#xff0c;加入全球數百…

Guided Decoding (借助FSM,有限狀態自動機)

VLLM對結構化輸出的支持&#xff1a; vllm/docs/source/features/structured_outputs.md at main vllm-project/vllm GitHub VLLM對tool call的支持&#xff1a; vllm/docs/source/features/tool_calling.md at main vllm-project/vllm GitHub 以上指定輸出格式&#xf…

IFeatureWorkspace.CreateFeatureClass(),報錯對COM組件的調用返回了錯誤 HRESULT E_FAIL

1、問題描述&#xff1a;在AE開發中&#xff0c;新增一個空的shpfile文件的時候&#xff0c;報錯&#xff0c;如下圖&#xff1a; 2、原因分析&#xff1a;產生此問題的原因是未設置默認字段的默認參數&#xff0c;特別是未設置IGeometryDef 參數。 3、解決方案&#xff1a;在…

算法題(48):反轉鏈表

審題&#xff1a; 需要我們將鏈表反轉并返回頭結點地址 思路&#xff1a; 一般在面試中&#xff0c;涉及鏈表的題會主要考察鏈表的指向改變&#xff0c;所以一般不會允許我們改變節點val值。 這里是單向鏈表&#xff0c;如果要把指向反過來則需要同時知道前中后三個節點&#x…

內存的介紹

1、程序運行為什么需要內存 1.1、計算機程序運行的目的 (1)程序的目的是為了去運行&#xff0c;程序運行是為了得到一定的結果。 (2)計算機程序 代碼 數據。計算機程序運行完得到一個結果&#xff0c;就是說 代碼 數據 (經過運行后) 結果。 (3)從宏觀上來理解&#xff…

【NLP百面百過】大模型算法面試高頻面題(全面整理 ???)

目錄 一、大模型面試指南 重點面題精講 【LLM面題精講 - RAG系統面】 查看答案 【LLM面題精講 - 實體識別面】 查看答案 【LLM面題精講 - 文本分類面】 查看答案 【LLM面題精講 - 分布式訓練面】 查看答案 【LLM面題精講 - 大模型微調面】 查看答案 【LLM面題精講 - 大…

Java 大視界 -- Java 大數據在智能醫療影像診斷中的應用(72)

??親愛的朋友們,熱烈歡迎來到 青云交的博客!能與諸位在此相逢,我倍感榮幸。在這飛速更迭的時代,我們都渴望一方心靈凈土,而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識,也期待你毫無保留地分享獨特見解,愿我們于此攜手成長,共赴新程!?? 一、…

基于 docker 的mysql 5.7 主主集群搭建

創建掛載目錄和配置文件 主節點1 mkdir -p /mysql_master_1/mysql/log mkdir -p /mysql_master_1/mysql/data mkdir -p /mysql_master_1/mysql/conf vim /mysql_master_1/mysql/conf/my.cnf[mysqld] datadir/var/lib/mysql #MySQL 數據庫文件存放路徑 server_id 1 #指定數據…

list容器(詳解)

list的介紹及使用&#xff08;了解&#xff0c;后邊細講&#xff09; 1.1 list的介紹&#xff08;雙向循環鏈表&#xff09; https://cplusplus.com/reference/list/list/?kwlist&#xff08;list文檔介紹&#xff09; 1. list是可以在常數范圍內在任意位置進行插入和刪除的序…

MapReduce分區

目錄 1. MapReduce分區1.1 哈希分區1.2 自定義分區 2. 成績分組2.1 Map2.2 Partition2.3 Reduce 3. 代碼和結果3.1 pom.xml中依賴配置3.2 工具類util3.3 GroupScores3.4 結果 參考 本文引用的Apache Hadoop源代碼基于Apache許可證 2.0&#xff0c;詳情請參閱 Apache許可證2.0。…

kamailio-ACC_JSON模塊詳解【后端語言go】

要確認 ACC_JSON 模塊是否已經成功將計費信息推送到消息隊列&#xff08;MQueue&#xff09;&#xff0c;以及如何從隊列中取值&#xff0c;可以按照以下步驟進行操作&#xff1a; 1. 確認 ACC_JSON 已推送到隊列 1.1 配置 ACC_JSON 確保 ACC_JSON 模塊已正確配置并啟用。以下…