CINXE.COM

HTML 文本处理基础 - 学习 Web 开发 | MDN

<!doctype html><html lang="en-US" prefix="og: https://ogp.me/ns#"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="icon" href="https://developer.mozilla.org/favicon-48x48.bc390275e955dacb2e65.png"/><link rel="apple-touch-icon" href="https://developer.mozilla.org/apple-touch-icon.528534bba673c38049c2.png"/><meta name="theme-color" content="#ffffff"/><link rel="manifest" href="https://developer.mozilla.org/manifest.f42880861b394dd4dc9b.json"/><link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="MDN Web Docs"/><title>HTML 文本处理基础 - 学习 Web 开发 | MDN</title><link rel="alternate" title="Grundlagen des HTML-Textes" href="https://developer.mozilla.org/de/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="de"/><link rel="alternate" title="HTML text fundamentals" href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="en"/><link rel="alternate" title="Fundamentos de texto en HTML" href="https://developer.mozilla.org/es/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="es"/><link rel="alternate" title="Fondamentaux du texte HTML" href="https://developer.mozilla.org/fr/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="fr"/><link rel="alternate" title="HTML テキストの基礎" href="https://developer.mozilla.org/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="ja"/><link rel="alternate" title="HTML text fundamentals" href="https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="ko"/><link rel="alternate" title="Fundamentos do texto em HTML" href="https://developer.mozilla.org/pt-BR/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="pt"/><link rel="alternate" title="Основы редактирования текста в HTML" href="https://developer.mozilla.org/ru/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="ru"/><link rel="alternate" title="基本 HTML 文字" href="https://developer.mozilla.org/zh-TW/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="zh-Hant"/><link rel="alternate" title="HTML 文本处理基础" href="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" hrefLang="zh"/><link rel="preload" as="font" type="font/woff2" href="/static/media/Inter.var.c2fe3cb2b7c746f7966a.woff2" crossorigin=""/><link rel="alternate" type="application/rss+xml" title="MDN Blog RSS Feed" href="https://developer.mozilla.org/en-US/blog/rss.xml" hrefLang="en"/><meta name="description" content="HTML 的主要工作之一是赋予文本结构,使浏览器能够按照开发者的意图显示 HTML 文档。本文解释了 HTML 如何通过添加标题和段落、强调单词、创建列表等方式来构造文本。"/><meta property="og:url" content="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals"/><meta property="og:title" content="HTML 文本处理基础 - 学习 Web 开发 | MDN"/><meta property="og:type" content="website"/><meta property="og:locale" content="zh_CN"/><meta property="og:description" content="HTML 的主要工作之一是赋予文本结构,使浏览器能够按照开发者的意图显示 HTML 文档。本文解释了 HTML 如何通过添加标题和段落、强调单词、创建列表等方式来构造文本。"/><meta property="og:image" content="https://developer.mozilla.org/mdn-social-share.d893525a4fb5fb1f67a2.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:height" content="1080"/><meta property="og:image:width" content="1920"/><meta property="og:image:alt" content="The MDN Web Docs logo, featuring a blue accent color, displayed on a solid black background."/><meta property="og:site_name" content="MDN Web Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="MozDevNet"/><link rel="canonical" href="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals"/><style media="print">.article-actions-container,.document-toc-container,.language-menu,.main-menu-toggle,.on-github,.page-footer,.place,.sidebar,.top-banner,.top-navigation-main,ul.prev-next{display:none!important}.main-page-content,.main-page-content pre{padding:2px}.main-page-content pre{border-left-width:2px}</style><script src="/static/js/gtag.js" defer=""></script><script defer="" src="/static/js/main.1b60bff1.js"></script><link href="/static/css/main.959b5ea9.css" rel="stylesheet"/></head><body><script>if(document.body.addEventListener("load",(t=>{t.target.classList.contains("interactive")&&t.target.setAttribute("data-readystate","complete")}),{capture:!0}),window&&document.documentElement){const t={light:"#ffffff",dark:"#1b1b1b"};try{const e=window.localStorage.getItem("theme");e&&(document.documentElement.className=e,document.documentElement.style.backgroundColor=t[e]);const o=window.localStorage.getItem("nop");o&&(document.documentElement.dataset.nop=o)}catch(t){console.warn("Unable to read theme from localStorage",t)}}</script><div id="root"><ul id="nav-access" class="a11y-nav"><li><a id="skip-main" href="#content">Skip to main content</a></li><li><a id="skip-search" href="#top-nav-search-input">Skip to search</a></li><li><a id="skip-select-language" href="#languages-switcher-button">Skip to select language</a></li></ul><div class="page-wrapper category-html document-page"><div class="top-banner loading"><section class="place top container"></section></div><div class="sticky-header-container"><header class="top-navigation "><div class="container "><div class="top-navigation-wrap"><a href="/zh-CN/" class="logo" aria-label="MDN homepage"><svg id="mdn-docs-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 694.9 104.4" style="enable-background:new 0 0 694.9 104.4" xml:space="preserve" role="img"><title>MDN Web Docs</title><path d="M40.3 0 11.7 92.1H0L28.5 0h11.8zm10.4 0v92.1H40.3V0h10.4zM91 0 62.5 92.1H50.8L79.3 0H91zm10.4 0v92.1H91V0h10.4z" class="logo-m"></path><path d="M627.9 95.6h67v8.8h-67v-8.8z" class="logo-_"></path><path d="M367 42h-4l-10.7 30.8h-5.5l-10.8-26h-.4l-10.5 26h-5.2L308.7 42h-3.8v-5.6H323V42h-6.5l6.8 20.4h.4l10.3-26h4.7l11.2 26h.5l5.7-20.3h-6.2v-5.6H367V42zm34.9 20c-.4 3.2-2 5.9-4.7 8.2-2.8 2.3-6.5 3.4-11.3 3.4-5.4 0-9.7-1.6-13.1-4.7-3.3-3.2-5-7.7-5-13.7 0-5.7 1.6-10.3 4.7-14s7.4-5.5 12.9-5.5c5.1 0 9.1 1.6 11.9 4.7s4.3 6.9 4.3 11.3c0 1.5-.2 3-.5 4.7h-25.6c.3 7.7 4 11.6 10.9 11.6 2.9 0 5.1-.7 6.5-2 1.5-1.4 2.5-3 3-4.9l6 .9zM394 51.3c.2-2.4-.4-4.7-1.8-6.9s-3.8-3.3-7-3.3c-3.1 0-5.3 1-6.9 3-1.5 2-2.5 4.4-2.8 7.2H394zm51 2.4c0 5-1.3 9.5-4 13.7s-6.9 6.2-12.7 6.2c-6 0-10.3-2.2-12.7-6.7-.1.4-.2 1.4-.4 2.9s-.3 2.5-.4 2.9h-7.3c.3-1.7.6-3.5.8-5.3.3-1.8.4-3.7.4-5.5V22.3h-6v-5.6H416v27c1.1-2.2 2.7-4.1 4.7-5.7 2-1.6 4.8-2.4 8.4-2.4 4.6 0 8.4 1.6 11.4 4.7 3 3.2 4.5 7.6 4.5 13.4zm-7.7.6c0-4.2-1-7.4-3-9.5-2-2.2-4.4-3.3-7.4-3.3-3.4 0-6 1.2-8 3.7-1.9 2.4-2.9 5-3 7.7V57c0 3 1 5.6 3 7.7s4.5 3.1 7.6 3.1c3.6 0 6.3-1.3 8.1-3.9 1.8-2.7 2.7-5.9 2.7-9.6zm69.2 18.5h-13.2v-7.2c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2 5.7 0 9.8 2.2 12.3 6.5V22.3h-8.6v-5.6h15.8v50.6h6v5.5zM493.2 56v-4.4c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm53.1-1.4c0 5.6-1.8 10.2-5.3 13.7s-8.2 5.3-13.9 5.3-10.1-1.7-13.4-5.1c-3.3-3.4-5-7.9-5-13.5 0-5.3 1.6-9.9 4.7-13.7 3.2-3.8 7.9-5.7 14.2-5.7s11 1.9 14.1 5.7c3 3.7 4.6 8.1 4.6 13.3zm-7.7-.2c0-4-1-7.2-3-9.5s-4.8-3.5-8.2-3.5c-3.6 0-6.4 1.2-8.3 3.7s-2.9 5.6-2.9 9.5c0 3.7.9 6.8 2.8 9.4 1.9 2.6 4.6 3.9 8.3 3.9 3.6 0 6.4-1.3 8.4-3.8 1.9-2.6 2.9-5.8 2.9-9.7zm45 5.8c-.4 3.2-1.9 6.3-4.4 9.1-2.5 2.9-6.4 4.3-11.8 4.3-5.2 0-9.4-1.6-12.6-4.8-3.2-3.2-4.8-7.7-4.8-13.7 0-5.5 1.6-10.1 4.7-13.9 3.2-3.8 7.6-5.7 13.2-5.7 2.3 0 4.6.3 6.7.8 2.2.5 4.2 1.5 6.2 2.9l1.5 9.5-5.9.7-1.3-6.1c-2.1-1.2-4.5-1.8-7.2-1.8-3.5 0-6.1 1.2-7.7 3.7-1.7 2.5-2.5 5.7-2.5 9.6 0 4.1.9 7.3 2.7 9.5 1.8 2.3 4.4 3.4 7.8 3.4 5.2 0 8.2-2.9 9.2-8.8l6.2 1.3zm34.7 1.9c0 3.6-1.5 6.5-4.6 8.5s-7 3-11.7 3c-5.7 0-10.6-1.2-14.6-3.6l1.2-8.8 5.7.6-.2 4.7c1.1.5 2.3.9 3.6 1.1s2.6.3 3.9.3c2.4 0 4.5-.4 6.5-1.3 1.9-.9 2.9-2.2 2.9-4.1 0-1.8-.8-3.1-2.3-3.8s-3.5-1.3-5.8-1.7-4.6-.9-6.9-1.4c-2.3-.6-4.2-1.6-5.7-2.9-1.6-1.4-2.3-3.5-2.3-6.3 0-4.1 1.5-6.9 4.6-8.5s6.4-2.4 9.9-2.4c2.6 0 5 .3 7.2.9 2.2.6 4.3 1.4 6.1 2.4l.8 8.8-5.8.7-.8-5.7c-2.3-1-4.7-1.6-7.2-1.6-2.1 0-3.7.4-5.1 1.1-1.3.8-2 2-2 3.8 0 1.7.8 2.9 2.3 3.6 1.5.7 3.4 1.2 5.7 1.6 2.2.4 4.5.8 6.7 1.4 2.2.6 4.1 1.6 5.7 3 1.4 1.6 2.2 3.7 2.2 6.6zM197.6 73.2h-17.1v-5.5h3.8V51.9c0-3.7-.7-6.3-2.1-7.9-1.4-1.6-3.3-2.3-5.7-2.3-3.2 0-5.6 1.1-7.2 3.4s-2.4 4.6-2.5 6.9v15.6h6v5.5h-17.1v-5.5h3.8V51.9c0-3.8-.7-6.4-2.1-7.9-1.4-1.5-3.3-2.3-5.6-2.3-3.2 0-5.5 1.1-7.2 3.3-1.6 2.2-2.4 4.5-2.5 6.9v15.8h6.9v5.5h-20.2v-5.5h6V42.4h-6.1v-5.6h13.4v6.4c1.2-2.1 2.7-3.8 4.7-5.2 2-1.3 4.4-2 7.3-2s5.3.7 7.5 2.1c2.2 1.4 3.7 3.5 4.5 6.4 1.1-2.5 2.7-4.5 4.9-6.1s4.8-2.4 7.9-2.4c3.5 0 6.5 1.1 8.9 3.3s3.7 5.6 3.7 10.2v18.2h6.1v5.5zm42.5 0h-13.2V66c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2s9.8 2.2 12.3 6.5V22.7h-8.6v-5.6h15.8v50.6h6v5.5zm-13.3-16.8V52c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm61.5 16.8H269v-5.5h6V51.9c0-3.7-.7-6.3-2.2-7.9-1.4-1.6-3.4-2.3-5.7-2.3-3.1 0-5.6 1-7.4 3s-2.8 4.4-2.9 7v15.9h6v5.5h-19.3v-5.5h6V42.4h-6.2v-5.6h13.6V43c2.6-4.6 6.8-6.9 12.7-6.9 3.6 0 6.7 1.1 9.2 3.3s3.7 5.6 3.7 10.2v18.2h6v5.4h-.2z" class="logo-text"></path></svg></a><button title="Open main menu" type="button" class="button action has-icon main-menu-toggle" aria-haspopup="menu" aria-label="Open main menu" aria-expanded="false"><span class="button-wrap"><span class="icon icon-menu "></span><span class="visually-hidden">Open main menu</span></span></button></div><div class="top-navigation-main"><nav class="main-nav" aria-label="Main menu"><ul class="main-menu nojs"><li class="top-level-entry-container "><button type="button" id="references-button" class="top-level-entry menu-toggle" aria-controls="references-menu" aria-expanded="false">References</button><a href="/zh-CN/docs/Web" class="top-level-entry">References</a><ul id="references-menu" class="submenu references hidden inline-submenu-lg" aria-labelledby="references-button"><li class="apis-link-container mobile-only "><a href="/zh-CN/docs/Web" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview / Web Technology</div><p class="submenu-item-description">Web technology reference for developers</p></div></a></li><li class="html-link-container "><a href="/zh-CN/docs/Web/HTML" class="submenu-item "><div class="submenu-icon html"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTML</div><p class="submenu-item-description">Structure of content on the web</p></div></a></li><li class="css-link-container "><a href="/zh-CN/docs/Web/CSS" class="submenu-item "><div class="submenu-icon css"></div><div class="submenu-content-container"><div class="submenu-item-heading">CSS</div><p class="submenu-item-description">Code used to describe document style</p></div></a></li><li class="javascript-link-container "><a href="/zh-CN/docs/Web/JavaScript" class="submenu-item "><div class="submenu-icon javascript"></div><div class="submenu-content-container"><div class="submenu-item-heading">JavaScript</div><p class="submenu-item-description">General-purpose scripting language</p></div></a></li><li class="http-link-container "><a href="/zh-CN/docs/Web/HTTP" class="submenu-item "><div class="submenu-icon http"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTTP</div><p class="submenu-item-description">Protocol for transmitting web resources</p></div></a></li><li class="apis-link-container "><a href="/zh-CN/docs/Web/API" class="submenu-item "><div class="submenu-icon apis"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web APIs</div><p class="submenu-item-description">Interfaces for building web applications</p></div></a></li><li class="apis-link-container "><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web Extensions</div><p class="submenu-item-description">Developing extensions for web browsers</p></div></a></li><li class="apis-link-container desktop-only "><a href="/zh-CN/docs/Web" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web Technology</div><p class="submenu-item-description">Web technology reference for developers</p></div></a></li></ul></li><li class="top-level-entry-container active"><button type="button" id="guides-button" class="top-level-entry menu-toggle" aria-controls="guides-menu" aria-expanded="false">Guides</button><a href="/zh-CN/docs/Learn" class="top-level-entry">Guides</a><ul id="guides-menu" class="submenu guides hidden inline-submenu-lg" aria-labelledby="guides-button"><li class="apis-link-container mobile-only "><a href="/zh-CN/docs/Learn" class="submenu-item "><div class="submenu-icon learn"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview / MDN Learning Area</div><p class="submenu-item-description">Learn web development</p></div></a></li><li class="apis-link-container desktop-only "><a href="/zh-CN/docs/Learn" class="submenu-item "><div class="submenu-icon learn"></div><div class="submenu-content-container"><div class="submenu-item-heading">MDN Learning Area</div><p class="submenu-item-description">Learn web development</p></div></a></li><li class="html-link-container "><a href="/zh-CN/docs/Learn/HTML" class="submenu-item "><div class="submenu-icon html"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTML</div><p class="submenu-item-description">Learn to structure web content with HTML</p></div></a></li><li class="css-link-container "><a href="/zh-CN/docs/Learn/CSS" class="submenu-item "><div class="submenu-icon css"></div><div class="submenu-content-container"><div class="submenu-item-heading">CSS</div><p class="submenu-item-description">Learn to style content using CSS</p></div></a></li><li class="javascript-link-container "><a href="/zh-CN/docs/Learn/JavaScript" class="submenu-item "><div class="submenu-icon javascript"></div><div class="submenu-content-container"><div class="submenu-item-heading">JavaScript</div><p class="submenu-item-description">Learn to run scripts in the browser</p></div></a></li><li class=" "><a href="/zh-CN/docs/Web/Accessibility" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Accessibility</div><p class="submenu-item-description">Learn to make the web accessible to all</p></div></a></li></ul></li><li class="top-level-entry-container "><button type="button" id="mdn-plus-button" class="top-level-entry menu-toggle" aria-controls="mdn-plus-menu" aria-expanded="false">Plus</button><a href="/zh-CN/plus" class="top-level-entry">Plus</a><ul id="mdn-plus-menu" class="submenu mdn-plus hidden inline-submenu-lg" aria-labelledby="mdn-plus-button"><li class=" "><a href="/zh-CN/plus" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview</div><p class="submenu-item-description">A customized MDN experience</p></div></a></li><li class=" "><a href="/zh-CN/plus/ai-help" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">AI Help</div><p class="submenu-item-description">Get real-time assistance and support</p></div></a></li><li class=" "><a href="/zh-CN/plus/updates" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Updates</div><p class="submenu-item-description">All browser compatibility updates at a glance</p></div></a></li><li class=" "><a href="/en-US/plus/docs/features/overview" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Documentation</div><p class="submenu-item-description">Learn how to use MDN Plus</p></div></a></li><li class=" "><a href="/en-US/plus/docs/faq" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">FAQ</div><p class="submenu-item-description">Frequently asked questions about MDN Plus</p></div></a></li></ul></li><li class="top-level-entry-container "><a class="top-level-entry menu-link" href="/en-US/curriculum/">Curriculum <sup class="new">New</sup></a></li><li class="top-level-entry-container "><a class="top-level-entry menu-link" href="/en-US/blog/">Blog</a></li><li class="top-level-entry-container "><button type="button" id="tools-button" class="top-level-entry menu-toggle" aria-controls="tools-menu" aria-expanded="false">Tools</button><ul id="tools-menu" class="submenu tools hidden inline-submenu-lg" aria-labelledby="tools-button"><li class=" "><a href="/zh-CN/play" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Playground</div><p class="submenu-item-description">Write, test and share your code</p></div></a></li><li class=" "><a href="/en-US/observatory" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTTP Observatory</div><p class="submenu-item-description">Scan a website for free</p></div></a></li><li class=" "><a href="/en-US/plus/ai-help" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">AI Help</div><p class="submenu-item-description">Get real-time assistance and support</p></div></a></li></ul></li></ul></nav><div class="header-search"><form action="/zh-CN/search" class="search-form search-widget" id="top-nav-search-form" role="search"><label id="top-nav-search-label" for="top-nav-search-input" class="visually-hidden">Search MDN</label><input aria-activedescendant="" aria-autocomplete="list" aria-controls="top-nav-search-menu" aria-expanded="false" aria-labelledby="top-nav-search-label" autoComplete="off" id="top-nav-search-input" role="combobox" type="search" class="search-input-field" name="q" placeholder="   " required="" value=""/><button type="button" class="button action has-icon clear-search-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear search input</span></span></button><button type="submit" class="button action has-icon search-button"><span class="button-wrap"><span class="icon icon-search "></span><span class="visually-hidden">Search</span></span></button><div id="top-nav-search-menu" role="listbox" aria-labelledby="top-nav-search-label"></div></form></div><div class="theme-switcher-menu"><button type="button" class="button action has-icon theme-switcher-menu small" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-theme-os-default "></span>Theme</span></button></div><ul class="auth-container"><li><a href="/users/fxa/login/authenticate/?next=%2Fzh-CN%2Fdocs%2FLearn%2FHTML%2FIntroduction_to_HTML%2FHTML_text_fundamentals" class="login-link" rel="nofollow">Log in</a></li><li><a href="/users/fxa/login/authenticate/?next=%2Fzh-CN%2Fdocs%2FLearn%2FHTML%2FIntroduction_to_HTML%2FHTML_text_fundamentals" target="_self" rel="nofollow" class="button primary mdn-plus-subscribe-link"><span class="button-wrap">Sign up for free</span></a></li></ul></div></div></header><div class="article-actions-container"><div class="container"><button type="button" class="button action has-icon sidebar-button" aria-label="Expand sidebar" aria-expanded="false" aria-controls="sidebar-quicklinks"><span class="button-wrap"><span class="icon icon-sidebar "></span></span></button><nav class="breadcrumbs-container" aria-label="Breadcrumb"><ol typeof="BreadcrumbList" vocab="https://schema.org/" aria-label="breadcrumbs"><li property="itemListElement" typeof="ListItem"><a href="/zh-CN/docs/Learn" class="breadcrumb" property="item" typeof="WebPage"><span property="name">学习 Web 开发</span></a><meta property="position" content="1"/></li><li property="itemListElement" typeof="ListItem"><a href="/zh-CN/docs/Learn/HTML" class="breadcrumb" property="item" typeof="WebPage"><span property="name">使用 HTML 构建 Web</span></a><meta property="position" content="2"/></li><li property="itemListElement" typeof="ListItem"><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML" class="breadcrumb" property="item" typeof="WebPage"><span property="name">HTML 简介</span></a><meta property="position" content="3"/></li><li property="itemListElement" typeof="ListItem"><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="breadcrumb-current-page" property="item" typeof="WebPage"><span property="name">HTML 文本处理基础</span></a><meta property="position" content="4"/></li></ol></nav><div class="article-actions"><button type="button" class="button action has-icon article-actions-toggle" aria-label="Article actions"><span class="button-wrap"><span class="icon icon-ellipses "></span><span class="article-actions-dialog-heading">Article Actions</span></span></button><ul class="article-actions-entries"><li class="article-actions-entry"><div class="languages-switcher-menu open-on-focus-within"><button id="languages-switcher-button" type="button" class="button action small has-icon languages-switcher-menu" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-language "></span>中文 (简体)</span></button><div class="hidden"><ul class="submenu language-menu " aria-labelledby="language-menu-button"><li class=" "><form class="submenu-item locale-redirect-setting"><div class="group"><label class="switch"><input type="checkbox" name="locale-redirect"/><span class="slider"></span><span class="label">Remember language</span></label><a href="https://github.com/orgs/mdn/discussions/739" rel="external noopener noreferrer" target="_blank" title="Enable this setting to automatically switch to this language when it&#x27;s available. (Click to learn more.)"><span class="icon icon-question-mark "></span></a></div></form></li><li class=" "><a data-locale="de" href="/de/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>Deutsch</span><span title="Diese Übersetzung ist Teil eines Experiments."><span class="icon icon-experimental "></span></span></a></li><li class=" "><a data-locale="en-US" href="/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>English (US)</span></a></li><li class=" "><a data-locale="es" href="/es/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>Español</span></a></li><li class=" "><a data-locale="fr" href="/fr/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>Français</span></a></li><li class=" "><a data-locale="ja" href="/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>日本語</span></a></li><li class=" "><a data-locale="ko" href="/ko/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>한국어</span></a></li><li class=" "><a data-locale="pt-BR" href="/pt-BR/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>Português (do Brasil)</span></a></li><li class=" "><a data-locale="ru" href="/ru/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>Русский</span></a></li><li class=" "><a data-locale="zh-TW" href="/zh-TW/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" class="button submenu-item"><span>正體中文 (繁體)</span></a></li></ul></div></div></li></ul></div></div></div></div><div class="container"><div class="notecard localized-content-note"><p><a href="/zh-CN/docs/MDN/Community/Contributing/Translated_content#活跃语言">此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。</a></p></div></div><div class="main-wrapper"><div class="sidebar-container"><aside id="sidebar-quicklinks" class="sidebar" data-macro="LearnSidebar"><button type="button" class="button action backdrop" aria-label="Collapse sidebar"><span class="button-wrap"></span></button><nav aria-label="Related Topics" class="sidebar-inner"><header class="sidebar-actions"><section class="sidebar-filter-container"><div class="sidebar-filter "><label id="sidebar-filter-label" class="sidebar-filter-label" for="sidebar-filter-input"><span class="icon icon-filter"></span><span class="visually-hidden">Filter sidebar</span></label><input id="sidebar-filter-input" autoComplete="off" class="sidebar-filter-input-field false" type="text" placeholder="Filter" value=""/><button type="button" class="button action has-icon clear-sidebar-filter-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear filter input</span></span></button></div></section></header><div class="sidebar-inner-nav"><div class="in-nav-toc"><div class="document-toc-container"><section class="document-toc"><header><h2 class="document-toc-heading">在本文中</h2></header><ul class="document-toc-list"><li class="document-toc-item "><a class="document-toc-link" href="#基础:标题和段落">基础:标题和段落</a></li><li class="document-toc-item "><a class="document-toc-link" href="#列表">列表</a></li><li class="document-toc-item "><a class="document-toc-link" href="#重点强调">重点强调</a></li><li class="document-toc-item "><a class="document-toc-link" href="#技能测试!">技能测试!</a></li><li class="document-toc-item "><a class="document-toc-link" href="#总结">总结</a></li></ul></section></div></div><div class="sidebar-body"><ol><li class="section"><a href="/zh-CN/docs/Learn/Getting_started_with_the_web">新手请从这开始!</a></li><li><details><summary>Web 入门</summary><ol><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web">Web 入门</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/Installing_basic_software">安装基础软件</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like">你的网站会是什么样子?</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/Dealing_with_files">处理文件</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/HTML_basics">HTML 基础</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/CSS_basics">CSS 基础</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics">JavaScript 基础</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/Publishing_your_website">发布你的网站</a></li><li><a href="/zh-CN/docs/Learn/Getting_started_with_the_web/How_the_Web_works">万维网是如何工作的</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/HTML">HTML——构建 Web</a></li><li><details open=""><summary>HTML 介绍</summary><ol><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML">HTML 简介</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Getting_started">开始学习 HTML</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">“头”里有什么——HTML 元信息</a></li><li><em><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" aria-current="page">HTML 文本处理基础</a></em></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">创建超链接</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">文本格式进阶</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure">文档与网站架构</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML">HTML 调试</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">标记信件</a></li><li><a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">构建网页内容</a></li></ol></details></li><li><details><summary>多媒体与嵌入</summary><ol><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding">多媒体与嵌入</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">HTML 中的图片</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">视频和音频内容</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies">从 object 到 iframe——其他嵌入技术</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web">向 web 中添加矢量图形</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images">响应式图片</a></li><li><a href="/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page">Mozilla 欢迎页面</a></li></ol></details></li><li><details><summary>HTML 表格</summary><ol><li><a href="/zh-CN/docs/Learn/HTML/Tables">HTML 表格</a></li><li><a href="/zh-CN/docs/Learn/HTML/Tables/Basics">HTML 表格基础</a></li><li><a href="/zh-CN/docs/Learn/HTML/Tables/Advanced">HTML 表格进阶特性和无障碍</a></li><li><a href="/zh-CN/docs/Learn/HTML/Tables/Structuring_planet_data">作业:构建行星数据</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/CSS">CSS——设计 Web</a></li><li><details><summary>CSS 第一步</summary><ol><li><a href="/zh-CN/docs/Learn/CSS/First_steps">CSS 入门概述</a></li><li><a href="/zh-CN/docs/Learn/CSS/First_steps/What_is_CSS">什么是 CSS?</a></li><li><a href="/zh-CN/docs/Learn/CSS/First_steps/Getting_started">让我们开始 CSS 的学习之旅</a></li><li><a href="/zh-CN/docs/Learn/CSS/First_steps/How_CSS_is_structured">CSS 的组成</a></li><li><a href="/zh-CN/docs/Learn/CSS/First_steps/How_CSS_works">CSS 如何运行</a></li><li><a href="/zh-CN/docs/Learn/CSS/First_steps/Styling_a_biography_page">运用你的新知识</a></li></ol></details></li><li><details><summary>CSS 基础</summary><ol><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks">CSS 构建</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Selectors">CSS 选择器</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">类型、类和 ID 选择器</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">属性选择器</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">伪类和伪元素</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Combinators">关系选择器</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">层叠、优先级与继承</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_layers">层叠层</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/The_box_model">盒模型</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">背景与边框</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">处理不同方向的文本</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Overflowing_content">溢出的内容</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Values_and_units">CSS 值和单位</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">在 CSS 中调整大小</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Images_media_form_elements">图像、媒体和表单元素</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Styling_tables">样式化表格</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Advanced_styling_effects">高级区块效果</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Debugging_CSS">调试 CSS</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Organizing">组织 CSS</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension">基本的 CSS 理解</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper">创建精美的信纸</a></li><li><a href="/zh-CN/docs/Learn/CSS/Building_blocks/A_cool_looking_box">一个漂亮的盒子</a></li></ol></details></li><li><details><summary>样式化文本</summary><ol><li><a href="/zh-CN/docs/Learn/CSS/Styling_text">为文本添加样式(样式化文本)</a></li><li><a href="/zh-CN/docs/Learn/CSS/Styling_text/Fundamentals">基本文本和字体样式</a></li><li><a href="/zh-CN/docs/Learn/CSS/Styling_text/Styling_lists">为列表添加样式</a></li><li><a href="/zh-CN/docs/Learn/CSS/Styling_text/Styling_links">样式化链接</a></li><li><a href="/zh-CN/docs/Learn/CSS/Styling_text/Web_fonts">Web 字体</a></li><li><a href="/zh-CN/docs/Learn/CSS/Styling_text/Typesetting_a_homepage">作业:排版社区大学首页</a></li></ol></details></li><li><details><summary>CSS 排版</summary><ol><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout">CSS 布局</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Introduction">介绍 CSS 布局</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Normal_Flow">常规流布局</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox">弹性盒子</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Grids">网格</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Floats">浮动</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Positioning">定位</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">多列布局</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Responsive_Design">响应式设计</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Media_queries">媒体查询入门指南</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">传统的布局方法</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">支持旧浏览器</a></li><li><a href="/zh-CN/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">作业:基本布局理解</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/JavaScript">JavaScript——用户端动态脚本</a></li><li><details><summary>JavaScript 第一步</summary><ol><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps">JavaScript 第一步</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript">什么是 JavaScript?</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/A_first_splash">JavaScript 初体验</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/What_went_wrong">查找并解决 JavaScript 代码的错误</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Variables">如何存储你需要的信息——变量</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Math">JavaScript 中的基础数学 — 数字和操作符</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Strings">文本处理——JavaScript 中的字符串</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods">有用的字符串方法</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Arrays">数组</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/First_steps/Silly_story_generator">笑话生成器</a></li></ol></details></li><li><details><summary>JavaScript 基础</summary><ol><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks">创建 JavaScript 代码块</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/conditionals">在代码中做决定——条件语句</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Looping_code">循环吧,代码</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Functions">函数——可复用的代码块</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Build_your_own_function">创建你自己的函数</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Return_values">函数返回值</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Events">事件介绍</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Event_bubbling">事件冒泡</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Building_blocks/Image_gallery">图片库</a></li></ol></details></li><li><details><summary>JavaScript 对象介绍</summary><ol><li><a href="/zh-CN/docs/Learn/JavaScript/Objects">JavaScript 对象入门</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Basics">JavaScript 对象基础</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes">对象原型</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Object-oriented_programming">面向对象编程基本概念</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Classes_in_JavaScript">JavaScript 中的类</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/JSON">使用 JSON</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Object_building_practice">实践对象构造</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features">为“弹球”示例添加新功能</a></li></ol></details></li><li><details><summary>异步 JavaScript</summary><ol><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous">异步 JavaScript</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous/Introducing">异步 JavaScript 简介</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous/Promises">如何使用 Promise</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API">如何实现基于 Promise 的 API</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous/Introducing_workers">workers 简介</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Asynchronous/Sequencing_animations">序列动画</a></li></ol></details></li><li><details><summary>客户端 Web API</summary><ol><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs">客户端 Web API</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Introduction">Web API 简介</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents">操作文档</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data">从服务器获取数据</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs">第三方 API</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics">绘图</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs">视频和音频 API</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage">客户端存储</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Forms">Web 表单——与用户数据打交道</a></li><li><details><summary>Web 表单核心</summary><ol><li><a href="/zh-CN/docs/Learn/Forms">Web 表单构建块</a></li><li><a href="/zh-CN/docs/Learn/Forms/Your_first_form">创建我的第一个表单</a></li><li><a href="/zh-CN/docs/Learn/Forms/How_to_structure_a_web_form">如何构建 HTML 表单</a></li><li><a href="/zh-CN/docs/Learn/Forms/Basic_native_form_controls">原生表单部件</a></li><li><a href="/zh-CN/docs/Learn/Forms/HTML5_input_types">HTML5 的输入(input)类型</a></li><li><a href="/zh-CN/docs/Learn/Forms/Other_form_controls">其他表单控件</a></li><li><a href="/zh-CN/docs/Learn/Forms/Styling_web_forms">样式化 Web 表单</a></li><li><a href="/zh-CN/docs/Learn/Forms/Advanced_form_styling">表单样式化进阶</a></li><li><a href="/zh-CN/docs/Learn/Forms/UI_pseudo-classes">UI 伪类</a></li><li><a href="/zh-CN/docs/Learn/Forms/Form_validation">表单数据校验</a></li><li><a href="/zh-CN/docs/Learn/Forms/Sending_and_retrieving_form_data">发送表单数据</a></li></ol></details></li><li><details><summary>Web 表单进阶</summary><ol><li><a href="/zh-CN/docs/Learn/Forms/How_to_build_custom_form_controls">如何构建自定义表单控件</a></li><li><a href="/zh-CN/docs/Learn/Forms/Sending_forms_through_JavaScript">使用 JavaScript 发送表单</a></li><li><a href="/zh-CN/docs/Learn/Forms/Property_compatibility_table_for_form_controls">表单控件兼容性列表</a></li><li><a href="/zh-CN/docs/Learn/Forms/HTML_forms_in_legacy_browsers">旧式浏览器中的 HTML 表单</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Accessibility">无障碍——使每个人都能使用 Web</a></li><li><details><summary>无障碍指南</summary><ol><li><a href="/zh-CN/docs/Learn/Accessibility">无障碍</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/What_is_accessibility">什么是无障碍?</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/HTML">HTML:无障碍的良好基础</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/CSS_and_JavaScript">CSS 和 JavaScript 无障碍最佳实践</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA 基础</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/Multimedia">多媒体无障碍</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/Mobile">移动端无障碍</a></li><li><a href="/zh-CN/docs/Learn/Accessibility/Accessibility_troubleshooting">测验:无障碍疑难解答</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Performance">性能——使网站快速响应</a></li><li><details><summary>性能指南</summary><ol><li><a href="/zh-CN/docs/Learn/Performance">Web 性能</a></li><li><a href="/zh-CN/docs/Learn/Performance/why_web_performance">Web 性能的重要性</a></li><li><a href="/zh-CN/docs/Learn/Performance/What_is_web_performance">什么是 web 性能?</a></li><li><a href="/zh-CN/docs/Learn/Performance/Perceived_performance">感知性能</a></li><li><a href="/zh-CN/docs/Learn/Performance/Measuring_performance">测量性能</a></li><li><a href="/zh-CN/docs/Learn/Performance/Multimedia">多媒体:图片</a></li><li><a href="/zh-CN/docs/Learn/Performance/video">多媒体:视频</a></li><li><a href="/zh-CN/docs/Learn/Performance/JavaScript">JavaScript 性能优化</a></li><li><a href="/zh-CN/docs/Learn/Performance/HTML">HTML 性能优化</a></li><li><a href="/zh-CN/docs/Learn/Performance/CSS">CSS 性能优化</a></li><li><a href="/zh-CN/docs/Learn/Performance/business_case_for_performance">web 性能的商业案例</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/MathML">MathML——使用 MathML 语言撰写数学表达式</a></li><li><details><summary>MathML 第一步</summary><ol><li><a href="/zh-CN/docs/Learn/MathML/First_steps">MathML 入门概述</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Getting_started">MathML 使用入门</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Text_containers">MathML 文本容器</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Fractions_and_roots">MathML 分数和根号</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Scripts">MathML 附加符号</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Tables">MathML 表格</a></li><li><a href="/zh-CN/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas">三个著名的数学公式</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/../Games">游戏——开发 Web 游戏</a></li><li><details><summary>指南和基础教程</summary><ol><li><a href="/zh-CN/docs/Games/Introduction">Web 游戏开发简介</a></li><li><a href="/zh-CN/docs/Games/Techniques">游戏开发技术</a></li><li><a href="/zh-CN/docs/Games/Tutorials">教程</a></li><li><a href="/zh-CN/docs/Games/Publishing_games">发布游戏</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Tools_and_testing">工具与测试</a></li><li><details><summary>客户端 web 开发工具</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools">理解客户端 web 开发工具</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview">客户端工具概述</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line">命令行速成课</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management">软件包管理基础</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain">介绍完整的工具链</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment">部署我们的应用</a></li></ol></details></li><li><details><summary>客户端框架介绍</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction">客户端框架介绍</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features">框架的主要特性</a></li></ol></details></li><li><details><summary>React</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started">React 入门</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning">开始我们的 React 待办清单</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components">组件化我们的 React App</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state">React interactivity: Events and state</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering">React interactivity: Editing, filtering, conditional rendering</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility">Accessibility in React</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources">React resources</a></li></ol></details></li><li><details><summary>Ember</summary><ol><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started">Getting started with Ember</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization">Ember app structure and componentization</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state">Ember interactivity: Events, classes and state</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer">Ember Interactivity: Footer functionality, conditional rendering</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing">Routing in Ember</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources">Ember resources and troubleshooting</a></li></ol></details></li><li><details><summary>Vue</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started">开始使用 Vue</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component">创建第一个 Vue 组件</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists">渲染 Vue 组件列表</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models">使用 Vue event、method 和 model 添加一个新的 todo 表单</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling">使用 CSS 为 Vue 组件添加样式</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties">Vue 中的计算属性</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering">Vue 中的条件渲染:编辑现有的待办事项</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management">使用 Vue 模板引用进行焦点管理</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources">Vue 资源</a></li></ol></details></li><li><details><summary>Svelte</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started">Svelte 入门</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning">开始编写我们的 Svelte 待办事项列表应用程序</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props">Svelte 中的动态行为:变量和属性</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components">将我们的 Svelte 应用组件化</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility">Svelte 进阶:响应式、生命周期以及无障碍</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores">使用 Svelte store</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript">Svelte 对 TypeScript 的支持</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next">部署以及下一步</a></li></ol></details></li><li><details><summary>Angular</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started">Angular 入门</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning">Beginning our Angular todo list app</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling">Styling our Angular app</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component">Creating an item component</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering">Filtering our to-do items</a></li><li><a class="only-in-en-us" title="此页面目前仅提供英文版本" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building">Building Angular applications and further resources</a></li></ol></details></li><li><details><summary>Git 和 GitHub</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/GitHub">Git 和 GitHub</a></li></ol></details></li><li><details><summary>跨浏览器测试</summary><ol><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing">跨浏览器测试</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction">跨浏览器测试介绍</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies">测试的策略</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS">处理常见的 HTML 和 CSS 问题</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript">处理常见的 JavaScript 问题</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility">解决常见的无障碍问题</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection">实现特性检测</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing">自动化测试简介</a></li><li><a href="/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment">搭建自己的自动化测试环境</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Server-side">服务端网页编程</a></li><li><details><summary>第一步</summary><ol><li><a href="/zh-CN/docs/Learn/Server-side/First_steps">服务端网站编程的第一步</a></li><li><a href="/zh-CN/docs/Learn/Server-side/First_steps/Introduction">服务端编程介绍</a></li><li><a href="/zh-CN/docs/Learn/Server-side/First_steps/Client-Server_overview">客户端服务端交互概述</a></li><li><a href="/zh-CN/docs/Learn/Server-side/First_steps/Web_frameworks">服务端 web 框架</a></li><li><a href="/zh-CN/docs/Learn/Server-side/First_steps/Website_security">站点安全</a></li></ol></details></li><li><details><summary>Django Web 框架(Python)</summary><ol><li><a href="/zh-CN/docs/Learn/Server-side/Django">Django Web 框架 (python)</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Introduction">Django 介绍</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/development_environment">设置 Django 开发环境</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Tutorial_local_library_website">Django Tutorial: The Local Library website</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/skeleton_website">Django Tutorial Part 2: 创建网站的地基</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Models">Django Tutorial Part 3: 使用模型</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Admin_site">Django Tutorial Part 4: Django 管理员站点</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Home_page">Django 教程 5:主页构建</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Generic_views">Django 教程 6: 通用列表和详细信息视图</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Sessions">Django 教程 7: 会话框架</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Authentication">Django 教程 8:用户授权与许可</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Forms">Django 教程 9: 使用表单</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Testing">Django 教程 10: 测试 Django 网页应用</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/Deployment">Django 教程 11:部署 Django 到生产环境</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/web_application_security">Django Web 应用安全</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Django/django_assessment_blog">评估:DIY Django 微博客</a></li></ol></details></li><li><details><summary>Express Web 框架(Node.js/JavaScript)</summary><ol><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs">Express Web 框架(Node.js/JavaScript)</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/Introduction">Express/Node 入门</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/development_environment">设置 Node 开发环境</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website">Express 教程:本地图书馆网站</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/skeleton_website">Express 教程 2:创建站点框架</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/mongoose">Express 教程 3:使用数据库 (Mongoose)</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/routes">Express 教程 4:路由和控制器</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/Displaying_data">Express 教程 5: 呈现图书馆数据</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/forms">Express 教程 6: 使用表单</a></li><li><a href="/zh-CN/docs/Learn/Server-side/Express_Nodejs/deployment">Express 教程 7: 部署到生产环境</a></li></ol></details></li><li class="section"><a href="/zh-CN/docs/Learn/Common_questions">更多资源</a></li><li><details><summary>常见问题</summary><ol><li><a href="/zh-CN/docs/Learn/Common_questions">常见问题</a></li><li><a href="/zh-CN/docs/Learn/HTML/Howto">使用 HTML 解决常见问题</a></li><li><a href="/zh-CN/docs/Learn/CSS/Howto">解决常见的 CSS 问题</a></li><li><a href="/zh-CN/docs/Learn/JavaScript/Howto">解决 JavaSctript 代码的常见问题</a></li><li><a href="/zh-CN/docs/Learn/Common_questions/Web_mechanics">Web 机制</a></li><li><a href="/zh-CN/docs/Learn/Common_questions/Tools_and_setup">工具和安装</a></li><li><a href="/zh-CN/docs/Learn/Common_questions/Design_and_accessibility">设计与无障碍</a></li></ol></details></li></ol></div></div><section class="place side"></section></nav></aside><div class="toc-container"><aside class="toc"><nav><div class="document-toc-container"><section class="document-toc"><header><h2 class="document-toc-heading">在本文中</h2></header><ul class="document-toc-list"><li class="document-toc-item "><a class="document-toc-link" href="#基础:标题和段落">基础:标题和段落</a></li><li class="document-toc-item "><a class="document-toc-link" href="#列表">列表</a></li><li class="document-toc-item "><a class="document-toc-link" href="#重点强调">重点强调</a></li><li class="document-toc-item "><a class="document-toc-link" href="#技能测试!">技能测试!</a></li><li class="document-toc-item "><a class="document-toc-link" href="#总结">总结</a></li></ul></section></div></nav></aside><section class="place side"></section></div></div><main id="content" class="main-content "><article class="main-page-content" lang="zh-CN"><header><h1>HTML 文本处理基础</h1></header><div class="section-content"><ul class="prev-next"> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML"><span class="button-wrap"> 上一页 </span></a></li> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML"><span class="button-wrap"> 概述:HTML 简介</span></a></li> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks"><span class="button-wrap"> 下一页 </span></a></li> </ul> <p>HTML 的主要工作之一是赋予文本结构,使浏览器能够按照开发者的意图显示 HTML 文档。本文解释了 <a href="/zh-CN/docs/Glossary/HTML">HTML</a> 如何通过添加标题和段落、强调单词、创建列表等方式来构造文本。</p> <figure class="table-container"><table> <tbody> <tr> <th scope="row">前提:</th> <td> 阅读 <a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Getting_started">开始学习 HTML</a>,了解基本的 HTML 知识。 </td> </tr> <tr> <th scope="row">目标:</th> <td>学习如何用标记(段落、标题、列表、强调、引用等)来建立页面的基本文本结构和文本内容。</td> </tr> </tbody> </table></figure></div><section aria-labelledby="基础:标题和段落"><h2 id="基础:标题和段落"><a href="#基础:标题和段落">基础:标题和段落</a></h2><div class="section-content"><p>大部分结构化文本由标题和段落组成。不管是小说、报刊、教科书还是杂志等。</p> <p> <img src="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals/newspaper_small.jpg" alt="一个报纸封面的例子,显示了顶级标题、副标题和段落的使用。" width="600" height="376" loading="lazy"> </p> <p>内容结构化会使读者的阅读体验更轻松,更愉快。</p> <p>在 HTML 中,每个段落是通过 <a href="/zh-CN/docs/Web/HTML/Element/p"><code>&lt;p&gt;</code></a> 元素标签进行定义的,比如下面这样:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;p&gt;我是一个段落,千真万确。&lt;/p&gt; </code></pre></div> <p>每个标题(Heading)都必须被包裹在一个标题元素中:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;h1&gt;我是文章的标题&lt;/h1&gt; </code></pre></div> <p>一共有六种标题元素标签——<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h1</a>、<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h2</a>、<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h3</a>、<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h4</a>、<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h5</a> 和 <a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h6</a>。每个元素代表文档中不同级别的内容:<code>&lt;h1&gt;</code> 表示主标题,<code>&lt;h2&gt;</code> 表示二级子标题,<code>&lt;h3&gt;</code> 表示三级子标题,依此类推。</p></div></section><section aria-labelledby="编辑结构层次"><h3 id="编辑结构层次"><a href="#编辑结构层次">编辑结构层次</a></h3><div class="section-content"><p>这里举一个例子。在一个故事中,<code>&lt;h1&gt;</code> 表示故事的名字,<code>&lt;h2&gt;</code> 表示每个章节的标题,<code>&lt;h3&gt;</code> 表示每个章节下的子标题,以此类推。</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;h1&gt;三国演义&lt;/h1&gt; &lt;p&gt;罗贯中&lt;/p&gt; &lt;h2&gt;第一回 宴桃园豪杰三结义 斩黄巾英雄首立功&lt;/h2&gt; &lt;p&gt; 话说天下大势,分久必合,合久必分。周末七国分争,并入于秦。及秦灭之后,楚、汉分争,又并入于汉…… &lt;/p&gt; &lt;h2&gt;第二回 张翼德怒鞭督邮 何国舅谋诛宦竖&lt;/h2&gt; &lt;p&gt; 且说董卓字仲颖,陇西临洮人也,官拜河东太守,自来骄傲。当日怠慢了玄德,张飞性发,便欲杀之…… &lt;/p&gt; &lt;h3&gt;却说张飞&lt;/h3&gt; &lt;p&gt; 却说张飞饮了数杯闷酒,乘马从馆驿前过,见五六十个老人,皆在门前痛哭。飞问其故,众老人答曰:“督邮逼勒县吏,欲害刘公;我等皆来苦告,不得放入,反遭把门人赶打!”…… &lt;/p&gt; </code></pre></div> <p>所涉及的元素具体代表什么,完全取决于作者编辑的内容,只要层次结构是合理的。在创建此类结构时,只需要记住一些最佳实践:</p> <ul> <li>最好只对每个页面使用一次 <code>&lt;h1&gt;</code>——这是顶级标题,所有其他标题位于层次结构中的下方。</li> <li>请确保在层次结构中以正确的顺序使用标题。不要使用 <code>&lt;h3&gt;</code> 来表示副标题,后面再跟 <code>&lt;h2&gt;</code> 来表示二级副标题——这是没有意义的,会导致奇怪的结果。</li> <li>在现有的六个标题层次中,除非觉得有必要,否则应该争取每页使用不超过三个。有很多层次的文件(例如,深层次的标题层次)会变得笨重,难以浏览。在这种情况下,如果可能的话,建议将内容分散到多个页面。</li> </ul></div></section><section aria-labelledby="为什么我们需要结构化?"><h3 id="为什么我们需要结构化?"><a href="#为什么我们需要结构化?">为什么我们需要结构化?</a></h3><div class="section-content"><p>回答这个问题前,让我们先来看一段<a href="https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-start.html" class="external" target="_blank">文档示例</a>——并从运行这段文档示例(美味的豆沙食谱)开始。你应该在本地机器上保存一份这个文件的副本,因为在以后的练习中会需要它。这个文件的主体目前包含了多条内容。它们没有任何标记,但都用换行符隔开(按回车键进入下一行)。</p> <p>然而,当在浏览器中打开文档时,会看到文本显示为一整块!</p> <p> <img src="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals/screen_shot_2017-03-29_at_09.20.35.png" alt="显示了一堵没有格式的“文字墙”的网页,因为页面上没有任何标记元素。" width="600" height="377" loading="lazy"> </p> <p>这是因为没有元素给内容结构,所以浏览器不知道什么是标题,什么是段落。此外:</p> <ul> <li>用户在阅读网页时,往往会快速浏览以查找相关内容,经常只是阅读开头的标题(我们通常在一个网页上会<a href="https://www.nngroup.com/articles/how-long-do-users-stay-on-web-pages/" class="external" target="_blank">花费很少的时间</a>)。如果用户不能在几秒内看到一些有用的内容,他们很可能会感到沮丧并离开。</li> <li>对网页建立索引的搜索引擎将标题的内容视为影响网页搜索排名的重要关键字。没有标题,你的网页在<a href="/zh-CN/docs/Glossary/SEO">搜索引擎优化</a>方面效果不佳。</li> <li>严重视力障碍者通常不会阅读网页;他们用听力来代替。完成这项工作的软件叫做<a href="https://zh.wikipedia.org/wiki/%E8%9E%A2%E5%B9%95%E9%96%B1%E8%AE%80%E5%99%A8" class="external" target="_blank">屏幕阅读器</a>。该软件提供了快速访问给定文本内容的方法。在使用的各种技术中,它们通过朗读标题来提供文档的概述,让用户能快速找到他们需要的信息。如果标题不可用,用户将不得不听到整个文档被大声朗读。</li> <li>使用 <a href="/zh-CN/docs/Glossary/CSS">CSS</a> 样式化内容,或者使用 <a href="/zh-CN/docs/Glossary/JavaScript">JavaScript</a> 做一些有趣的事情,你需要包含相关内容的元素,使得 CSS / JavaScript 可以有效地定位它。</li> </ul> <p>因此,我们需要给我们的内容进行结构性标记。</p></div></section><section aria-labelledby="主动学习:编辑我们的内容结构"><h3 id="主动学习:编辑我们的内容结构"><a href="#主动学习:编辑我们的内容结构">主动学习:编辑我们的内容结构</a></h3><div class="section-content"><p>让我们直接进入一个运行实例。在下面的示例中,向<em>可编辑代码</em>字段中的原始文本添加元素,使其在<em>实时输出</em>字段中显示为标题和两个段落。</p> <p>如果犯了错误,你可以使用<em>重置</em>按钮进行重置。如果你卡住了,请按<em>显示答案</em>按钮以查看答案。</p> <div class="code-example"><pre class="brush: html hidden notranslate"><code>&lt;h2&gt;实时输出&lt;/h2&gt; &lt;div class="output" style="min-height: 50px;"&gt;&lt;/div&gt; &lt;h2&gt;可编辑代码&lt;/h2&gt; &lt;p class="a11y-label"&gt; 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\t'&lt;/code&gt; &lt;/p&gt; &lt;textarea id="code" class="input" style="min-height: 100px; width: 95%"&gt; 静夜思 床前明月光 疑是地上霜 举头望明月 低头思故乡 &lt;/textarea&gt; &lt;div class="playable-buttons"&gt; &lt;input id="reset" type="button" value="重置" /&gt; &lt;input id="solution" type="button" value="显示答案" /&gt; &lt;/div&gt; </code></pre></div> <div class="code-example"><pre class="brush: css hidden notranslate"><code>html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } </code></pre></div> <div class="code-example"><pre class="brush: js hidden notranslate"><code>const textarea = document.getElementById("code"); const reset = document.getElementById("reset"); const solution = document.getElementById("solution"); const output = document.querySelector(".output"); const code = textarea.value; let userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } const htmlSolution = `&lt;h1&gt;静夜思&lt;/h1&gt; &lt;p&gt;床前明月光 疑是地上霜&lt;/p&gt; &lt;p&gt;举头望明月 低头思故乡&lt;/p&gt;`; let solutionEntry = htmlSolution; reset.addEventListener("click", () =&gt; { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "显示答案"; updateCode(); }); solution.addEventListener("click", () =&gt; { if (solution.value === "显示答案") { textarea.value = solutionEntry; solution.value = "隐藏答案"; } else { textarea.value = userEntry; solution.value = "显示答案"; } updateCode(); }); textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // Stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = (e) =&gt; { if (e.code === "Tab") { e.preventDefault(); insertAtCaret("\t"); } if (e.code === "Escape") { textarea.blur(); } }; function insertAtCaret(text) { const scrollPos = textarea.scrollTop; let caretPos = textarea.selectionStart; const front = textarea.value.substring(0, caretPos); const back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos += text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function () { // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "显示答案") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; </code></pre></div><div class="code-example"><div class="example-header"></div><iframe class="sample-code-frame" title="主动学习:编辑我们的内容结构 sample" id="frame_主动学习:编辑我们的内容结构" width="700" height="400" src="about:blank" data-live-path="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" data-live-id="主动学习:编辑我们的内容结构" sandbox="allow-same-origin allow-scripts" loading="lazy"></iframe></div></div></section><section aria-labelledby="为什么我们需要语义?"><h3 id="为什么我们需要语义?"><a href="#为什么我们需要语义?">为什么我们需要语义?</a></h3><div class="section-content"><p>在我们身边的任何地方都要依赖语义——我们依靠以前的经验来告诉我们一个日常物品的功能是什么;当我们看到某个东西时,我们知道它的功能是什么。举个例子,我们知道红色交通灯表示“停止”,绿色交通灯表示“通行”。如果运用了错误的语义,事情会迅速地变得非常棘手(难道有某个国家使用红色代表通行?我不希望如此)</p> <p>同样的道理,我们需要确保使用了正确的元素来给予内容正确的含义、作用以及外形。在这里,<a href="/zh-CN/docs/Web/HTML/Element/Heading_Elements">h1</a> 元素也是一个语义元素,它所包裹的文本具有“页面上的顶级标题”的作用(或意义)。</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;h1&gt;这是一个顶级标题&lt;/h1&gt; </code></pre></div> <p>一般来说,浏览器会给它一个更大的字形来让它看上去像个标题(虽然也可以使用 CSS 让它变成任何你想要的样式)。更重要的是,它的语义值将以多种方式被使用,比如通过上文提到过的搜索引擎和屏幕阅读器。</p> <p>在另一方面,你可以让任一元素看起来像一个顶级标题,考虑如下:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;span style="font-size: 32px; margin: 21px 0; display: block;" &gt;这是顶级标题吗?&lt;/span &gt; </code></pre></div> <p>这是一个 <a href="/zh-CN/docs/Web/HTML/Element/span"><code>&lt;span&gt;</code></a> 元素,它没有语义。当想要对它用 CSS(或者 JS)时,可以用它包裹内容,且不附加任何额外的意义(在未来的课程中你会发现更多这类元素)。我们已经对它使用了 CSS 来让它看起来像一个顶级标题。然而,由于它没有语义值,所以它不会有任何上文提到的帮助。最好的方法是使用相关的 HTML 元素来标记这个项目。</p></div></section><section aria-labelledby="列表"><h2 id="列表"><a href="#列表">列表</a></h2><div class="section-content"><p>现在让我们把注意力转向列表。在生活中,列表无处不在——从你的购物清单到你每天下意识地遵循的方向列表,再到你在这些教程中遵循的指令列表!在 Web 上,有三种类型的列表:无序列表、有序列表和描述列表。</p> <p>无序列表和有序列表非常常见,将在本节介绍。描述列表不太常见,将在<a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">文本格式进阶</a>中介绍。</p></div></section><section aria-labelledby="无序列表"><h3 id="无序列表"><a href="#无序列表">无序列表</a></h3><div class="section-content"><p>无序列表用于标记列表项目顺序无关紧要的列表——让我们以购物清单为例。</p> <pre class="brush: plain notranslate">豆浆 油条 豆汁 焦圈 </pre> <p>每份无序的清单从 <a href="/zh-CN/docs/Web/HTML/Element/ul"><code>&lt;ul&gt;</code></a> 元素开始,需要包裹清单上所有被列出的项目:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;ul&gt; 豆浆 油条 豆汁 焦圈 &lt;/ul&gt; </code></pre></div> <p>然后就是用 <a href="/zh-CN/docs/Web/HTML/Element/li"><code>&lt;li&gt;</code></a> 元素把每个列出的项目单独包裹起来:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;ul&gt; &lt;li&gt;豆浆&lt;/li&gt; &lt;li&gt;油条&lt;/li&gt; &lt;li&gt;豆汁&lt;/li&gt; &lt;li&gt;焦圈&lt;/li&gt; &lt;/ul&gt; </code></pre></div> <h4 id="主动学习:标记无序列表">主动学习:标记无序列表</h4> <p>尝试编辑下面的示例来创建一个 HTML 无序列表。</p> <div class="code-example"><pre class="brush: html hidden notranslate"><code>&lt;h2&gt;实时输出&lt;/h2&gt; &lt;div class="output" style="min-height: 50px;"&gt;&lt;/div&gt; &lt;h2&gt;可编辑代码&lt;/h2&gt; &lt;p class="a11y-label"&gt; 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\t'&lt;/code&gt; &lt;/p&gt; &lt;textarea id="code" class="input" style="min-height: 100px; width: 95%"&gt; 豆浆 油条 豆汁 焦圈 &lt;/textarea&gt; &lt;div class="playable-buttons"&gt; &lt;input id="reset" type="button" value="重置" /&gt; &lt;input id="solution" type="button" value="显示答案" /&gt; &lt;/div&gt; </code></pre></div> <div class="code-example"><pre class="brush: css hidden notranslate"><code>html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } </code></pre></div> <div class="code-example"><pre class="brush: js hidden notranslate"><code>const textarea = document.getElementById("code"); const reset = document.getElementById("reset"); const solution = document.getElementById("solution"); const output = document.querySelector(".output"); const code = textarea.value; let userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } const htmlSolution = "&lt;ul&gt;\n&lt;li&gt;豆浆&lt;/li&gt;\n&lt;li&gt;油条&lt;/li&gt;\n&lt;li&gt;豆汁&lt;/li&gt;\n&lt;li&gt;焦圈&lt;/li&gt;\n&lt;/ul&gt;"; let solutionEntry = htmlSolution; reset.addEventListener("click", () =&gt; { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "显示答案"; updateCode(); }); solution.addEventListener("click", () =&gt; { if (solution.value === "显示答案") { textarea.value = solutionEntry; solution.value = "隐藏答案"; } else { textarea.value = userEntry; solution.value = "显示答案"; } updateCode(); }); textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = (e) =&gt; { if (e.code === "Tab") { e.preventDefault(); insertAtCaret("\t"); } if (e.code === "Escape") { textarea.blur(); } }; function insertAtCaret(text) { const scrollPos = textarea.scrollTop; let caretPos = textarea.selectionStart; const front = textarea.value.substring(0, caretPos); const back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos += text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = () =&gt; { // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "显示答案") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; </code></pre></div><div class="code-example"><div class="example-header"></div><iframe class="sample-code-frame" title="主动学习:标记无序列表 sample" id="frame_主动学习:标记无序列表" width="700" height="400" src="about:blank" data-live-path="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" data-live-id="主动学习:标记无序列表" sandbox="allow-same-origin allow-scripts" loading="lazy"></iframe></div></div></section><section aria-labelledby="有序列表"><h3 id="有序列表"><a href="#有序列表">有序列表</a></h3><div class="section-content"><p>有序列表需要按照项目的顺序列出来——让我们以一组方向为例:</p> <pre class="brush: plain notranslate">沿这条路走到头 右转 直行穿过第一个十字路口 在第三个十字路口处左转 继续走 300 米,学校就在你的右手边 </pre> <p>这个标记的结构和无序列表一样,除了需要用 <a href="/zh-CN/docs/Web/HTML/Element/ol"><code>&lt;ol&gt;</code></a> 元素将所有项目包裹,而不是 <code>&lt;ul&gt;</code>:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;ol&gt; &lt;li&gt;沿这条路走到头&lt;/li&gt; &lt;li&gt;右转&lt;/li&gt; &lt;li&gt;直行穿过第一个十字路口&lt;/li&gt; &lt;li&gt;在第三个十字路口处左转&lt;/li&gt; &lt;li&gt;继续走 300 米,学校就在你的右手边&lt;/li&gt; &lt;/ol&gt; </code></pre></div> <h4 id="主动学习:标记有序列表">主动学习:标记有序列表</h4> <p>尝试编辑下面的示例来创建一个 HTML 有序列表:</p> <div class="code-example"><pre class="brush: html hidden notranslate"><code>&lt;h2&gt;实时输出&lt;/h2&gt; &lt;div class="output" style="min-height: 50px;"&gt;&lt;/div&gt; &lt;h2&gt;可编辑代码&lt;/h2&gt; &lt;p class="a11y-label"&gt; 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\t'&lt;/code&gt; &lt;/p&gt; &lt;textarea id="code" class="input" style="min-height: 200px; width: 95%"&gt; 沿这条路走到头 右转 直行穿过第一个十字路口 在第三个十字路口处左转 继续走 300 米,学校就在你的右手边 &lt;/textarea&gt; &lt;div class="playable-buttons"&gt; &lt;input id="reset" type="button" value="重置" /&gt; &lt;input id="solution" type="button" value="显示答案" /&gt; &lt;/div&gt; </code></pre></div> <div class="code-example"><pre class="brush: css hidden notranslate"><code>html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } </code></pre></div> <div class="code-example"><pre class="brush: js hidden notranslate"><code>const textarea = document.getElementById("code"); const reset = document.getElementById("reset"); const solution = document.getElementById("solution"); const output = document.querySelector(".output"); const code = textarea.value; let userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } const htmlSolution = `&lt;ol&gt; &lt;li&gt;沿这条路走到头&lt;/li&gt; &lt;li&gt;右转&lt;/li&gt; &lt;li&gt;直行穿过第一个十字路口&lt;/li&gt; &lt;li&gt;在第三个十字路口处左转&lt;/li&gt; &lt;li&gt;继续走 300 米,学校就在你的右手边&lt;/li&gt; &lt;/ol&gt;`; let solutionEntry = htmlSolution; reset.addEventListener("click", () =&gt; { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "显示答案"; updateCode(); }); solution.addEventListener("click", () =&gt; { if (solution.value === "显示答案") { textarea.value = solutionEntry; solution.value = "隐藏答案"; } else { textarea.value = userEntry; solution.value = "显示答案"; } updateCode(); }); textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = (e) =&gt; { if (e.code === "Tab") { e.preventDefault(); insertAtCaret("\t"); } if (e.code === "Escape") { textarea.blur(); } }; function insertAtCaret(text) { const scrollPos = textarea.scrollTop; let caretPos = textarea.selectionStart; const front = textarea.value.substring(0, caretPos); const back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos += text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = () =&gt; { // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "显示答案") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; </code></pre></div><div class="code-example"><div class="example-header"></div><iframe class="sample-code-frame" title="主动学习:标记有序列表 sample" id="frame_主动学习:标记有序列表" width="700" height="500" src="about:blank" data-live-path="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" data-live-id="主动学习:标记有序列表" sandbox="allow-same-origin allow-scripts" loading="lazy"></iframe></div></div></section><section aria-labelledby="主动学习:标记我们的食谱"><h3 id="主动学习:标记我们的食谱"><a href="#主动学习:标记我们的食谱">主动学习:标记我们的食谱</a></h3><div class="section-content"><p>到了这里,你拥有了所有你需要的信息来标记我们的食谱样例。你可以选择从 <a href="https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-start.html" class="external" target="_blank">text-start.html</a> 复制一份文件并保存在本地,打开它进行编辑,或者在下面的例子中进行编辑。在本地做可能会更好,因为这样你就可以保存你正在做的工作,而如果你把它填到可编辑的例子中,在你下次打开页面时,它就会丢失。各有利弊吧。</p> <div class="code-example"><pre class="brush: html hidden notranslate"><code>&lt;h2&gt;实时输出&lt;/h2&gt; &lt;div class="output" style="min-height: 50px;"&gt;&lt;/div&gt; &lt;h2&gt;可编辑代码&lt;/h2&gt; &lt;p class="a11y-label"&gt; 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\t'&lt;/code&gt; &lt;/p&gt; &lt;textarea id="code" class="input" style="min-height: 200px; width: 95%"&gt; 宫保鸡丁的做法 宫保鸡丁,川菜系中的传统名菜,由鸡丁、干辣椒、花生米等炒制而成。由于其入口鲜辣,鸡肉的鲜嫩配合花生的香脆,广受大众欢迎。 相传宫保鸡丁是清朝光绪年间的署理四川总督丁宝桢所发明,是他招待客人时叫家厨煮的菜肴。由于丁宝桢后来被封为东宫少保(太子少保),所以被称为“丁宫保”,而这道菜亦被称为“宫保鸡丁” 原料 去骨鸡胸肉:一斤八两 干红辣椒:八钱 炸花生米:一两五钱 花椒粒:两大匙 葱:两根(切段) 蛋白:一个 淀粉:三大匙 酱油:两大匙 蒜末:半茶匙 糖:半茶匙 白醋:一茶匙 色拉油:适量 盐:两茶匙 做法 先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。 用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。 鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。 在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。 如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。 如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。 大千鸡 张大千居加拿大期间,曾按自己喜好改变宫保鸡丁的做法,并传授当地厨师,厨师将之命名为“大千鸡”,以兹纪念。大千鸡与宫保鸡丁不同之处,是使用经细工去皮、出骨、剔膜的鸡腿肉,以干辣椒、豆瓣酱为味,而且不用花生。&lt;/textarea &gt; &lt;div class="playable-buttons"&gt; &lt;input id="reset" type="button" value="重置" /&gt; &lt;input id="solution" type="button" value="显示答案" /&gt; &lt;/div&gt; </code></pre></div> <div class="code-example"><pre class="brush: css hidden notranslate"><code>html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } </code></pre></div> <div class="code-example"><pre class="brush: js hidden notranslate"><code>const textarea = document.getElementById("code"); const reset = document.getElementById("reset"); const solution = document.getElementById("solution"); const output = document.querySelector(".output"); const code = textarea.value; let userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } const htmlSolution = `&lt;h1&gt;宫保鸡丁的做法&lt;/h1&gt; &lt;p&gt;宫保鸡丁,川菜系中的传统名菜,由鸡丁、干辣椒、花生米等炒制而成。由于其入口鲜辣,鸡肉的鲜嫩配合花生的香脆,广受大众欢迎。&lt;/p&gt; &lt;p&gt;相传宫保鸡丁是清朝光绪年间的署理四川总督丁宝桢所发明,是他招待客人时叫家厨煮的菜肴。由于丁宝桢后来被封为东宫少保(太子少保),所以被称为“丁宫保”,而这道菜亦被称为“宫保鸡丁”&lt;/p&gt; &lt;h2&gt;原料&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;去骨鸡胸肉:一斤八两&lt;/li&gt; &lt;li&gt;干红辣椒:八钱&lt;/li&gt; &lt;li&gt;炸花生米:一两五钱&lt;/li&gt; &lt;li&gt;花椒粒:两大匙&lt;/li&gt; &lt;li&gt;葱:两根(切段)&lt;/li&gt; &lt;li&gt;蛋白:一个&lt;/li&gt; &lt;li&gt;淀粉:三大匙&lt;/li&gt; &lt;li&gt;酱油:两大匙&lt;/li&gt; &lt;li&gt;蒜末:半茶匙&lt;/li&gt; &lt;li&gt;糖:半茶匙&lt;/li&gt; &lt;li&gt;白醋:一茶匙&lt;/li&gt; &lt;li&gt;色拉油:适量&lt;/li&gt; &lt;li&gt;盐:两茶匙&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;做法&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。&lt;/li&gt; &lt;li&gt;用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。&lt;/li&gt; &lt;li&gt;鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。&lt;/li&gt; &lt;li&gt;在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。&lt;/li&gt; &lt;li&gt;如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。&lt;/li&gt; &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt; &lt;/ol&gt; &lt;h2&gt;大千鸡&lt;/h2&gt; &lt;p&gt;张大千居加拿大期间,曾按自己喜好改变宫保鸡丁的做法,并传授当地厨师,厨师将之命名为“大千鸡”,以兹纪念。大千鸡与宫保鸡丁不同之处,是使用经细工去皮、出骨、剔膜的鸡腿肉,以干辣椒、豆瓣酱为味,而且不用花生。&lt;/p&gt;`; let solutionEntry = htmlSolution; reset.addEventListener("click", () =&gt; { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "显示答案"; updateCode(); }); solution.addEventListener("click", () =&gt; { if (solution.value === "显示答案") { textarea.value = solutionEntry; solution.value = "隐藏答案"; } else { textarea.value = userEntry; solution.value = "显示答案"; } updateCode(); }); textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = (e) =&gt; { if (e.code === "Tab") { e.preventDefault(); insertAtCaret("\t"); } if (e.code === "Escape") { textarea.blur(); } }; function insertAtCaret(text) { const scrollPos = textarea.scrollTop; let caretPos = textarea.selectionStart; const front = textarea.value.substring(0, caretPos); const back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos += text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = () =&gt; { // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "显示答案") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; </code></pre></div><div class="code-example"><div class="example-header"></div><iframe class="sample-code-frame" title="主动学习:标记我们的食谱 sample" id="frame_主动学习:标记我们的食谱" width="700" height="800" src="about:blank" data-live-path="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" data-live-id="主动学习:标记我们的食谱" sandbox="allow-same-origin allow-scripts" loading="lazy"></iframe></div> <p>如果你感到棘手,你可以随时按下<em>显示答案</em>按钮,或者在我们的 GitHub 仓库上检查 <a href="https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-complete.html" class="external" target="_blank">text-complete.html</a> 样例。</p></div></section><section aria-labelledby="嵌套列表"><h3 id="嵌套列表"><a href="#嵌套列表">嵌套列表</a></h3><div class="section-content"><p>将一个列表嵌入到另一个列表是完全可以的。你可能想让一些子项目列在一级项目之下。让我们从食谱示例中获取第二个列表:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;ol&gt; &lt;li&gt; 先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。 &lt;/li&gt; &lt;li&gt; 用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。 &lt;/li&gt; &lt;li&gt; 鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。 &lt;/li&gt; &lt;li&gt; 在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。 &lt;/li&gt; &lt;li&gt;如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。&lt;/li&gt; &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt; &lt;/ol&gt; </code></pre></div> <p>由于最后两项与它们的前一项非常密切相关(它们看起来更像该项的子项或选项),将它们编辑成无序列表,并嵌套在该项的子项中可能更合理。就像下面这样:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;ol&gt; &lt;li&gt; 先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。 &lt;/li&gt; &lt;li&gt; 用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。 &lt;/li&gt; &lt;li&gt; 鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。 &lt;/li&gt; &lt;li&gt; 在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。 &lt;ul&gt; &lt;li&gt; 如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。 &lt;/li&gt; &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ol&gt; </code></pre></div> <p>尝试回到上一个实践操作的例子中,并更新第二个列表。</p></div></section><section aria-labelledby="重点强调"><h2 id="重点强调"><a href="#重点强调">重点强调</a></h2><div class="section-content"><p>在日常用语中,我们常常会加重某个字的读音,或者用加粗等方式突出某句话的重点。与此类似,HTML 也提供了相应的标签,用于标记某些文本,使其具有加粗、倾斜、下划线等效果。下面,我们将学习一些最常见的标签。</p></div></section><section aria-labelledby="强调"><h3 id="强调"><a href="#强调">强调</a></h3><div class="section-content"><p>在口语表达中,我们有时会强调某些字,用来改变这句话的意思。同样地,在书面用语中,我们可以使用斜体字来达到同样的效果。例如,下面两个句子便有不同的意思:</p> <blockquote> <p>我很庆幸你没有迟到。</p> <p>我很<em>庆幸</em>你没有<em>迟到</em>。</p> </blockquote> <p>第一句话听起来真的像松了一口气因为没有迟到。相反,第二句话听起来具有讽刺性而且有隐含的攻击性,表达对一个人迟到的恼怒。</p> <p>在 HTML 中我们用 <a href="/zh-CN/docs/Web/HTML/Element/em"><code>&lt;em&gt;</code></a>(emphasis)元素来标记这样的情况。这样做既可以让文档读起来更有趣,也可以被屏幕阅读器识别,并以不同的语调发出。浏览器默认样式为斜体,但你不应该纯粹为了获得斜体风格而使用这个标签。如果仅仅为了获得斜体样式而不增加语义辅助,你应该使用 <a href="/zh-CN/docs/Web/HTML/Element/span"><code>&lt;span&gt;</code></a> 元素和一些 CSS,或者是 <a href="/zh-CN/docs/Web/HTML/Element/i"><code>&lt;i&gt;</code></a> 元素(见下文)。</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;p&gt;我很&lt;em&gt;庆幸&lt;/em&gt;你没有&lt;em&gt;迟到&lt;/em&gt;。&lt;/p&gt; </code></pre></div></div></section><section aria-labelledby="强烈的重要性"><h3 id="强烈的重要性"><a href="#强烈的重要性">强烈的重要性</a></h3><div class="section-content"><p>为了强调重要的词,在口语方面我们往往用重音强调,在书面用语中则是用粗体字来达到强调的效果。例如下面这段:</p> <blockquote> <p>这杯液体<strong>毒性很大</strong>。</p> <p>就指望你了,千万<strong>不要</strong>迟到!</p> </blockquote> <p>在 HTML 中我们用 <a href="/zh-CN/docs/Web/HTML/Element/strong"><code>&lt;strong&gt;</code></a>(strong importance)元素来标记这样的情况。除了使文档更有用之外,也可以被屏幕阅读器识别,并以不同的语调发出。浏览器默认样式为粗体,但你不应该纯粹为了获得粗体风格而使用这个标签。如果仅仅为了获得粗体样式而不增加语义辅助,你应该使用 <a href="/zh-CN/docs/Web/HTML/Element/span"><code>&lt;span&gt;</code></a> 元素和一些 CSS,或者是 <a href="/zh-CN/docs/Web/HTML/Element/b"><code>&lt;b&gt;</code></a> 元素(见下文)。</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;p&gt;这杯液体&lt;strong&gt;毒性很大&lt;/strong&gt;。&lt;/p&gt; &lt;p&gt;就指望你了,千万&lt;strong&gt;不要&lt;/strong&gt;迟到!&lt;/p&gt; </code></pre></div> <p>如有需要你可以将 strong 元素和 em 元素嵌套在其他的标签中:</p> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;p&gt; 这杯液体&lt;strong&gt;毒性很大&lt;/strong&gt;——如果饮用了它,你&lt;strong&gt;可能&lt;em&gt;会死&lt;/em&gt;&lt;/strong&gt;。 &lt;/p&gt; </code></pre></div></div></section><section aria-labelledby="主动学习:我们是重要的!"><h3 id="主动学习:我们是重要的!"><a href="#主动学习:我们是重要的!">主动学习:我们是重要的!</a></h3><div class="section-content"><p>在这个主动学习部分,我们提供了一个可编辑的示例。在这个示例中,我们希望你能尝试在你认为需要斜体强调和着重强调的词上添加斜体强调和着重强调的内容,只是为了进行一些练习。</p> <div class="code-example"><pre class="brush: html hidden notranslate"><code>&lt;h2&gt;实时输出&lt;/h2&gt; &lt;div class="output" style="min-height: 50px;"&gt;&lt;/div&gt; &lt;h2&gt;可编辑代码&lt;/h2&gt; &lt;p class="a11y-label"&gt; 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\t'&lt;/code&gt; &lt;/p&gt; &lt;textarea id="code" class="input" style="min-height: 200px; width: 95%"&gt; AlphaGo 李世乭五番棋 &lt;p&gt;2016 年 3 月 8 日到 3 月 15 日,韩国职业棋士李世乭(이세돌)九段与由 Google DeepMind 开发的计算机围棋软件 AlphaGo 对弈的五局三胜制围棋比赛在韩国首尔举行。结果为 AlphaGo 以四胜一负的战绩击败李世乭。赛后韩国棋院授予 AlphaGo 荣誉九段的称号。&lt;/p&gt;&lt;/textarea &gt; &lt;div class="playable-buttons"&gt; &lt;input id="reset" type="button" value="重置" /&gt; &lt;input id="solution" type="button" value="显示答案" /&gt; &lt;/div&gt; </code></pre></div> <div class="code-example"><pre class="brush: css hidden notranslate"><code>html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } </code></pre></div> <div class="code-example"><pre class="brush: js hidden notranslate"><code>const textarea = document.getElementById("code"); const reset = document.getElementById("reset"); const solution = document.getElementById("solution"); const output = document.querySelector(".output"); const code = textarea.value; let userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } const htmlSolution = `&lt;h1&gt;AlphaGo 李世乭五番棋&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;2016 年 3 月 8 日&lt;/strong&gt;到&lt;strong&gt;3 月 15 日&lt;/strong&gt;,韩国职业棋士&lt;strong&gt;李世乭(이세돌)&lt;em&gt;九段&lt;/em&gt;&lt;/strong&gt;与由 Google DeepMind 开发的计算机围棋软件 &lt;strong&gt;AlphaGo&lt;/strong&gt; 对弈的五局三胜制围棋比赛在韩国&lt;strong&gt;首尔&lt;/strong&gt;举行。结果为 AlphaGo 以&lt;strong&gt;四胜一负&lt;/strong&gt;的战绩击败李世乭。赛后韩国棋院授予 AlphaGo &lt;strong&gt;荣誉九段&lt;/strong&gt;的称号。&lt;/p&gt;`; let solutionEntry = htmlSolution; reset.addEventListener("click", () =&gt; { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "显示答案"; updateCode(); }); solution.addEventListener("click", () =&gt; { if (solution.value === "显示答案") { textarea.value = solutionEntry; solution.value = "隐藏答案"; } else { textarea.value = userEntry; solution.value = "显示答案"; } updateCode(); }); textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // Stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = (e) =&gt; { if (e.code === "Tab") { e.preventDefault(); insertAtCaret("\t"); } if (e.code === "Escape") { textarea.blur(); } }; function insertAtCaret(text) { const scrollPos = textarea.scrollTop; let caretPos = textarea.selectionStart; const front = textarea.value.substring(0, caretPos); const back = textarea.value.substring( textarea.selectionEnd, textarea.value.length, ); textarea.value = front + text + back; caretPos += text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = () =&gt; { // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if (solution.value === "显示答案") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; </code></pre></div><div class="code-example"><div class="example-header"></div><iframe class="sample-code-frame" title="主动学习:我们是重要的! sample" id="frame_主动学习:我们是重要的!" width="700" height="500" src="about:blank" data-live-path="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals" data-live-id="主动学习:我们是重要的!" sandbox="allow-same-origin allow-scripts" loading="lazy"></iframe></div></div></section><section aria-labelledby="斜体字、粗体字、下划线"><h3 id="斜体字、粗体字、下划线"><a href="#斜体字、粗体字、下划线">斜体字、粗体字、下划线</a></h3><div class="section-content"><p>到目前为止,我们所讨论的元素都有明确的相关语义。<a href="/zh-CN/docs/Web/HTML/Element/b"><code>&lt;b&gt;</code></a>、<a href="/zh-CN/docs/Web/HTML/Element/i"><code>&lt;i&gt;</code></a> 和 <a href="/zh-CN/docs/Web/HTML/Element/u"><code>&lt;u&gt;</code></a> 的情况却有点复杂。它们出现于人们要在文本中使用粗体、斜体、下划线但 CSS 仍然不被完全支持的时期。像这样仅仅影响表象而且没有语义的元素,被称为<strong>表象元素</strong>(presentational elements)并且不应该再被使用。因为正如我们在之前看到的,语义对无障碍、SEO(搜索引擎优化)等非常重要。</p> <p>HTML5 重新定义了 <code>&lt;b&gt;</code>、<code>&lt;i&gt;</code> 和 <code>&lt;u&gt;</code>,赋予了它们新的但有点令人困惑的语义角色。</p> <p>最好的经验法则是:只有在没有更合适的元素时,才适合使用 <code>&lt;b&gt;</code>、<code>&lt;i&gt;</code> 或 <code>&lt;u&gt;</code> 来表达传统上用粗体、斜体或下划线表达的意思;而通常情况下是有更合适的元素可供使用的。<code>&lt;strong&gt;</code>、<code>&lt;em&gt;</code>、<code>&lt;mark&gt;</code> 或 <code>&lt;span&gt;</code> 可能是更加合适的选择。</p> <p>始终保持无障碍的开发理念。斜体的概念对使用屏幕阅读器的人或使用拉丁字母以外的书写系统的人没有什么帮助。</p> <ul> <li><a href="/zh-CN/docs/Web/HTML/Element/i"><code>&lt;i&gt;</code></a> 被用来传达传统上用斜体表达的意义:外国文字,分类名称,技术术语,一种思想……</li> <li><a href="/zh-CN/docs/Web/HTML/Element/b"><code>&lt;b&gt;</code></a> 被用来传达传统上用粗体表达的意义:关键字,产品名称,引导句……</li> <li><a href="/zh-CN/docs/Web/HTML/Element/u"><code>&lt;u&gt;</code></a> 被用来传达传统上用下划线表达的意义:专有名词,拼写错误……</li> </ul> <div class="notecard note"> <p><strong>备注:</strong>人们强烈地将下划线与超链接联系起来。因此,在网页中,最好只给链接加下划线。在语义上合适的时候使用 <code>&lt;u&gt;</code> 元素,但要考虑使用 CSS 将默认的下划线改为在网页中更合适的东西。下面的例子说明了如何做到这一点:</p> </div> <div class="code-example"><div class="example-header"><span class="language-name">html</span></div><pre class="brush: html notranslate"><code>&lt;!-- 学名 --&gt; &lt;p&gt; 红喉北蜂鸟(学名:&lt;i&gt;Archilocus colubris&lt;/i&gt;)是北美东部最常见的蜂鸟品种。 &lt;/p&gt; &lt;!-- 舶来词 --&gt; &lt;p&gt; 菜单上有好多舶来词汇,比如 &lt;i lang="uk-latn"&gt;vatrushka&lt;/i&gt;(东欧乳酪面包)、&lt;i lang="id" &gt;nasi goreng&lt;/i &gt;(印尼炒饭)以及 &lt;i lang="fr"&gt;soupe à l'oignon&lt;/i&gt;(法式洋葱汤)。 &lt;/p&gt; &lt;!-- 已知的错误书写 --&gt; &lt;p&gt;总有一天我会改掉写&lt;u class="spelling-error"&gt;措字&lt;/u&gt;的毛病。&lt;/p&gt; &lt;!-- 在定义中,被定义的术语 --&gt; &lt;dl&gt; &lt;dt&gt;语义化 HTML&lt;/dt&gt; &lt;dd&gt;根据元素的&lt;b&gt;语义&lt;/b&gt;意义而不是外观来使用它们。&lt;/dd&gt; &lt;/dl&gt; </code></pre></div></div></section><section aria-labelledby="技能测试!"><h2 id="技能测试!"><a href="#技能测试!">技能测试!</a></h2><div class="section-content"><p>你已经到了本文的结尾,但你能记住最重要的信息吗?你可以找到一些进一步的测试,以验证你在继续前进之前已经保留了这些信息——参见<a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Test_your_skills:_HTML_text_basics" class="only-in-en-us" title="此页面目前仅提供英文版本">技能测试:HTML 文本基础知识</a> 。</p></div></section><section aria-labelledby="总结"><h2 id="总结"><a href="#总结">总结</a></h2><div class="section-content"><p>现在就到此为止了!这篇文章应该已经让你对如何开始在 HTML 中标记文本有了一个很好的概念,并且向你介绍了这个领域中的一些最重要的元素。这个领域还有很多语义元素要介绍,我们将在本课程稍后的<a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">文本格式化进阶</a>一文中看得更清楚。在下一篇文章中,作为 Web 上最重要的元素,我们将详细介绍如何<a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">创建超链接</a>。</p><ul class="prev-next"> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML"><span class="button-wrap"> 上一页 </span></a></li> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML"><span class="button-wrap"> 概述:HTML 简介</span></a></li> <li><a class="button secondary" href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks"><span class="button-wrap"> 下一页 </span></a></li> </ul></div></section></article><aside class="article-footer"><div class="article-footer-inner"><div class="svg-container"><svg xmlns="http://www.w3.org/2000/svg" width="162" height="162" viewBox="0 0 162 162" fill="none" role="none"><mask id="b" fill="#fff"><path d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z"></path></mask><path stroke="url(#a)" stroke-dasharray="6, 6" stroke-width="2" d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z" mask="url(#b)" style="stroke:url(#a)" transform="translate(-63.992 -25.587)"></path><ellipse cx="8.066" cy="111.597" fill="var(--background-tertiary)" rx="53.677" ry="53.699" transform="matrix(.71707 -.697 .7243 .6895 0 0)"></ellipse><g clip-path="url(#c)" transform="translate(-63.992 -25.587)"><path fill="#9abff5" d="m144.256 137.379 32.906 12.434a4.41 4.41 0 0 1 2.559 5.667l-9.326 24.679a4.41 4.41 0 0 1-5.667 2.559l-8.226-3.108-2.332 6.17c-.466 1.233-.375 1.883-1.609 1.417l-2.253-.527c-.411-.155-.95-.594-1.206-1.161l-4.734-10.484-12.545-4.741a4.41 4.41 0 0 1-2.559-5.667l9.325-24.679a4.41 4.41 0 0 1 5.667-2.559m9.961 29.617 8.227 3.108 3.264-8.638-.498-6.768-4.113-1.555.548 7.258-4.319-1.632zm-12.339-4.663 8.226 3.108 3.264-8.637-.498-6.769-4.113-1.554.548 7.257-4.319-1.632z"></path></g><g clip-path="url(#d)" transform="translate(-63.992 -25.587)"><path fill="#81b0f3" d="M135.35 60.136 86.67 41.654c-3.346-1.27-7.124.428-8.394 3.775L64.414 81.938c-1.27 3.347.428 7.125 3.774 8.395l12.17 4.62-3.465 9.128c-.693 1.826-1.432 2.457.394 3.15l3.014 1.625c.609.231 1.637.274 2.477-.104l15.53-6.983 18.56 7.047c3.346 1.27 7.124-.428 8.395-3.775l13.862-36.51c1.27-3.346-.428-7.124-3.775-8.395M95.261 83.207l-12.17-4.62 4.852-12.779 7.19-7.017 6.085 2.31-7.725 7.51 6.389 2.426zm18.255 6.93-12.17-4.62 4.852-12.778 7.189-7.017 6.085 2.31-7.725 7.51 6.39 2.426z"></path></g><defs><clipPath id="c"><path fill="#fff" d="m198.638 146.586-65.056-24.583-24.583 65.057 65.056 24.582z"></path></clipPath><clipPath id="d"><path fill="#fff" d="m66.438 14.055 96.242 36.54-36.54 96.243-96.243-36.54z"></path></clipPath><linearGradient id="a" x1="97.203" x2="199.995" y1="47.04" y2="152.793" gradientUnits="userSpaceOnUse"><stop stop-color="#086DFC"></stop><stop offset="0.246" stop-color="#2C81FA"></stop><stop offset="0.516" stop-color="#5497F8"></stop><stop offset="0.821" stop-color="#80B0F6"></stop><stop offset="1" stop-color="#9ABFF5"></stop></linearGradient></defs></svg></div><h2>Help improve MDN</h2><fieldset class="feedback"><label>Was this page helpful to you?</label><div class="button-container"><button type="button" class="button primary has-icon yes"><span class="button-wrap"><span class="icon icon-thumbs-up "></span>Yes</span></button><button type="button" class="button primary has-icon no"><span class="button-wrap"><span class="icon icon-thumbs-down "></span>No</span></button></div></fieldset><a class="contribute" href="https://github.com/mdn/translated-content/blob/main/CONTRIBUTING.md" title="This will take you to our contribution guidelines on GitHub." target="_blank" rel="noopener noreferrer">Learn how to contribute</a>.<p class="last-modified-date">This page was last modified on<!-- --> <time dateTime="2024-09-06T04:52:07.000Z">2024年9月6日</time> by<!-- --> <a href="/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals/contributors.txt" rel="nofollow">MDN contributors</a>.</p><div id="on-github" class="on-github"><a href="https://github.com/mdn/translated-content/blob/main/files/zh-cn/learn/html/introduction_to_html/html_text_fundamentals/index.md?plain=1" title="Folder: zh-cn/learn/html/introduction_to_html/html_text_fundamentals (Opens in a new tab)" target="_blank" rel="noopener noreferrer">View this page on GitHub</a> <!-- -->•<!-- --> <a href="https://github.com/mdn/translated-content/issues/new?template=page-report-zh-cn.yml&amp;mdn-url=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FLearn%2FHTML%2FIntroduction_to_HTML%2FHTML_text_fundamentals&amp;metadata=%3C%21--+Do+not+make+changes+below+this+line+--%3E%0A%3Cdetails%3E%0A%3Csummary%3EPage+report+details%3C%2Fsummary%3E%0A%0A*+Folder%3A+%60zh-cn%2Flearn%2Fhtml%2Fintroduction_to_html%2Fhtml_text_fundamentals%60%0A*+MDN+URL%3A+https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FLearn%2FHTML%2FIntroduction_to_HTML%2FHTML_text_fundamentals%0A*+GitHub+URL%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Ftranslated-content%2Fblob%2Fmain%2Ffiles%2Fzh-cn%2Flearn%2Fhtml%2Fintroduction_to_html%2Fhtml_text_fundamentals%2Findex.md%0A*+Last+commit%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Ftranslated-content%2Fcommit%2F21e4db1637c4500a29e8fafa37fd8df4c3c36143%0A*+Document+last+modified%3A+2024-09-06T04%3A52%3A07.000Z%0A%0A%3C%2Fdetails%3E" title="This will take you to GitHub to file a new issue." target="_blank" rel="noopener noreferrer">Report a problem with this content</a></div></div></aside></main></div></div><footer id="nav-footer" class="page-footer"><div class="page-footer-grid"><div class="page-footer-logo-col"><a href="/" class="mdn-footer-logo" aria-label="MDN homepage"><svg width="48" height="17" viewBox="0 0 48 17" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="mdn-footer-logo-svg">MDN logo</title><path d="M20.04 16.512H15.504V10.416C15.504 9.488 15.344 8.824 15.024 8.424C14.72 8.024 14.264 7.824 13.656 7.824C12.92 7.824 12.384 8.064 12.048 8.544C11.728 9.024 11.568 9.64 11.568 10.392V14.184H13.008V16.512H8.472V10.416C8.472 9.488 8.312 8.824 7.992 8.424C7.688 8.024 7.232 7.824 6.624 7.824C5.872 7.824 5.336 8.064 5.016 8.544C4.696 9.024 4.536 9.64 4.536 10.392V14.184H6.6V16.512H0V14.184H1.44V8.04H0.024V5.688H4.536V7.32C5.224 6.088 6.32 5.472 7.824 5.472C8.608 5.472 9.328 5.664 9.984 6.048C10.64 6.432 11.096 7.016 11.352 7.8C11.992 6.248 13.168 5.472 14.88 5.472C15.856 5.472 16.72 5.776 17.472 6.384C18.224 6.992 18.6 7.936 18.6 9.216V14.184H20.04V16.512Z" fill="currentColor"></path><path d="M33.6714 16.512H29.1354V14.496C28.8314 15.12 28.3834 15.656 27.7914 16.104C27.1994 16.536 26.4154 16.752 25.4394 16.752C24.0154 16.752 22.8954 16.264 22.0794 15.288C21.2634 14.312 20.8554 12.984 20.8554 11.304C20.8554 9.688 21.2554 8.312 22.0554 7.176C22.8554 6.04 24.0634 5.472 25.6794 5.472C26.5594 5.472 27.2794 5.648 27.8394 6C28.3994 6.352 28.8314 6.8 29.1354 7.344V2.352H26.9754V0H32.2314V14.184H33.6714V16.512ZM29.1354 11.04V10.776C29.1354 9.88 28.8954 9.184 28.4154 8.688C27.9514 8.176 27.3674 7.92 26.6634 7.92C25.9754 7.92 25.3674 8.176 24.8394 8.688C24.3274 9.2 24.0714 10.008 24.0714 11.112C24.0714 12.152 24.3114 12.944 24.7914 13.488C25.2714 14.032 25.8394 14.304 26.4954 14.304C27.3114 14.304 27.9514 13.96 28.4154 13.272C28.8954 12.584 29.1354 11.84 29.1354 11.04Z" fill="currentColor"></path><path d="M47.9589 16.512H41.9829V14.184H43.4229V10.416C43.4229 9.488 43.2629 8.824 42.9429 8.424C42.6389 8.024 42.1829 7.824 41.5749 7.824C40.8389 7.824 40.2709 8.056 39.8709 8.52C39.4709 8.968 39.2629 9.56 39.2469 10.296V14.184H40.6869V16.512H34.7109V14.184H36.1509V8.04H34.5909V5.688H39.2469V7.344C39.9669 6.096 41.1269 5.472 42.7269 5.472C43.7509 5.472 44.6389 5.776 45.3909 6.384C46.1429 6.992 46.5189 7.936 46.5189 9.216V14.184H47.9589V16.512Z" fill="currentColor"></path></svg></a><p>Your blueprint for a better internet.</p><ul class="social-icons"><li><a href="https://mozilla.social/@mdn" target="_blank" rel="me noopener noreferrer"><span class="icon icon-mastodon"></span><span class="visually-hidden">MDN on Mastodon</span></a></li><li><a href="https://twitter.com/mozdevnet" target="_blank" rel="noopener noreferrer"><span class="icon icon-twitter-x"></span><span class="visually-hidden">MDN on X (formerly Twitter)</span></a></li><li><a href="https://github.com/mdn/" target="_blank" rel="noopener noreferrer"><span class="icon icon-github-mark-small"></span><span class="visually-hidden">MDN on GitHub</span></a></li><li><a href="/en-US/blog/rss.xml" target="_blank"><span class="icon icon-feed"></span><span class="visually-hidden">MDN Blog RSS Feed</span></a></li></ul></div><div class="page-footer-nav-col-1"><h2 class="footer-nav-heading">MDN</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a href="/en-US/about">About</a></li><li class="footer-nav-item"><a href="/en-US/blog/">Blog</a></li><li class="footer-nav-item"><a href="https://www.mozilla.org/en-US/careers/listings/?team=ProdOps" target="_blank" rel="noopener noreferrer">Careers</a></li><li class="footer-nav-item"><a href="/en-US/advertising">Advertise with us</a></li></ul></div><div class="page-footer-nav-col-2"><h2 class="footer-nav-heading">Support</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="https://support.mozilla.org/products/mdn-plus">Product help</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/zh-CN/docs/MDN/Community/Issues">Report an issue</a></li></ul></div><div class="page-footer-nav-col-3"><h2 class="footer-nav-heading">Our communities</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="/en-US/community">MDN Community</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="https://discourse.mozilla.org/c/mdn/236" target="_blank" rel="noopener noreferrer">MDN Forum</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/discord" target="_blank" rel="noopener noreferrer">MDN Chat</a></li></ul></div><div class="page-footer-nav-col-4"><h2 class="footer-nav-heading">Developers</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="/zh-CN/docs/Web">Web Technologies</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/zh-CN/docs/Learn">Learn Web Development</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/zh-CN/plus">MDN Plus</a></li><li class="footer-nav-item"><a href="https://hacks.mozilla.org/" target="_blank" rel="noopener noreferrer">Hacks Blog</a></li></ul></div><div class="page-footer-moz"><a href="https://www.mozilla.org/" class="footer-moz-logo-link" target="_blank" rel="noopener noreferrer"><svg width="112" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="mozilla-footer-logo-svg">Mozilla logo</title><path d="M41.753 14.218c-2.048 0-3.324 1.522-3.324 4.157 0 2.423 1.119 4.286 3.29 4.286 2.082 0 3.447-1.678 3.447-4.347 0-2.826-1.522-4.096-3.413-4.096Zm54.89 7.044c0 .901.437 1.618 1.645 1.618 1.427 0 2.949-1.024 3.044-3.352-.649-.095-1.365-.185-2.02-.185-1.426-.005-2.668.397-2.668 1.92Z" fill="currentColor"></path><path d="M0 0v32h111.908V0H0Zm32.56 25.426h-5.87v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h1.864v3.044h-5.864v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h2.669v3.044H6.642v-3.044h1.863v-7.918H6.642V11.42h5.864v2.11c.839-1.489 2.3-2.39 4.252-2.39 2.02 0 3.878.963 4.566 3.01.778-1.862 2.361-3.01 4.566-3.01 2.512 0 4.812 1.522 4.812 4.84v6.402h1.863v3.044h-.005Zm9.036.307c-4.314 0-7.296-2.635-7.296-7.106 0-4.096 2.484-7.481 7.514-7.481s7.481 3.38 7.481 7.29c0 4.472-3.228 7.297-7.699 7.297Zm22.578-.307H51.942l-.403-2.11 7.7-8.846h-4.376l-.621 2.17-2.888-.313.498-4.907h12.294l.313 2.11-7.767 8.852h4.533l.654-2.172 3.167.308-.872 4.908Zm7.99 0h-4.191v-5.03h4.19v5.03Zm0-8.976h-4.191v-5.03h4.19v5.03Zm2.618 8.976 6.054-21.358h3.945l-6.054 21.358h-3.945Zm8.136 0 6.048-21.358h3.945l-6.054 21.358h-3.939Zm21.486.307c-1.863 0-2.887-1.085-3.072-2.792-.805 1.427-2.232 2.792-4.498 2.792-2.02 0-4.314-1.085-4.314-4.006 0-3.447 3.323-4.253 6.518-4.253.778 0 1.584.034 2.3.124v-.465c0-1.427-.034-3.133-2.3-3.133-.84 0-1.488.061-2.143.402l-.453 1.578-3.195-.34.549-3.224c2.45-.996 3.692-1.27 5.992-1.27 3.01 0 5.556 1.55 5.556 4.75v6.083c0 .805.314 1.085.963 1.085.184 0 .375-.034.587-.095l.034 2.11a5.432 5.432 0 0 1-2.524.654Z" fill="currentColor"></path></svg></a><ul class="footer-moz-list"><li class="footer-moz-item"><a href="https://www.mozilla.org/privacy/websites/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Website Privacy Notice</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/privacy/websites/#cookies" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Cookies</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/about/legal/terms/mozilla" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Legal</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/about/governance/policies/participation/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Community Participation Guidelines</a></li></ul></div><div class="page-footer-legal"><p id="license" class="page-footer-legal-text">Visit<!-- --> <a href="https://www.mozilla.org" target="_blank" rel="noopener noreferrer">Mozilla Corporation’s</a> <!-- -->not-for-profit parent, the<!-- --> <a target="_blank" rel="noopener noreferrer" href="https://foundation.mozilla.org/">Mozilla Foundation</a>.<br/>Portions of this content are ©1998–<!-- -->2024<!-- --> by individual mozilla.org contributors. Content available under<!-- --> <a href="/zh-CN/docs/MDN/Writing_guidelines/Attrib_copyright_license">a Creative Commons license</a>.</p></div></div></footer></div><script type="application/json" id="hydration">{"url":"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals","doc":{"isMarkdown":true,"isTranslated":true,"isActive":true,"flaws":{},"title":"HTML 文本处理基础","mdn_url":"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals","locale":"zh-CN","native":"中文 (简体)","sidebarHTML":"<ol><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web\">新手请从这开始!</a></li><li><details><summary>Web 入门</summary><ol><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web\">Web 入门</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/Installing_basic_software\">安装基础软件</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like\">你的网站会是什么样子?</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/Dealing_with_files\">处理文件</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/HTML_basics\">HTML 基础</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/CSS_basics\">CSS 基础</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics\">JavaScript 基础</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/Publishing_your_website\">发布你的网站</a></li><li><a href=\"/zh-CN/docs/Learn/Getting_started_with_the_web/How_the_Web_works\">万维网是如何工作的</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/HTML\">HTML——构建 Web</a></li><li><details open=\"\"><summary>HTML 介绍</summary><ol><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML\">HTML 简介</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Getting_started\">开始学习 HTML</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML\">“头”里有什么——HTML 元信息</a></li><li><em><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" aria-current=\"page\">HTML 文本处理基础</a></em></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\">创建超链接</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting\">文本格式进阶</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure\">文档与网站架构</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML\">HTML 调试</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter\">标记信件</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content\">构建网页内容</a></li></ol></details></li><li><details><summary>多媒体与嵌入</summary><ol><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding\">多媒体与嵌入</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML\">HTML 中的图片</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content\">视频和音频内容</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies\">从 object 到 iframe——其他嵌入技术</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web\">向 web 中添加矢量图形</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images\">响应式图片</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page\">Mozilla 欢迎页面</a></li></ol></details></li><li><details><summary>HTML 表格</summary><ol><li><a href=\"/zh-CN/docs/Learn/HTML/Tables\">HTML 表格</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Tables/Basics\">HTML 表格基础</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Tables/Advanced\">HTML 表格进阶特性和无障碍</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Tables/Structuring_planet_data\">作业:构建行星数据</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/CSS\">CSS——设计 Web</a></li><li><details><summary>CSS 第一步</summary><ol><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps\">CSS 入门概述</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps/What_is_CSS\">什么是 CSS?</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps/Getting_started\">让我们开始 CSS 的学习之旅</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps/How_CSS_is_structured\">CSS 的组成</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps/How_CSS_works\">CSS 如何运行</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/First_steps/Styling_a_biography_page\">运用你的新知识</a></li></ol></details></li><li><details><summary>CSS 基础</summary><ol><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks\">CSS 构建</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Selectors\">CSS 选择器</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors\">类型、类和 ID 选择器</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors\">属性选择器</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements\">伪类和伪元素</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Combinators\">关系选择器</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance\">层叠、优先级与继承</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_layers\">层叠层</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/The_box_model\">盒模型</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders\">背景与边框</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Handling_different_text_directions\">处理不同方向的文本</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Overflowing_content\">溢出的内容</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Values_and_units\">CSS 值和单位</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS\">在 CSS 中调整大小</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Images_media_form_elements\">图像、媒体和表单元素</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Styling_tables\">样式化表格</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Advanced_styling_effects\">高级区块效果</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Debugging_CSS\">调试 CSS</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Organizing\">组织 CSS</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension\">基本的 CSS 理解</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper\">创建精美的信纸</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Building_blocks/A_cool_looking_box\">一个漂亮的盒子</a></li></ol></details></li><li><details><summary>样式化文本</summary><ol><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text\">为文本添加样式(样式化文本)</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text/Fundamentals\">基本文本和字体样式</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text/Styling_lists\">为列表添加样式</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text/Styling_links\">样式化链接</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text/Web_fonts\">Web 字体</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Styling_text/Typesetting_a_homepage\">作业:排版社区大学首页</a></li></ol></details></li><li><details><summary>CSS 排版</summary><ol><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout\">CSS 布局</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Introduction\">介绍 CSS 布局</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Normal_Flow\">常规流布局</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox\">弹性盒子</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Grids\">网格</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Floats\">浮动</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Positioning\">定位</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Multiple-column_Layout\">多列布局</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Responsive_Design\">响应式设计</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Media_queries\">媒体查询入门指南</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods\">传统的布局方法</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers\">支持旧浏览器</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension\">作业:基本布局理解</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/JavaScript\">JavaScript——用户端动态脚本</a></li><li><details><summary>JavaScript 第一步</summary><ol><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps\">JavaScript 第一步</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript\">什么是 JavaScript?</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/A_first_splash\">JavaScript 初体验</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/What_went_wrong\">查找并解决 JavaScript 代码的错误</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Variables\">如何存储你需要的信息——变量</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Math\">JavaScript 中的基础数学 — 数字和操作符</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Strings\">文本处理——JavaScript 中的字符串</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods\">有用的字符串方法</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Arrays\">数组</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/First_steps/Silly_story_generator\">笑话生成器</a></li></ol></details></li><li><details><summary>JavaScript 基础</summary><ol><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks\">创建 JavaScript 代码块</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/conditionals\">在代码中做决定——条件语句</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Looping_code\">循环吧,代码</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Functions\">函数——可复用的代码块</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Build_your_own_function\">创建你自己的函数</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Return_values\">函数返回值</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Events\">事件介绍</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Event_bubbling\">事件冒泡</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Building_blocks/Image_gallery\">图片库</a></li></ol></details></li><li><details><summary>JavaScript 对象介绍</summary><ol><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects\">JavaScript 对象入门</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Basics\">JavaScript 对象基础</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes\">对象原型</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Object-oriented_programming\">面向对象编程基本概念</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Classes_in_JavaScript\">JavaScript 中的类</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/JSON\">使用 JSON</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Object_building_practice\">实践对象构造</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features\">为“弹球”示例添加新功能</a></li></ol></details></li><li><details><summary>异步 JavaScript</summary><ol><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous\">异步 JavaScript</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous/Introducing\">异步 JavaScript 简介</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous/Promises\">如何使用 Promise</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API\">如何实现基于 Promise 的 API</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous/Introducing_workers\">workers 简介</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Asynchronous/Sequencing_animations\">序列动画</a></li></ol></details></li><li><details><summary>客户端 Web API</summary><ol><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs\">客户端 Web API</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Introduction\">Web API 简介</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents\">操作文档</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data\">从服务器获取数据</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs\">第三方 API</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics\">绘图</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs\">视频和音频 API</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage\">客户端存储</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Forms\">Web 表单——与用户数据打交道</a></li><li><details><summary>Web 表单核心</summary><ol><li><a href=\"/zh-CN/docs/Learn/Forms\">Web 表单构建块</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Your_first_form\">创建我的第一个表单</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/How_to_structure_a_web_form\">如何构建 HTML 表单</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Basic_native_form_controls\">原生表单部件</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/HTML5_input_types\">HTML5 的输入(input)类型</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Other_form_controls\">其他表单控件</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Styling_web_forms\">样式化 Web 表单</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Advanced_form_styling\">表单样式化进阶</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/UI_pseudo-classes\">UI 伪类</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Form_validation\">表单数据校验</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Sending_and_retrieving_form_data\">发送表单数据</a></li></ol></details></li><li><details><summary>Web 表单进阶</summary><ol><li><a href=\"/zh-CN/docs/Learn/Forms/How_to_build_custom_form_controls\">如何构建自定义表单控件</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Sending_forms_through_JavaScript\">使用 JavaScript 发送表单</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/Property_compatibility_table_for_form_controls\">表单控件兼容性列表</a></li><li><a href=\"/zh-CN/docs/Learn/Forms/HTML_forms_in_legacy_browsers\">旧式浏览器中的 HTML 表单</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Accessibility\">无障碍——使每个人都能使用 Web</a></li><li><details><summary>无障碍指南</summary><ol><li><a href=\"/zh-CN/docs/Learn/Accessibility\">无障碍</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/What_is_accessibility\">什么是无障碍?</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/HTML\">HTML:无障碍的良好基础</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/CSS_and_JavaScript\">CSS 和 JavaScript 无障碍最佳实践</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/WAI-ARIA_basics\">WAI-ARIA 基础</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/Multimedia\">多媒体无障碍</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/Mobile\">移动端无障碍</a></li><li><a href=\"/zh-CN/docs/Learn/Accessibility/Accessibility_troubleshooting\">测验:无障碍疑难解答</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Performance\">性能——使网站快速响应</a></li><li><details><summary>性能指南</summary><ol><li><a href=\"/zh-CN/docs/Learn/Performance\">Web 性能</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/why_web_performance\">Web 性能的重要性</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/What_is_web_performance\">什么是 web 性能?</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/Perceived_performance\">感知性能</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/Measuring_performance\">测量性能</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/Multimedia\">多媒体:图片</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/video\">多媒体:视频</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/JavaScript\">JavaScript 性能优化</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/HTML\">HTML 性能优化</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/CSS\">CSS 性能优化</a></li><li><a href=\"/zh-CN/docs/Learn/Performance/business_case_for_performance\">web 性能的商业案例</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/MathML\">MathML——使用 MathML 语言撰写数学表达式</a></li><li><details><summary>MathML 第一步</summary><ol><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps\">MathML 入门概述</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Getting_started\">MathML 使用入门</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Text_containers\">MathML 文本容器</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Fractions_and_roots\">MathML 分数和根号</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Scripts\">MathML 附加符号</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Tables\">MathML 表格</a></li><li><a href=\"/zh-CN/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas\">三个著名的数学公式</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/../Games\">游戏——开发 Web 游戏</a></li><li><details><summary>指南和基础教程</summary><ol><li><a href=\"/zh-CN/docs/Games/Introduction\">Web 游戏开发简介</a></li><li><a href=\"/zh-CN/docs/Games/Techniques\">游戏开发技术</a></li><li><a href=\"/zh-CN/docs/Games/Tutorials\">教程</a></li><li><a href=\"/zh-CN/docs/Games/Publishing_games\">发布游戏</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Tools_and_testing\">工具与测试</a></li><li><details><summary>客户端 web 开发工具</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools\">理解客户端 web 开发工具</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview\">客户端工具概述</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line\">命令行速成课</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management\">软件包管理基础</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain\">介绍完整的工具链</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment\">部署我们的应用</a></li></ol></details></li><li><details><summary>客户端框架介绍</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction\">客户端框架介绍</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features\">框架的主要特性</a></li></ol></details></li><li><details><summary>React</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started\">React 入门</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning\">开始我们的 React 待办清单</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components\">组件化我们的 React App</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state\">React interactivity: Events and state</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering\">React interactivity: Editing, filtering, conditional rendering</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility\">Accessibility in React</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources\">React resources</a></li></ol></details></li><li><details><summary>Ember</summary><ol><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started\">Getting started with Ember</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization\">Ember app structure and componentization</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state\">Ember interactivity: Events, classes and state</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer\">Ember Interactivity: Footer functionality, conditional rendering</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing\">Routing in Ember</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources\">Ember resources and troubleshooting</a></li></ol></details></li><li><details><summary>Vue</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started\">开始使用 Vue</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component\">创建第一个 Vue 组件</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists\">渲染 Vue 组件列表</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models\">使用 Vue event、method 和 model 添加一个新的 todo 表单</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling\">使用 CSS 为 Vue 组件添加样式</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties\">Vue 中的计算属性</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering\">Vue 中的条件渲染:编辑现有的待办事项</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management\">使用 Vue 模板引用进行焦点管理</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources\">Vue 资源</a></li></ol></details></li><li><details><summary>Svelte</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started\">Svelte 入门</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning\">开始编写我们的 Svelte 待办事项列表应用程序</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props\">Svelte 中的动态行为:变量和属性</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components\">将我们的 Svelte 应用组件化</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility\">Svelte 进阶:响应式、生命周期以及无障碍</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores\">使用 Svelte store</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript\">Svelte 对 TypeScript 的支持</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next\">部署以及下一步</a></li></ol></details></li><li><details><summary>Angular</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started\">Angular 入门</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning\">Beginning our Angular todo list app</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling\">Styling our Angular app</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component\">Creating an item component</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering\">Filtering our to-do items</a></li><li><a class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building\">Building Angular applications and further resources</a></li></ol></details></li><li><details><summary>Git 和 GitHub</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/GitHub\">Git 和 GitHub</a></li></ol></details></li><li><details><summary>跨浏览器测试</summary><ol><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing\">跨浏览器测试</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction\">跨浏览器测试介绍</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies\">测试的策略</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS\">处理常见的 HTML 和 CSS 问题</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript\">处理常见的 JavaScript 问题</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility\">解决常见的无障碍问题</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection\">实现特性检测</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing\">自动化测试简介</a></li><li><a href=\"/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment\">搭建自己的自动化测试环境</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Server-side\">服务端网页编程</a></li><li><details><summary>第一步</summary><ol><li><a href=\"/zh-CN/docs/Learn/Server-side/First_steps\">服务端网站编程的第一步</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/First_steps/Introduction\">服务端编程介绍</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/First_steps/Client-Server_overview\">客户端服务端交互概述</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/First_steps/Web_frameworks\">服务端 web 框架</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/First_steps/Website_security\">站点安全</a></li></ol></details></li><li><details><summary>Django Web 框架(Python)</summary><ol><li><a href=\"/zh-CN/docs/Learn/Server-side/Django\">Django Web 框架 (python)</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Introduction\">Django 介绍</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/development_environment\">设置 Django 开发环境</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Tutorial_local_library_website\">Django Tutorial: The Local Library website</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/skeleton_website\">Django Tutorial Part 2: 创建网站的地基</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Models\">Django Tutorial Part 3: 使用模型</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Admin_site\">Django Tutorial Part 4: Django 管理员站点</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Home_page\">Django 教程 5:主页构建</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Generic_views\">Django 教程 6: 通用列表和详细信息视图</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Sessions\">Django 教程 7: 会话框架</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Authentication\">Django 教程 8:用户授权与许可</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Forms\">Django 教程 9: 使用表单</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Testing\">Django 教程 10: 测试 Django 网页应用</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/Deployment\">Django 教程 11:部署 Django 到生产环境</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/web_application_security\">Django Web 应用安全</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Django/django_assessment_blog\">评估:DIY Django 微博客</a></li></ol></details></li><li><details><summary>Express Web 框架(Node.js/JavaScript)</summary><ol><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs\">Express Web 框架(Node.js/JavaScript)</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/Introduction\">Express/Node 入门</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/development_environment\">设置 Node 开发环境</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website\">Express 教程:本地图书馆网站</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/skeleton_website\">Express 教程 2:创建站点框架</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/mongoose\">Express 教程 3:使用数据库 (Mongoose)</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/routes\">Express 教程 4:路由和控制器</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/Displaying_data\">Express 教程 5: 呈现图书馆数据</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/forms\">Express 教程 6: 使用表单</a></li><li><a href=\"/zh-CN/docs/Learn/Server-side/Express_Nodejs/deployment\">Express 教程 7: 部署到生产环境</a></li></ol></details></li><li class=\"section\"><a href=\"/zh-CN/docs/Learn/Common_questions\">更多资源</a></li><li><details><summary>常见问题</summary><ol><li><a href=\"/zh-CN/docs/Learn/Common_questions\">常见问题</a></li><li><a href=\"/zh-CN/docs/Learn/HTML/Howto\">使用 HTML 解决常见问题</a></li><li><a href=\"/zh-CN/docs/Learn/CSS/Howto\">解决常见的 CSS 问题</a></li><li><a href=\"/zh-CN/docs/Learn/JavaScript/Howto\">解决 JavaSctript 代码的常见问题</a></li><li><a href=\"/zh-CN/docs/Learn/Common_questions/Web_mechanics\">Web 机制</a></li><li><a href=\"/zh-CN/docs/Learn/Common_questions/Tools_and_setup\">工具和安装</a></li><li><a href=\"/zh-CN/docs/Learn/Common_questions/Design_and_accessibility\">设计与无障碍</a></li></ol></details></li></ol>","sidebarMacro":"LearnSidebar","body":[{"type":"prose","value":{"id":null,"title":null,"isH3":false,"content":"<ul class=\"prev-next\">\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML\"><span class=\"button-wrap\"> 上一页 </span></a></li>\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML\"><span class=\"button-wrap\"> 概述:HTML 简介</span></a></li>\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\"><span class=\"button-wrap\"> 下一页 </span></a></li>\n</ul>\n<p>HTML 的主要工作之一是赋予文本结构,使浏览器能够按照开发者的意图显示 HTML 文档。本文解释了 <a href=\"/zh-CN/docs/Glossary/HTML\">HTML</a> 如何通过添加标题和段落、强调单词、创建列表等方式来构造文本。</p>\n<figure class=\"table-container\"><table>\n <tbody>\n <tr>\n <th scope=\"row\">前提:</th>\n <td>\n 阅读\n <a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Getting_started\">开始学习 HTML</a>,了解基本的 HTML 知识。\n </td>\n </tr>\n <tr>\n <th scope=\"row\">目标:</th>\n <td>学习如何用标记(段落、标题、列表、强调、引用等)来建立页面的基本文本结构和文本内容。</td>\n </tr>\n </tbody>\n</table></figure>"}},{"type":"prose","value":{"id":"基础:标题和段落","title":"基础:标题和段落","isH3":false,"content":"<p>大部分结构化文本由标题和段落组成。不管是小说、报刊、教科书还是杂志等。</p>\n<p>\n <img src=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals/newspaper_small.jpg\" alt=\"一个报纸封面的例子,显示了顶级标题、副标题和段落的使用。\" width=\"600\" height=\"376\" loading=\"lazy\">\n</p>\n<p>内容结构化会使读者的阅读体验更轻松,更愉快。</p>\n<p>在 HTML 中,每个段落是通过 <a href=\"/zh-CN/docs/Web/HTML/Element/p\"><code>&lt;p&gt;</code></a> 元素标签进行定义的,比如下面这样:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;p&gt;我是一个段落,千真万确。&lt;/p&gt;\n</code></pre></div>\n<p>每个标题(Heading)都必须被包裹在一个标题元素中:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;h1&gt;我是文章的标题&lt;/h1&gt;\n</code></pre></div>\n<p>一共有六种标题元素标签——<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h1</a>、<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h2</a>、<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h3</a>、<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h4</a>、<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h5</a> 和 <a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h6</a>。每个元素代表文档中不同级别的内容:<code>&lt;h1&gt;</code> 表示主标题,<code>&lt;h2&gt;</code> 表示二级子标题,<code>&lt;h3&gt;</code> 表示三级子标题,依此类推。</p>"}},{"type":"prose","value":{"id":"编辑结构层次","title":"编辑结构层次","isH3":true,"content":"<p>这里举一个例子。在一个故事中,<code>&lt;h1&gt;</code> 表示故事的名字,<code>&lt;h2&gt;</code> 表示每个章节的标题,<code>&lt;h3&gt;</code> 表示每个章节下的子标题,以此类推。</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;h1&gt;三国演义&lt;/h1&gt;\n\n&lt;p&gt;罗贯中&lt;/p&gt;\n\n&lt;h2&gt;第一回 宴桃园豪杰三结义 斩黄巾英雄首立功&lt;/h2&gt;\n\n&lt;p&gt;\n 话说天下大势,分久必合,合久必分。周末七国分争,并入于秦。及秦灭之后,楚、汉分争,又并入于汉……\n&lt;/p&gt;\n\n&lt;h2&gt;第二回 张翼德怒鞭督邮 何国舅谋诛宦竖&lt;/h2&gt;\n\n&lt;p&gt;\n 且说董卓字仲颖,陇西临洮人也,官拜河东太守,自来骄傲。当日怠慢了玄德,张飞性发,便欲杀之……\n&lt;/p&gt;\n\n&lt;h3&gt;却说张飞&lt;/h3&gt;\n\n&lt;p&gt;\n 却说张飞饮了数杯闷酒,乘马从馆驿前过,见五六十个老人,皆在门前痛哭。飞问其故,众老人答曰:“督邮逼勒县吏,欲害刘公;我等皆来苦告,不得放入,反遭把门人赶打!”……\n&lt;/p&gt;\n</code></pre></div>\n<p>所涉及的元素具体代表什么,完全取决于作者编辑的内容,只要层次结构是合理的。在创建此类结构时,只需要记住一些最佳实践:</p>\n<ul>\n <li>最好只对每个页面使用一次 <code>&lt;h1&gt;</code>——这是顶级标题,所有其他标题位于层次结构中的下方。</li>\n <li>请确保在层次结构中以正确的顺序使用标题。不要使用 <code>&lt;h3&gt;</code> 来表示副标题,后面再跟 <code>&lt;h2&gt;</code> 来表示二级副标题——这是没有意义的,会导致奇怪的结果。</li>\n <li>在现有的六个标题层次中,除非觉得有必要,否则应该争取每页使用不超过三个。有很多层次的文件(例如,深层次的标题层次)会变得笨重,难以浏览。在这种情况下,如果可能的话,建议将内容分散到多个页面。</li>\n</ul>"}},{"type":"prose","value":{"id":"为什么我们需要结构化?","title":"为什么我们需要结构化?","isH3":true,"content":"<p>回答这个问题前,让我们先来看一段<a href=\"https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-start.html\" class=\"external\" target=\"_blank\">文档示例</a>——并从运行这段文档示例(美味的豆沙食谱)开始。你应该在本地机器上保存一份这个文件的副本,因为在以后的练习中会需要它。这个文件的主体目前包含了多条内容。它们没有任何标记,但都用换行符隔开(按回车键进入下一行)。</p>\n<p>然而,当在浏览器中打开文档时,会看到文本显示为一整块!</p>\n<p>\n <img src=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals/screen_shot_2017-03-29_at_09.20.35.png\" alt=\"显示了一堵没有格式的“文字墙”的网页,因为页面上没有任何标记元素。\" width=\"600\" height=\"377\" loading=\"lazy\">\n</p>\n<p>这是因为没有元素给内容结构,所以浏览器不知道什么是标题,什么是段落。此外:</p>\n<ul>\n <li>用户在阅读网页时,往往会快速浏览以查找相关内容,经常只是阅读开头的标题(我们通常在一个网页上会<a href=\"https://www.nngroup.com/articles/how-long-do-users-stay-on-web-pages/\" class=\"external\" target=\"_blank\">花费很少的时间</a>)。如果用户不能在几秒内看到一些有用的内容,他们很可能会感到沮丧并离开。</li>\n <li>对网页建立索引的搜索引擎将标题的内容视为影响网页搜索排名的重要关键字。没有标题,你的网页在<a href=\"/zh-CN/docs/Glossary/SEO\">搜索引擎优化</a>方面效果不佳。</li>\n <li>严重视力障碍者通常不会阅读网页;他们用听力来代替。完成这项工作的软件叫做<a href=\"https://zh.wikipedia.org/wiki/%E8%9E%A2%E5%B9%95%E9%96%B1%E8%AE%80%E5%99%A8\" class=\"external\" target=\"_blank\">屏幕阅读器</a>。该软件提供了快速访问给定文本内容的方法。在使用的各种技术中,它们通过朗读标题来提供文档的概述,让用户能快速找到他们需要的信息。如果标题不可用,用户将不得不听到整个文档被大声朗读。</li>\n <li>使用 <a href=\"/zh-CN/docs/Glossary/CSS\">CSS</a> 样式化内容,或者使用 <a href=\"/zh-CN/docs/Glossary/JavaScript\">JavaScript</a> 做一些有趣的事情,你需要包含相关内容的元素,使得 CSS / JavaScript 可以有效地定位它。</li>\n</ul>\n<p>因此,我们需要给我们的内容进行结构性标记。</p>"}},{"type":"prose","value":{"id":"主动学习:编辑我们的内容结构","title":"主动学习:编辑我们的内容结构","isH3":true,"content":"<p>让我们直接进入一个运行实例。在下面的示例中,向<em>可编辑代码</em>字段中的原始文本添加元素,使其在<em>实时输出</em>字段中显示为标题和两个段落。</p>\n<p>如果犯了错误,你可以使用<em>重置</em>按钮进行重置。如果你卡住了,请按<em>显示答案</em>按钮以查看答案。</p>\n<div class=\"code-example\"><pre class=\"brush: html hidden notranslate\"><code>&lt;h2&gt;实时输出&lt;/h2&gt;\n\n&lt;div class=\"output\" style=\"min-height: 50px;\"&gt;&lt;/div&gt;\n\n&lt;h2&gt;可编辑代码&lt;/h2&gt;\n&lt;p class=\"a11y-label\"&gt;\n 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\\t'&lt;/code&gt;\n&lt;/p&gt;\n\n&lt;textarea id=\"code\" class=\"input\" style=\"min-height: 100px; width: 95%\"&gt;\n静夜思 床前明月光 疑是地上霜 举头望明月 低头思故乡\n&lt;/textarea&gt;\n\n&lt;div class=\"playable-buttons\"&gt;\n &lt;input id=\"reset\" type=\"button\" value=\"重置\" /&gt;\n &lt;input id=\"solution\" type=\"button\" value=\"显示答案\" /&gt;\n&lt;/div&gt;\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: css hidden notranslate\"><code>html {\n font-family: sans-serif;\n}\n\nh2 {\n font-size: 16px;\n}\n\n.a11y-label {\n margin: 0;\n text-align: right;\n font-size: 0.7rem;\n width: 98%;\n}\n\nbody {\n margin: 10px;\n background: #f5f9fa;\n}\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: js hidden notranslate\"><code>const textarea = document.getElementById(\"code\");\nconst reset = document.getElementById(\"reset\");\nconst solution = document.getElementById(\"solution\");\nconst output = document.querySelector(\".output\");\nconst code = textarea.value;\nlet userEntry = textarea.value;\n\nfunction updateCode() {\n output.innerHTML = textarea.value;\n}\n\nconst htmlSolution = `&lt;h1&gt;静夜思&lt;/h1&gt;\n&lt;p&gt;床前明月光 疑是地上霜&lt;/p&gt;\n&lt;p&gt;举头望明月 低头思故乡&lt;/p&gt;`;\n\nlet solutionEntry = htmlSolution;\n\nreset.addEventListener(\"click\", () =&gt; {\n textarea.value = code;\n userEntry = textarea.value;\n solutionEntry = htmlSolution;\n solution.value = \"显示答案\";\n updateCode();\n});\n\nsolution.addEventListener(\"click\", () =&gt; {\n if (solution.value === \"显示答案\") {\n textarea.value = solutionEntry;\n solution.value = \"隐藏答案\";\n } else {\n textarea.value = userEntry;\n solution.value = \"显示答案\";\n }\n updateCode();\n});\n\ntextarea.addEventListener(\"input\", updateCode);\nwindow.addEventListener(\"load\", updateCode);\n\n// Stop tab key tabbing out of textarea and\n// make it write a tab at the caret position instead\ntextarea.onkeydown = (e) =&gt; {\n if (e.code === \"Tab\") {\n e.preventDefault();\n insertAtCaret(\"\\t\");\n }\n\n if (e.code === \"Escape\") {\n textarea.blur();\n }\n};\n\nfunction insertAtCaret(text) {\n const scrollPos = textarea.scrollTop;\n let caretPos = textarea.selectionStart;\n\n const front = textarea.value.substring(0, caretPos);\n const back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length,\n );\n textarea.value = front + text + back;\n caretPos += text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n}\n\n// Update the saved userCode every time the user updates the text area code\ntextarea.onkeyup = function () {\n // We only want to save the state when the user code is being shown,\n // not the solution, so that solution is not saved over the user code\n if (solution.value === \"显示答案\") {\n userEntry = textarea.value;\n } else {\n solutionEntry = textarea.value;\n }\n\n updateCode();\n};\n</code></pre></div><div class=\"code-example\"><div class=\"example-header\"></div><iframe class=\"sample-code-frame\" title=\"主动学习:编辑我们的内容结构 sample\" id=\"frame_主动学习:编辑我们的内容结构\" width=\"700\" height=\"400\" src=\"about:blank\" data-live-path=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" data-live-id=\"主动学习:编辑我们的内容结构\" sandbox=\"allow-same-origin allow-scripts\" loading=\"lazy\"></iframe></div>"}},{"type":"prose","value":{"id":"为什么我们需要语义?","title":"为什么我们需要语义?","isH3":true,"content":"<p>在我们身边的任何地方都要依赖语义——我们依靠以前的经验来告诉我们一个日常物品的功能是什么;当我们看到某个东西时,我们知道它的功能是什么。举个例子,我们知道红色交通灯表示“停止”,绿色交通灯表示“通行”。如果运用了错误的语义,事情会迅速地变得非常棘手(难道有某个国家使用红色代表通行?我不希望如此)</p>\n<p>同样的道理,我们需要确保使用了正确的元素来给予内容正确的含义、作用以及外形。在这里,<a href=\"/zh-CN/docs/Web/HTML/Element/Heading_Elements\">h1</a> 元素也是一个语义元素,它所包裹的文本具有“页面上的顶级标题”的作用(或意义)。</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;h1&gt;这是一个顶级标题&lt;/h1&gt;\n</code></pre></div>\n<p>一般来说,浏览器会给它一个更大的字形来让它看上去像个标题(虽然也可以使用 CSS 让它变成任何你想要的样式)。更重要的是,它的语义值将以多种方式被使用,比如通过上文提到过的搜索引擎和屏幕阅读器。</p>\n<p>在另一方面,你可以让任一元素看起来像一个顶级标题,考虑如下:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;span style=\"font-size: 32px; margin: 21px 0; display: block;\"\n &gt;这是顶级标题吗?&lt;/span\n&gt;\n</code></pre></div>\n<p>这是一个 <a href=\"/zh-CN/docs/Web/HTML/Element/span\"><code>&lt;span&gt;</code></a> 元素,它没有语义。当想要对它用 CSS(或者 JS)时,可以用它包裹内容,且不附加任何额外的意义(在未来的课程中你会发现更多这类元素)。我们已经对它使用了 CSS 来让它看起来像一个顶级标题。然而,由于它没有语义值,所以它不会有任何上文提到的帮助。最好的方法是使用相关的 HTML 元素来标记这个项目。</p>"}},{"type":"prose","value":{"id":"列表","title":"列表","isH3":false,"content":"<p>现在让我们把注意力转向列表。在生活中,列表无处不在——从你的购物清单到你每天下意识地遵循的方向列表,再到你在这些教程中遵循的指令列表!在 Web 上,有三种类型的列表:无序列表、有序列表和描述列表。</p>\n<p>无序列表和有序列表非常常见,将在本节介绍。描述列表不太常见,将在<a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting\">文本格式进阶</a>中介绍。</p>"}},{"type":"prose","value":{"id":"无序列表","title":"无序列表","isH3":true,"content":"<p>无序列表用于标记列表项目顺序无关紧要的列表——让我们以购物清单为例。</p>\n<pre class=\"brush: plain notranslate\">豆浆\n油条\n豆汁\n焦圈\n</pre>\n<p>每份无序的清单从 <a href=\"/zh-CN/docs/Web/HTML/Element/ul\"><code>&lt;ul&gt;</code></a> 元素开始,需要包裹清单上所有被列出的项目:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;ul&gt;\n 豆浆\n 油条\n 豆汁\n 焦圈\n&lt;/ul&gt;\n</code></pre></div>\n<p>然后就是用 <a href=\"/zh-CN/docs/Web/HTML/Element/li\"><code>&lt;li&gt;</code></a> 元素把每个列出的项目单独包裹起来:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;ul&gt;\n &lt;li&gt;豆浆&lt;/li&gt;\n &lt;li&gt;油条&lt;/li&gt;\n &lt;li&gt;豆汁&lt;/li&gt;\n &lt;li&gt;焦圈&lt;/li&gt;\n&lt;/ul&gt;\n</code></pre></div>\n<h4 id=\"主动学习:标记无序列表\">主动学习:标记无序列表</h4>\n<p>尝试编辑下面的示例来创建一个 HTML 无序列表。</p>\n<div class=\"code-example\"><pre class=\"brush: html hidden notranslate\"><code>&lt;h2&gt;实时输出&lt;/h2&gt;\n\n&lt;div class=\"output\" style=\"min-height: 50px;\"&gt;&lt;/div&gt;\n\n&lt;h2&gt;可编辑代码&lt;/h2&gt;\n&lt;p class=\"a11y-label\"&gt;\n 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\\t'&lt;/code&gt;\n&lt;/p&gt;\n\n&lt;textarea id=\"code\" class=\"input\" style=\"min-height: 100px; width: 95%\"&gt;\n豆浆\n油条\n豆汁\n焦圈\n&lt;/textarea&gt;\n\n&lt;div class=\"playable-buttons\"&gt;\n &lt;input id=\"reset\" type=\"button\" value=\"重置\" /&gt;\n &lt;input id=\"solution\" type=\"button\" value=\"显示答案\" /&gt;\n&lt;/div&gt;\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: css hidden notranslate\"><code>html {\n font-family: sans-serif;\n}\n\nh2 {\n font-size: 16px;\n}\n\n.a11y-label {\n margin: 0;\n text-align: right;\n font-size: 0.7rem;\n width: 98%;\n}\n\nbody {\n margin: 10px;\n background: #f5f9fa;\n}\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: js hidden notranslate\"><code>const textarea = document.getElementById(\"code\");\nconst reset = document.getElementById(\"reset\");\nconst solution = document.getElementById(\"solution\");\nconst output = document.querySelector(\".output\");\nconst code = textarea.value;\nlet userEntry = textarea.value;\n\nfunction updateCode() {\n output.innerHTML = textarea.value;\n}\n\nconst htmlSolution =\n \"&lt;ul&gt;\\n&lt;li&gt;豆浆&lt;/li&gt;\\n&lt;li&gt;油条&lt;/li&gt;\\n&lt;li&gt;豆汁&lt;/li&gt;\\n&lt;li&gt;焦圈&lt;/li&gt;\\n&lt;/ul&gt;\";\nlet solutionEntry = htmlSolution;\n\nreset.addEventListener(\"click\", () =&gt; {\n textarea.value = code;\n userEntry = textarea.value;\n solutionEntry = htmlSolution;\n solution.value = \"显示答案\";\n updateCode();\n});\n\nsolution.addEventListener(\"click\", () =&gt; {\n if (solution.value === \"显示答案\") {\n textarea.value = solutionEntry;\n solution.value = \"隐藏答案\";\n } else {\n textarea.value = userEntry;\n solution.value = \"显示答案\";\n }\n updateCode();\n});\n\ntextarea.addEventListener(\"input\", updateCode);\nwindow.addEventListener(\"load\", updateCode);\n\n// stop tab key tabbing out of textarea and\n// make it write a tab at the caret position instead\n\ntextarea.onkeydown = (e) =&gt; {\n if (e.code === \"Tab\") {\n e.preventDefault();\n insertAtCaret(\"\\t\");\n }\n\n if (e.code === \"Escape\") {\n textarea.blur();\n }\n};\n\nfunction insertAtCaret(text) {\n const scrollPos = textarea.scrollTop;\n let caretPos = textarea.selectionStart;\n\n const front = textarea.value.substring(0, caretPos);\n const back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length,\n );\n textarea.value = front + text + back;\n caretPos += text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n}\n\n// Update the saved userCode every time the user updates the text area code\ntextarea.onkeyup = () =&gt; {\n // We only want to save the state when the user code is being shown,\n // not the solution, so that solution is not saved over the user code\n if (solution.value === \"显示答案\") {\n userEntry = textarea.value;\n } else {\n solutionEntry = textarea.value;\n }\n\n updateCode();\n};\n</code></pre></div><div class=\"code-example\"><div class=\"example-header\"></div><iframe class=\"sample-code-frame\" title=\"主动学习:标记无序列表 sample\" id=\"frame_主动学习:标记无序列表\" width=\"700\" height=\"400\" src=\"about:blank\" data-live-path=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" data-live-id=\"主动学习:标记无序列表\" sandbox=\"allow-same-origin allow-scripts\" loading=\"lazy\"></iframe></div>"}},{"type":"prose","value":{"id":"有序列表","title":"有序列表","isH3":true,"content":"<p>有序列表需要按照项目的顺序列出来——让我们以一组方向为例:</p>\n<pre class=\"brush: plain notranslate\">沿这条路走到头\n右转\n直行穿过第一个十字路口\n在第三个十字路口处左转\n继续走 300 米,学校就在你的右手边\n</pre>\n<p>这个标记的结构和无序列表一样,除了需要用 <a href=\"/zh-CN/docs/Web/HTML/Element/ol\"><code>&lt;ol&gt;</code></a> 元素将所有项目包裹,而不是 <code>&lt;ul&gt;</code>:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;ol&gt;\n &lt;li&gt;沿这条路走到头&lt;/li&gt;\n &lt;li&gt;右转&lt;/li&gt;\n &lt;li&gt;直行穿过第一个十字路口&lt;/li&gt;\n &lt;li&gt;在第三个十字路口处左转&lt;/li&gt;\n &lt;li&gt;继续走 300 米,学校就在你的右手边&lt;/li&gt;\n&lt;/ol&gt;\n</code></pre></div>\n<h4 id=\"主动学习:标记有序列表\">主动学习:标记有序列表</h4>\n<p>尝试编辑下面的示例来创建一个 HTML 有序列表:</p>\n<div class=\"code-example\"><pre class=\"brush: html hidden notranslate\"><code>&lt;h2&gt;实时输出&lt;/h2&gt;\n\n&lt;div class=\"output\" style=\"min-height: 50px;\"&gt;&lt;/div&gt;\n\n&lt;h2&gt;可编辑代码&lt;/h2&gt;\n&lt;p class=\"a11y-label\"&gt;\n 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\\t'&lt;/code&gt;\n&lt;/p&gt;\n\n&lt;textarea id=\"code\" class=\"input\" style=\"min-height: 200px; width: 95%\"&gt;\n沿这条路走到头\n右转\n直行穿过第一个十字路口\n在第三个十字路口处左转\n继续走 300 米,学校就在你的右手边\n&lt;/textarea&gt;\n\n&lt;div class=\"playable-buttons\"&gt;\n &lt;input id=\"reset\" type=\"button\" value=\"重置\" /&gt;\n &lt;input id=\"solution\" type=\"button\" value=\"显示答案\" /&gt;\n&lt;/div&gt;\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: css hidden notranslate\"><code>html {\n font-family: sans-serif;\n}\n\nh2 {\n font-size: 16px;\n}\n\n.a11y-label {\n margin: 0;\n text-align: right;\n font-size: 0.7rem;\n width: 98%;\n}\n\nbody {\n margin: 10px;\n background: #f5f9fa;\n}\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: js hidden notranslate\"><code>const textarea = document.getElementById(\"code\");\nconst reset = document.getElementById(\"reset\");\nconst solution = document.getElementById(\"solution\");\nconst output = document.querySelector(\".output\");\nconst code = textarea.value;\nlet userEntry = textarea.value;\n\nfunction updateCode() {\n output.innerHTML = textarea.value;\n}\n\nconst htmlSolution = `&lt;ol&gt;\n &lt;li&gt;沿这条路走到头&lt;/li&gt;\n &lt;li&gt;右转&lt;/li&gt;\n &lt;li&gt;直行穿过第一个十字路口&lt;/li&gt;\n &lt;li&gt;在第三个十字路口处左转&lt;/li&gt;\n &lt;li&gt;继续走 300 米,学校就在你的右手边&lt;/li&gt;\n&lt;/ol&gt;`;\nlet solutionEntry = htmlSolution;\n\nreset.addEventListener(\"click\", () =&gt; {\n textarea.value = code;\n userEntry = textarea.value;\n solutionEntry = htmlSolution;\n solution.value = \"显示答案\";\n updateCode();\n});\n\nsolution.addEventListener(\"click\", () =&gt; {\n if (solution.value === \"显示答案\") {\n textarea.value = solutionEntry;\n solution.value = \"隐藏答案\";\n } else {\n textarea.value = userEntry;\n solution.value = \"显示答案\";\n }\n updateCode();\n});\n\ntextarea.addEventListener(\"input\", updateCode);\nwindow.addEventListener(\"load\", updateCode);\n\n// stop tab key tabbing out of textarea and\n// make it write a tab at the caret position instead\n\ntextarea.onkeydown = (e) =&gt; {\n if (e.code === \"Tab\") {\n e.preventDefault();\n insertAtCaret(\"\\t\");\n }\n\n if (e.code === \"Escape\") {\n textarea.blur();\n }\n};\n\nfunction insertAtCaret(text) {\n const scrollPos = textarea.scrollTop;\n let caretPos = textarea.selectionStart;\n\n const front = textarea.value.substring(0, caretPos);\n const back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length,\n );\n textarea.value = front + text + back;\n caretPos += text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n}\n\n// Update the saved userCode every time the user updates the text area code\ntextarea.onkeyup = () =&gt; {\n // We only want to save the state when the user code is being shown,\n // not the solution, so that solution is not saved over the user code\n if (solution.value === \"显示答案\") {\n userEntry = textarea.value;\n } else {\n solutionEntry = textarea.value;\n }\n\n updateCode();\n};\n</code></pre></div><div class=\"code-example\"><div class=\"example-header\"></div><iframe class=\"sample-code-frame\" title=\"主动学习:标记有序列表 sample\" id=\"frame_主动学习:标记有序列表\" width=\"700\" height=\"500\" src=\"about:blank\" data-live-path=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" data-live-id=\"主动学习:标记有序列表\" sandbox=\"allow-same-origin allow-scripts\" loading=\"lazy\"></iframe></div>"}},{"type":"prose","value":{"id":"主动学习:标记我们的食谱","title":"主动学习:标记我们的食谱","isH3":true,"content":"<p>到了这里,你拥有了所有你需要的信息来标记我们的食谱样例。你可以选择从 <a href=\"https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-start.html\" class=\"external\" target=\"_blank\">text-start.html</a> 复制一份文件并保存在本地,打开它进行编辑,或者在下面的例子中进行编辑。在本地做可能会更好,因为这样你就可以保存你正在做的工作,而如果你把它填到可编辑的例子中,在你下次打开页面时,它就会丢失。各有利弊吧。</p>\n<div class=\"code-example\"><pre class=\"brush: html hidden notranslate\"><code>&lt;h2&gt;实时输出&lt;/h2&gt;\n\n&lt;div class=\"output\" style=\"min-height: 50px;\"&gt;&lt;/div&gt;\n\n&lt;h2&gt;可编辑代码&lt;/h2&gt;\n&lt;p class=\"a11y-label\"&gt;\n 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\\t'&lt;/code&gt;\n&lt;/p&gt;\n\n&lt;textarea id=\"code\" class=\"input\" style=\"min-height: 200px; width: 95%\"&gt;\n宫保鸡丁的做法\n宫保鸡丁,川菜系中的传统名菜,由鸡丁、干辣椒、花生米等炒制而成。由于其入口鲜辣,鸡肉的鲜嫩配合花生的香脆,广受大众欢迎。\n相传宫保鸡丁是清朝光绪年间的署理四川总督丁宝桢所发明,是他招待客人时叫家厨煮的菜肴。由于丁宝桢后来被封为东宫少保(太子少保),所以被称为“丁宫保”,而这道菜亦被称为“宫保鸡丁”\n\n原料\n去骨鸡胸肉:一斤八两\n干红辣椒:八钱\n炸花生米:一两五钱\n花椒粒:两大匙\n葱:两根(切段)\n蛋白:一个\n淀粉:三大匙\n酱油:两大匙\n蒜末:半茶匙\n糖:半茶匙\n白醋:一茶匙\n色拉油:适量\n盐:两茶匙\n\n做法\n先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。\n用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。\n鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。\n在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。\n如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。\n如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。\n\n大千鸡\n张大千居加拿大期间,曾按自己喜好改变宫保鸡丁的做法,并传授当地厨师,厨师将之命名为“大千鸡”,以兹纪念。大千鸡与宫保鸡丁不同之处,是使用经细工去皮、出骨、剔膜的鸡腿肉,以干辣椒、豆瓣酱为味,而且不用花生。&lt;/textarea\n&gt;\n\n&lt;div class=\"playable-buttons\"&gt;\n &lt;input id=\"reset\" type=\"button\" value=\"重置\" /&gt;\n &lt;input id=\"solution\" type=\"button\" value=\"显示答案\" /&gt;\n&lt;/div&gt;\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: css hidden notranslate\"><code>html {\n font-family: sans-serif;\n}\n\nh2 {\n font-size: 16px;\n}\n\n.a11y-label {\n margin: 0;\n text-align: right;\n font-size: 0.7rem;\n width: 98%;\n}\n\nbody {\n margin: 10px;\n background: #f5f9fa;\n}\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: js hidden notranslate\"><code>const textarea = document.getElementById(\"code\");\nconst reset = document.getElementById(\"reset\");\nconst solution = document.getElementById(\"solution\");\nconst output = document.querySelector(\".output\");\nconst code = textarea.value;\nlet userEntry = textarea.value;\n\nfunction updateCode() {\n output.innerHTML = textarea.value;\n}\n\nconst htmlSolution = `&lt;h1&gt;宫保鸡丁的做法&lt;/h1&gt;\n&lt;p&gt;宫保鸡丁,川菜系中的传统名菜,由鸡丁、干辣椒、花生米等炒制而成。由于其入口鲜辣,鸡肉的鲜嫩配合花生的香脆,广受大众欢迎。&lt;/p&gt;\n&lt;p&gt;相传宫保鸡丁是清朝光绪年间的署理四川总督丁宝桢所发明,是他招待客人时叫家厨煮的菜肴。由于丁宝桢后来被封为东宫少保(太子少保),所以被称为“丁宫保”,而这道菜亦被称为“宫保鸡丁”&lt;/p&gt;\n\n&lt;h2&gt;原料&lt;/h2&gt;\n&lt;ul&gt;\n &lt;li&gt;去骨鸡胸肉:一斤八两&lt;/li&gt;\n &lt;li&gt;干红辣椒:八钱&lt;/li&gt;\n &lt;li&gt;炸花生米:一两五钱&lt;/li&gt;\n &lt;li&gt;花椒粒:两大匙&lt;/li&gt;\n &lt;li&gt;葱:两根(切段)&lt;/li&gt;\n &lt;li&gt;蛋白:一个&lt;/li&gt;\n &lt;li&gt;淀粉:三大匙&lt;/li&gt;\n &lt;li&gt;酱油:两大匙&lt;/li&gt;\n &lt;li&gt;蒜末:半茶匙&lt;/li&gt;\n &lt;li&gt;糖:半茶匙&lt;/li&gt;\n &lt;li&gt;白醋:一茶匙&lt;/li&gt;\n &lt;li&gt;色拉油:适量&lt;/li&gt;\n &lt;li&gt;盐:两茶匙&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;h2&gt;做法&lt;/h2&gt;\n&lt;ol&gt;\n &lt;li&gt;先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。&lt;/li&gt;\n &lt;li&gt;用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。&lt;/li&gt;\n &lt;li&gt;鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。&lt;/li&gt;\n &lt;li&gt;在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。&lt;/li&gt;\n &lt;li&gt;如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。&lt;/li&gt;\n &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt;\n&lt;/ol&gt;\n\n&lt;h2&gt;大千鸡&lt;/h2&gt;\n&lt;p&gt;张大千居加拿大期间,曾按自己喜好改变宫保鸡丁的做法,并传授当地厨师,厨师将之命名为“大千鸡”,以兹纪念。大千鸡与宫保鸡丁不同之处,是使用经细工去皮、出骨、剔膜的鸡腿肉,以干辣椒、豆瓣酱为味,而且不用花生。&lt;/p&gt;`;\nlet solutionEntry = htmlSolution;\n\nreset.addEventListener(\"click\", () =&gt; {\n textarea.value = code;\n userEntry = textarea.value;\n solutionEntry = htmlSolution;\n solution.value = \"显示答案\";\n updateCode();\n});\n\nsolution.addEventListener(\"click\", () =&gt; {\n if (solution.value === \"显示答案\") {\n textarea.value = solutionEntry;\n solution.value = \"隐藏答案\";\n } else {\n textarea.value = userEntry;\n solution.value = \"显示答案\";\n }\n updateCode();\n});\n\ntextarea.addEventListener(\"input\", updateCode);\nwindow.addEventListener(\"load\", updateCode);\n\n// stop tab key tabbing out of textarea and\n// make it write a tab at the caret position instead\n\ntextarea.onkeydown = (e) =&gt; {\n if (e.code === \"Tab\") {\n e.preventDefault();\n insertAtCaret(\"\\t\");\n }\n\n if (e.code === \"Escape\") {\n textarea.blur();\n }\n};\n\nfunction insertAtCaret(text) {\n const scrollPos = textarea.scrollTop;\n let caretPos = textarea.selectionStart;\n\n const front = textarea.value.substring(0, caretPos);\n const back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length,\n );\n textarea.value = front + text + back;\n caretPos += text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n}\n\n// Update the saved userCode every time the user updates the text area code\ntextarea.onkeyup = () =&gt; {\n // We only want to save the state when the user code is being shown,\n // not the solution, so that solution is not saved over the user code\n if (solution.value === \"显示答案\") {\n userEntry = textarea.value;\n } else {\n solutionEntry = textarea.value;\n }\n\n updateCode();\n};\n</code></pre></div><div class=\"code-example\"><div class=\"example-header\"></div><iframe class=\"sample-code-frame\" title=\"主动学习:标记我们的食谱 sample\" id=\"frame_主动学习:标记我们的食谱\" width=\"700\" height=\"800\" src=\"about:blank\" data-live-path=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" data-live-id=\"主动学习:标记我们的食谱\" sandbox=\"allow-same-origin allow-scripts\" loading=\"lazy\"></iframe></div>\n<p>如果你感到棘手,你可以随时按下<em>显示答案</em>按钮,或者在我们的 GitHub 仓库上检查 <a href=\"https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/html-text-formatting/text-complete.html\" class=\"external\" target=\"_blank\">text-complete.html</a> 样例。</p>"}},{"type":"prose","value":{"id":"嵌套列表","title":"嵌套列表","isH3":true,"content":"<p>将一个列表嵌入到另一个列表是完全可以的。你可能想让一些子项目列在一级项目之下。让我们从食谱示例中获取第二个列表:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;ol&gt;\n &lt;li&gt;\n 先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。\n &lt;/li&gt;\n &lt;li&gt;\n 用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。\n &lt;/li&gt;\n &lt;li&gt;\n 鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。\n &lt;/li&gt;\n &lt;li&gt;\n 在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。\n &lt;/li&gt;\n &lt;li&gt;如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。&lt;/li&gt;\n &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt;\n&lt;/ol&gt;\n</code></pre></div>\n<p>由于最后两项与它们的前一项非常密切相关(它们看起来更像该项的子项或选项),将它们编辑成无序列表,并嵌套在该项的子项中可能更合理。就像下面这样:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;ol&gt;\n &lt;li&gt;\n 先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。\n &lt;/li&gt;\n &lt;li&gt;\n 用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。\n &lt;/li&gt;\n &lt;li&gt;\n 鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。\n &lt;/li&gt;\n &lt;li&gt;\n 在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。\n &lt;ul&gt;\n &lt;li&gt;\n 如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。\n &lt;/li&gt;\n &lt;li&gt;如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。&lt;/li&gt;\n &lt;/ul&gt;\n &lt;/li&gt;\n&lt;/ol&gt;\n</code></pre></div>\n<p>尝试回到上一个实践操作的例子中,并更新第二个列表。</p>"}},{"type":"prose","value":{"id":"重点强调","title":"重点强调","isH3":false,"content":"<p>在日常用语中,我们常常会加重某个字的读音,或者用加粗等方式突出某句话的重点。与此类似,HTML 也提供了相应的标签,用于标记某些文本,使其具有加粗、倾斜、下划线等效果。下面,我们将学习一些最常见的标签。</p>"}},{"type":"prose","value":{"id":"强调","title":"强调","isH3":true,"content":"<p>在口语表达中,我们有时会强调某些字,用来改变这句话的意思。同样地,在书面用语中,我们可以使用斜体字来达到同样的效果。例如,下面两个句子便有不同的意思:</p>\n<blockquote>\n <p>我很庆幸你没有迟到。</p>\n <p>我很<em>庆幸</em>你没有<em>迟到</em>。</p>\n</blockquote>\n<p>第一句话听起来真的像松了一口气因为没有迟到。相反,第二句话听起来具有讽刺性而且有隐含的攻击性,表达对一个人迟到的恼怒。</p>\n<p>在 HTML 中我们用 <a href=\"/zh-CN/docs/Web/HTML/Element/em\"><code>&lt;em&gt;</code></a>(emphasis)元素来标记这样的情况。这样做既可以让文档读起来更有趣,也可以被屏幕阅读器识别,并以不同的语调发出。浏览器默认样式为斜体,但你不应该纯粹为了获得斜体风格而使用这个标签。如果仅仅为了获得斜体样式而不增加语义辅助,你应该使用 <a href=\"/zh-CN/docs/Web/HTML/Element/span\"><code>&lt;span&gt;</code></a> 元素和一些 CSS,或者是 <a href=\"/zh-CN/docs/Web/HTML/Element/i\"><code>&lt;i&gt;</code></a> 元素(见下文)。</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;p&gt;我很&lt;em&gt;庆幸&lt;/em&gt;你没有&lt;em&gt;迟到&lt;/em&gt;。&lt;/p&gt;\n</code></pre></div>"}},{"type":"prose","value":{"id":"强烈的重要性","title":"强烈的重要性","isH3":true,"content":"<p>为了强调重要的词,在口语方面我们往往用重音强调,在书面用语中则是用粗体字来达到强调的效果。例如下面这段:</p>\n<blockquote>\n <p>这杯液体<strong>毒性很大</strong>。</p>\n <p>就指望你了,千万<strong>不要</strong>迟到!</p>\n</blockquote>\n<p>在 HTML 中我们用 <a href=\"/zh-CN/docs/Web/HTML/Element/strong\"><code>&lt;strong&gt;</code></a>(strong importance)元素来标记这样的情况。除了使文档更有用之外,也可以被屏幕阅读器识别,并以不同的语调发出。浏览器默认样式为粗体,但你不应该纯粹为了获得粗体风格而使用这个标签。如果仅仅为了获得粗体样式而不增加语义辅助,你应该使用 <a href=\"/zh-CN/docs/Web/HTML/Element/span\"><code>&lt;span&gt;</code></a> 元素和一些 CSS,或者是 <a href=\"/zh-CN/docs/Web/HTML/Element/b\"><code>&lt;b&gt;</code></a> 元素(见下文)。</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;p&gt;这杯液体&lt;strong&gt;毒性很大&lt;/strong&gt;。&lt;/p&gt;\n\n&lt;p&gt;就指望你了,千万&lt;strong&gt;不要&lt;/strong&gt;迟到!&lt;/p&gt;\n</code></pre></div>\n<p>如有需要你可以将 strong 元素和 em 元素嵌套在其他的标签中:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;p&gt;\n 这杯液体&lt;strong&gt;毒性很大&lt;/strong&gt;——如果饮用了它,你&lt;strong&gt;可能&lt;em&gt;会死&lt;/em&gt;&lt;/strong&gt;。\n&lt;/p&gt;\n</code></pre></div>"}},{"type":"prose","value":{"id":"主动学习:我们是重要的!","title":"主动学习:我们是重要的!","isH3":true,"content":"<p>在这个主动学习部分,我们提供了一个可编辑的示例。在这个示例中,我们希望你能尝试在你认为需要斜体强调和着重强调的词上添加斜体强调和着重强调的内容,只是为了进行一些练习。</p>\n<div class=\"code-example\"><pre class=\"brush: html hidden notranslate\"><code>&lt;h2&gt;实时输出&lt;/h2&gt;\n\n&lt;div class=\"output\" style=\"min-height: 50px;\"&gt;&lt;/div&gt;\n\n&lt;h2&gt;可编辑代码&lt;/h2&gt;\n&lt;p class=\"a11y-label\"&gt;\n 按 ESC 退出编辑区域,按 Tab 可插入制表符 &lt;code&gt;'\\t'&lt;/code&gt;\n&lt;/p&gt;\n\n&lt;textarea id=\"code\" class=\"input\" style=\"min-height: 200px; width: 95%\"&gt;\nAlphaGo 李世乭五番棋\n\n&lt;p&gt;2016 年 3 月 8 日到 3 月 15 日,韩国职业棋士李世乭(이세돌)九段与由 Google DeepMind 开发的计算机围棋软件 AlphaGo 对弈的五局三胜制围棋比赛在韩国首尔举行。结果为 AlphaGo 以四胜一负的战绩击败李世乭。赛后韩国棋院授予 AlphaGo 荣誉九段的称号。&lt;/p&gt;&lt;/textarea\n&gt;\n\n&lt;div class=\"playable-buttons\"&gt;\n &lt;input id=\"reset\" type=\"button\" value=\"重置\" /&gt;\n &lt;input id=\"solution\" type=\"button\" value=\"显示答案\" /&gt;\n&lt;/div&gt;\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: css hidden notranslate\"><code>html {\n font-family: sans-serif;\n}\n\nh2 {\n font-size: 16px;\n}\n\n.a11y-label {\n margin: 0;\n text-align: right;\n font-size: 0.7rem;\n width: 98%;\n}\n\nbody {\n margin: 10px;\n background: #f5f9fa;\n}\n</code></pre></div>\n<div class=\"code-example\"><pre class=\"brush: js hidden notranslate\"><code>const textarea = document.getElementById(\"code\");\nconst reset = document.getElementById(\"reset\");\nconst solution = document.getElementById(\"solution\");\nconst output = document.querySelector(\".output\");\nconst code = textarea.value;\nlet userEntry = textarea.value;\n\nfunction updateCode() {\n output.innerHTML = textarea.value;\n}\n\nconst htmlSolution = `&lt;h1&gt;AlphaGo 李世乭五番棋&lt;/h1&gt;\n\n&lt;p&gt;&lt;strong&gt;2016 年 3 月 8 日&lt;/strong&gt;到&lt;strong&gt;3 月 15 日&lt;/strong&gt;,韩国职业棋士&lt;strong&gt;李世乭(이세돌)&lt;em&gt;九段&lt;/em&gt;&lt;/strong&gt;与由 Google DeepMind 开发的计算机围棋软件 &lt;strong&gt;AlphaGo&lt;/strong&gt; 对弈的五局三胜制围棋比赛在韩国&lt;strong&gt;首尔&lt;/strong&gt;举行。结果为 AlphaGo 以&lt;strong&gt;四胜一负&lt;/strong&gt;的战绩击败李世乭。赛后韩国棋院授予 AlphaGo &lt;strong&gt;荣誉九段&lt;/strong&gt;的称号。&lt;/p&gt;`;\nlet solutionEntry = htmlSolution;\n\nreset.addEventListener(\"click\", () =&gt; {\n textarea.value = code;\n userEntry = textarea.value;\n solutionEntry = htmlSolution;\n solution.value = \"显示答案\";\n updateCode();\n});\n\nsolution.addEventListener(\"click\", () =&gt; {\n if (solution.value === \"显示答案\") {\n textarea.value = solutionEntry;\n solution.value = \"隐藏答案\";\n } else {\n textarea.value = userEntry;\n solution.value = \"显示答案\";\n }\n updateCode();\n});\n\ntextarea.addEventListener(\"input\", updateCode);\nwindow.addEventListener(\"load\", updateCode);\n\n// Stop tab key tabbing out of textarea and\n// make it write a tab at the caret position instead\ntextarea.onkeydown = (e) =&gt; {\n if (e.code === \"Tab\") {\n e.preventDefault();\n insertAtCaret(\"\\t\");\n }\n\n if (e.code === \"Escape\") {\n textarea.blur();\n }\n};\n\nfunction insertAtCaret(text) {\n const scrollPos = textarea.scrollTop;\n let caretPos = textarea.selectionStart;\n\n const front = textarea.value.substring(0, caretPos);\n const back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length,\n );\n textarea.value = front + text + back;\n caretPos += text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n}\n\n// Update the saved userCode every time the user updates the text area code\ntextarea.onkeyup = () =&gt; {\n // We only want to save the state when the user code is being shown,\n // not the solution, so that solution is not saved over the user code\n if (solution.value === \"显示答案\") {\n userEntry = textarea.value;\n } else {\n solutionEntry = textarea.value;\n }\n\n updateCode();\n};\n</code></pre></div><div class=\"code-example\"><div class=\"example-header\"></div><iframe class=\"sample-code-frame\" title=\"主动学习:我们是重要的! sample\" id=\"frame_主动学习:我们是重要的!\" width=\"700\" height=\"500\" src=\"about:blank\" data-live-path=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\" data-live-id=\"主动学习:我们是重要的!\" sandbox=\"allow-same-origin allow-scripts\" loading=\"lazy\"></iframe></div>"}},{"type":"prose","value":{"id":"斜体字、粗体字、下划线","title":"斜体字、粗体字、下划线","isH3":true,"content":"<p>到目前为止,我们所讨论的元素都有明确的相关语义。<a href=\"/zh-CN/docs/Web/HTML/Element/b\"><code>&lt;b&gt;</code></a>、<a href=\"/zh-CN/docs/Web/HTML/Element/i\"><code>&lt;i&gt;</code></a> 和 <a href=\"/zh-CN/docs/Web/HTML/Element/u\"><code>&lt;u&gt;</code></a> 的情况却有点复杂。它们出现于人们要在文本中使用粗体、斜体、下划线但 CSS 仍然不被完全支持的时期。像这样仅仅影响表象而且没有语义的元素,被称为<strong>表象元素</strong>(presentational elements)并且不应该再被使用。因为正如我们在之前看到的,语义对无障碍、SEO(搜索引擎优化)等非常重要。</p>\n<p>HTML5 重新定义了 <code>&lt;b&gt;</code>、<code>&lt;i&gt;</code> 和 <code>&lt;u&gt;</code>,赋予了它们新的但有点令人困惑的语义角色。</p>\n<p>最好的经验法则是:只有在没有更合适的元素时,才适合使用 <code>&lt;b&gt;</code>、<code>&lt;i&gt;</code> 或 <code>&lt;u&gt;</code> 来表达传统上用粗体、斜体或下划线表达的意思;而通常情况下是有更合适的元素可供使用的。<code>&lt;strong&gt;</code>、<code>&lt;em&gt;</code>、<code>&lt;mark&gt;</code> 或 <code>&lt;span&gt;</code> 可能是更加合适的选择。</p>\n<p>始终保持无障碍的开发理念。斜体的概念对使用屏幕阅读器的人或使用拉丁字母以外的书写系统的人没有什么帮助。</p>\n<ul>\n <li><a href=\"/zh-CN/docs/Web/HTML/Element/i\"><code>&lt;i&gt;</code></a> 被用来传达传统上用斜体表达的意义:外国文字,分类名称,技术术语,一种思想……</li>\n <li><a href=\"/zh-CN/docs/Web/HTML/Element/b\"><code>&lt;b&gt;</code></a> 被用来传达传统上用粗体表达的意义:关键字,产品名称,引导句……</li>\n <li><a href=\"/zh-CN/docs/Web/HTML/Element/u\"><code>&lt;u&gt;</code></a> 被用来传达传统上用下划线表达的意义:专有名词,拼写错误……</li>\n</ul>\n<div class=\"notecard note\">\n <p><strong>备注:</strong>人们强烈地将下划线与超链接联系起来。因此,在网页中,最好只给链接加下划线。在语义上合适的时候使用 <code>&lt;u&gt;</code> 元素,但要考虑使用 CSS 将默认的下划线改为在网页中更合适的东西。下面的例子说明了如何做到这一点:</p>\n</div>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code>&lt;!-- 学名 --&gt;\n&lt;p&gt;\n 红喉北蜂鸟(学名:&lt;i&gt;Archilocus colubris&lt;/i&gt;)是北美东部最常见的蜂鸟品种。\n&lt;/p&gt;\n\n&lt;!-- 舶来词 --&gt;\n&lt;p&gt;\n 菜单上有好多舶来词汇,比如 &lt;i lang=\"uk-latn\"&gt;vatrushka&lt;/i&gt;(东欧乳酪面包)、&lt;i\n lang=\"id\"\n &gt;nasi goreng&lt;/i\n &gt;(印尼炒饭)以及 &lt;i lang=\"fr\"&gt;soupe à l'oignon&lt;/i&gt;(法式洋葱汤)。\n&lt;/p&gt;\n\n&lt;!-- 已知的错误书写 --&gt;\n&lt;p&gt;总有一天我会改掉写&lt;u class=\"spelling-error\"&gt;措字&lt;/u&gt;的毛病。&lt;/p&gt;\n\n&lt;!-- 在定义中,被定义的术语 --&gt;\n&lt;dl&gt;\n &lt;dt&gt;语义化 HTML&lt;/dt&gt;\n &lt;dd&gt;根据元素的&lt;b&gt;语义&lt;/b&gt;意义而不是外观来使用它们。&lt;/dd&gt;\n&lt;/dl&gt;\n</code></pre></div>"}},{"type":"prose","value":{"id":"技能测试!","title":"技能测试!","isH3":false,"content":"<p>你已经到了本文的结尾,但你能记住最重要的信息吗?你可以找到一些进一步的测试,以验证你在继续前进之前已经保留了这些信息——参见<a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Test_your_skills:_HTML_text_basics\" class=\"only-in-en-us\" title=\"此页面目前仅提供英文版本\">技能测试:HTML 文本基础知识</a> 。</p>"}},{"type":"prose","value":{"id":"总结","title":"总结","isH3":false,"content":"<p>现在就到此为止了!这篇文章应该已经让你对如何开始在 HTML 中标记文本有了一个很好的概念,并且向你介绍了这个领域中的一些最重要的元素。这个领域还有很多语义元素要介绍,我们将在本课程稍后的<a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting\">文本格式化进阶</a>一文中看得更清楚。在下一篇文章中,作为 Web 上最重要的元素,我们将详细介绍如何<a href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\">创建超链接</a>。</p><ul class=\"prev-next\">\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML\"><span class=\"button-wrap\"> 上一页 </span></a></li>\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML\"><span class=\"button-wrap\"> 概述:HTML 简介</span></a></li>\n <li><a class=\"button secondary\" href=\"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\"><span class=\"button-wrap\"> 下一页 </span></a></li>\n</ul>"}}],"toc":[{"text":"基础:标题和段落","id":"基础:标题和段落"},{"text":"列表","id":"列表"},{"text":"重点强调","id":"重点强调"},{"text":"技能测试!","id":"技能测试!"},{"text":"总结","id":"总结"}],"summary":"HTML 的主要工作之一是赋予文本结构,使浏览器能够按照开发者的意图显示 HTML 文档。本文解释了 HTML 如何通过添加标题和段落、强调单词、创建列表等方式来构造文本。","popularity":0,"modified":"2024-09-06T04:52:07.000Z","other_translations":[{"locale":"de","title":"Grundlagen des HTML-Textes","native":"Deutsch"},{"locale":"en-US","title":"HTML text fundamentals","native":"English (US)"},{"locale":"es","title":"Fundamentos de texto en HTML","native":"Español"},{"locale":"fr","title":"Fondamentaux du texte HTML","native":"Français"},{"locale":"ja","title":"HTML テキストの基礎","native":"日本語"},{"locale":"ko","title":"HTML text fundamentals","native":"한국어"},{"locale":"pt-BR","title":"Fundamentos do texto em HTML","native":"Português (do Brasil)"},{"locale":"ru","title":"Основы редактирования текста в HTML","native":"Русский"},{"locale":"zh-TW","title":"基本 HTML 文字","native":"正體中文 (繁體)"}],"pageType":"unknown","source":{"folder":"zh-cn/learn/html/introduction_to_html/html_text_fundamentals","github_url":"https://github.com/mdn/translated-content/blob/main/files/zh-cn/learn/html/introduction_to_html/html_text_fundamentals/index.md","last_commit_url":"https://github.com/mdn/translated-content/commit/21e4db1637c4500a29e8fafa37fd8df4c3c36143","filename":"index.md"},"short_title":"HTML 文本处理基础","parents":[{"uri":"/zh-CN/docs/Learn","title":"学习 Web 开发"},{"uri":"/zh-CN/docs/Learn/HTML","title":"使用 HTML 构建 Web"},{"uri":"/zh-CN/docs/Learn/HTML/Introduction_to_HTML","title":"HTML 简介"},{"uri":"/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals","title":"HTML 文本处理基础"}],"pageTitle":"HTML 文本处理基础 - 学习 Web 开发 | MDN","noIndexing":false}}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10