HTML基础

1. 相关专业术语

  • web:互联网。
  • w3c:万维网联盟,w3.org,为互联网提供各种标准。
  • xml:可扩展的标记语言,extension markup language,用于定义文档结构。
  • html:超文本标记语言,Hyper Text Markup Language,是w3c组织定义的语言标准,html是用于描述页面结构的语言。
  • MDNMozilla Development NetworkMozilla开发者社区。
  • cssCSS是用于描述页面展示的语言,是w3c组织定义的语言标准。html决定了网页有什么,css决定了网页长什么样子。htmlcss都是交给浏览器内核执行。
  • 浏览器的组成:外壳shell + 内核core,常见的浏览器以及内核如下【五大浏览器、四大内核
    • IETrident
    • FirfoxGecko
    • Chromwebkit /blink(现在)
    • Safariwebkit
    • Operablink
  • 版本和兼容性:W3C现在推荐的标准为html5+css3css3目前还没有制作完成。
  • C/S架构(Client/Server)bilibili、微信、QQ等——需要安装、偶尔更新、不跨平台,但是大型专业应用、安全性要求较高的应用需要采用C/S架构。
  • B/S架构(Browser/Server):小程序、网页等——无需安装、无需更新、可跨平台。

2. 元素

元素element又叫做标签、标记,元素 = 起始标记(begin tag) + 结束标记(end tag) + 元素内容 + 元素属性,没有结束标记的元素叫做空元素属性 = 属性名 + 属性值,属性大体上可以分为两类:

  • 局部属性:某些元素特有的属性。
  • 全局属性:所有元素通用的属性。

元素之间可以嵌套使用,因此元素之间就存在了父元素、子元素、祖先元素、后代元素、兄弟元素这些元素关系。

3. 标准的文档结构【W3C

DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
head>
<body>
    
body>
html>
  • :文档声明,告诉浏览器当前文档使用的HTML标准是HTML5,如果不写文档声明,可能导致浏览器进入怪异渲染模式。

  • :根元素,一个html文件中有且只能有一个根元素,它是所有元素的父元素或祖先元素。在HTML5中可以省略根元素。

  • lang属性:全局属性,表示该元素内部的文字使用的是哪一种自然语言。

    • en:英语。
    • cmn-hans:汉语。zh-CN也表示汉语,但是已经过时了。
  • :文档头,文档头中的内容不会显示到页面上。

    • 元素:文档的元数据,附加信息。charset属性用来指定网页内容的编码。

      <head>
          <meta charset="UTF-8">
          
          
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          
      head>
      
    • </title</code>:网页的标题。</p> </li> </ul> </li> <li> <p><code><body></body></code>:文档体,页面上所有要参与显示的元素,都应该放到文档体中。</p> </li> </ul> <h2>4. 语义化</h2> <p><code>语义化</code>即每一个HTML元素都有具体的含义,即<em>选择什么元素取决于内容的含义,而不是显示出的效果</em>。如<code>a</code>元素表示超链接,<code>p</code>元素表示段落,<code>h1</code>表示一级标题等等。元素的显示效果由<code>CSS</code>控制,不同元素在浏览器中具有不同的显示效果,是因为浏览器自带默认的<code>CSS</code>样式。那为什么需要语义化?</p> <ul> <li> <p>为了搜索引擎优化<code>SEO</code>:语义化便于搜索引擎<code>bing、百度、Google</code>爬虫理解,和搜索引擎建立良好的沟通,能让爬虫爬取更多关键有效的信息。</p> </li> <li> <p>便于其它开发者阅读代码。</p> </li> <li> <p>方便其他设备阅读,如屏幕阅读器,盲人设备和移动设备等。</p> </li> </ul> <h2>5. 文本元素</h2> <p>在使用文本元素时,经常需要用到一些测试文本,这时就可以使用乱数假文<code>lorem</code>,乱数假文即没有任何实际含义的文字,经常用来测试排版。如下:</p> <pre><code class="prism language-html"><span class="token comment"><!-- 使用 p*6>lorem3生成的乱数假文, 其中3表示每一个生成的乱数假文中有3个单词 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Lorem, ipsum dolor.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Quidem, autem voluptatem?<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Ratione, vitae molestiae.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Harum, sint illo!<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Voluptates, nihil dolorem?<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Aliquam, vel labore?<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> </code></pre> <p>在<code>html</code>中,常用的文本元素如下:</p> <ul> <li> <p><code>h</code>元素:<code>h1~h6</code>,共六级标题。</p> <pre><code class="prism language-html"><span class="token comment"><!-- h${$级标题}*6 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>1级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h2</span><span class="token punctuation">></span></span>2级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h2</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h3</span><span class="token punctuation">></span></span>3级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h3</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h4</span><span class="token punctuation">></span></span>4级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h4</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h5</span><span class="token punctuation">></span></span>5级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h5</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h6</span><span class="token punctuation">></span></span>6级标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h6</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p><code>p</code>元素:表示一个段落。</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>这是一个段落<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>这是一个段落<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>这是一个段落<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p><code>span</code>元素:无语义,仅用来设置样式。</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span> 三原色有<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">color</span><span class="token punctuation">:</span> red<span class="token punctuation">;</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>红<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>、<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">color</span><span class="token punctuation">:</span> green<span class="token punctuation">;</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>绿<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>、<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">color</span><span class="token punctuation">:</span>blue</span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>蓝<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p><code>pre</code>元素:预格式化文本元素。</p> <ul> <li> <p>空白折叠:在源代码中的连续空白字符【空格、换行、制表符】,在页面显示时会被折叠为一个空格。</p> </li> <li> <p>在<code>pre</code>元素中的内容不会出现空白折叠,里面的内容会按照源代码格式显示到页面上。该元素通常用于在网页中显示一些源代码。<em><code>pre</code>元素功能的本质是它有一个默认的<code>CSS</code>属性<code>white-space: pre</code></em>,显示代码时,通常外面会加上<code>code</code>元素,<code>code</code>表示代码区域。</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>pre</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>code</span><span class="token punctuation">></span></span> var i = 2; if(i) { console.log(i); } <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>code</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>pre</span><span class="token punctuation">></span></span> </code></pre> <pre><code>实体字符entity: 通常用于在页面中显示一些特殊字符 - &单词;(常用) - &#数字; 常用的实体字符: 更多的见w3.org - < < - > > -   空格 - © 版权符号 - & & </code></pre> </li> </ul> </li> </ul> <h2>6. 超链接<code>a</code>元素</h2> <ul> <li> <p>常用属性</p> <ul> <li><code>href</code>:<code>hyper reference</code>,通常表示跳转地址。</li> <li><code>id</code>:全局属性,表示元素在文档中的唯一编号。</li> <li><code>target</code>:表示跳转窗口位置。 <ul> <li><code>_self</code>:在当前窗口打开,默认值。</li> <li><code>_blank</code>:在新窗口中打开。</li> </ul> </li> <li><code>title</code>:全局属性,表示提示信息。</li> </ul> </li> <li> <p>常见的链接</p> <ul> <li> <p>普通链接:跳转地址</p> <pre><code class="prism language-html"><span class="token comment"><!-- 跳转到百度 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://baidu.com<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>百度<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>锚链接:跳转到某个锚点。如果当前锚点是在当前网页,则页面不会刷新,否则页面刷新。</p> <ul> <li> <p><code><a href="#指定id">内容</a></code>:跳转到指定锚点。</p> </li> <li> <p><code><a href="#">内容</a></code>:跳转到当前页面顶部,不会刷新网页。</p> </li> <li> <p><code><a href="">内容</a></code>:刷新当前网页。</p> <pre><code class="prism language-html"><span class="token comment"><!-- 生成目录 --></span> (a[href="#chapter$"]>{章节$})*6 <span class="token comment"><!-- 生成章节和段落 --></span> ((h2[id="chapter$"]>{章节$})+(p>lorem100)*3)*6 </code></pre> </li> </ul> </li> <li> <p>功能链接:点击后执行<code>JS</code>代码,触发某个功能。</p> <pre><code class="prism language-html"><span class="token comment"><!-- 弹出哈哈哈 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>javascript:alert('哈哈哈')<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>弹出哈哈哈<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> <span class="token comment"><!-- 发送邮件 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>mailto:2781196094@qq.com<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>发送邮件<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> <span class="token comment"><!-- 拨打电话, 移动端才能触发或计算机上安装有拨号软件 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tel:1899023926035<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>拨打电话<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> </li> </ul> </li> </ul> <h2>7. 路径的写法</h2> <ul> <li><code>站内资源</code>:当前网站的资源,一般使用相对路径。绝对路径的书写方式为<code>schema://host:port/path</code>。 <ul> <li><code>schema</code>:协议名,<code>https、http、file(表示本地文件)</code>,当跳转目标和当前页面协议相同时,可以省略协议。</li> <li><code>host:port</code>:<code>主机名:端口号</code>,主机名可以是域名、<code>IP</code>地址,如果协议是<code>http</code>则默认端口号为<code>80</code>。如果协议是<code>https</code>,则默认端口号为<code>443</code>。端口号一般有默认值,可以省略。</li> <li><code>path</code>:路径。</li> </ul> </li> <li><code>站外资源</code>:非当前网站的资源,只能使用绝对路径。 <ul> <li><code>./</code>:表示当前资源所在目录,可以省略。</li> <li><code>../</code>:表示上一级目录。</li> </ul> </li> </ul> <h2>8. 图片元素<code>img</code></h2> <ul> <li> <p><code>img</code>元素是一个空元素,常用属性如下:</p> <ul> <li><code>src</code>:<code>source</code>,图片地址。</li> <li><code>alt</code>:当图片资源失效时,将使用该属性的文字替代图片。</li> <li><code>width</code>与<code>height</code>:设置图片的宽高,一般只设置一个,另一个属性会进行等比例缩放。</li> </ul> </li> <li> <p>与<code>a</code>元素联用:点击图片跳转到指定链接。</p> <pre><code class="prism language-html"><span class="token comment"><!-- 点击伊利logo跳转到伊利官方网站 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.yili.com<span class="token punctuation">"</span></span> <span class="token attr-name">target</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>_blank<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>./imgs/logo.png<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>伊利官方网站<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>与<code>map</code>元素联用:点击图片的不同区域跳转到不同的地址。<code>img</code>元素中使用<code>usemap="#mapname"</code>和<code>map</code>元素进行关联。</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>./imgs/solar.png<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>八大行星<span class="token punctuation">"</span></span> <span class="token attr-name">title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>八大行星<span class="token punctuation">"</span></span> <span class="token attr-name">width</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1000<span class="token punctuation">"</span></span> <span class="token attr-name">usemap</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#solar_map<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>map</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>solar_map<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token comment"><!-- 圆形,需要知道圆心和半径 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>area</span> <span class="token attr-name">shape</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>circle<span class="token punctuation">"</span></span> <span class="token attr-name">coords</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>167, 312, 100<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>地球<span class="token punctuation">"</span></span> <span class="token attr-name">target</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>_blank<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token comment"><!-- 长方形,需要知道左上和右下两个点的坐标 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>area</span> <span class="token attr-name">shape</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>rect<span class="token punctuation">"</span></span> <span class="token attr-name">coords</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>167, 312, 100<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>金星<span class="token punctuation">"</span></span> <span class="token attr-name">target</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>_blank<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token comment"><!-- 多边形,需要知道每一个点的坐标 --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>area</span> <span class="token attr-name">shape</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>poly<span class="token punctuation">"</span></span> <span class="token attr-name">coords</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>167, 312, 100<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://baike.baidu.com/item/%e5%9c%b0%e7%90%83/6431<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>天王星<span class="token punctuation">"</span></span> <span class="token attr-name">target</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>_blank<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>map</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>与<code>figure</code>元素联用:当图片配有文字描述时,计算机并不知道该图片与文字有所关联,可以使用<code>figure</code>元素将其关联起来。</p> </li> </ul> <h2>9. <code>figure</code>、<code>figcaption</code>元素</h2> <ul> <li>概述:<code>figure </code>用于定义一个可附加标题的内容元素,其子元素<code>figcaption</code>用来为<code>figure</code>元素添加标题或描述信息,通常用于把图片、图片标题、描述内容包裹起来,如页面中的插图卡片。</li> <li>特性以及注意点: <ul> <li>于<code>HTML5</code>中新增,浏览器支持程度比较高,<code>IE8</code>及以下不支持。</li> <li><code>figure</code>的浏览器默认样式是宽度<code>100%</code>,高度依赖其内容的高度。</li> <li><code>figure</code>可以有多个子元素,但最好只有一个<code>figcaption</code>元素。</li> <li><code>figure</code>元素的内容不仅仅限于图片, 还可以包括诗词、代码段、表格。</li> </ul> </li> </ul> <h3>9.1 应用场景</h3> <ul> <li> <p>图片</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figure</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image.png<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figcaption</span><span class="token punctuation">></span></span>caption and descriptions<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figcaption</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figure</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>代码段</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figure</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figcaption</span><span class="token punctuation">></span></span>code<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figcaption</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>pre</span><span class="token punctuation">></span></span> function log(val) { console.log(val) } log('hello world') <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>pre</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figure</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>引用文本</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figure</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figcaption</span><span class="token punctuation">></span></span>Shakespeare: <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figcaption</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>blockquote</span><span class="token punctuation">></span></span>Nutrition books in the world. There is no book in life, there is no sunlight; wisdom without books, as if the birds do not have wings.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>blockquote</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figure</span><span class="token punctuation">></span></span> </code></pre> </li> <li> <p>诗词</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figure</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>figcaption</span><span class="token punctuation">></span></span>滕王阁序<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figcaption</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>落霞与孤鹜齐飞,秋水共长天一色。<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>figure</span><span class="token punctuation">></span></span> </code></pre> </li> </ul> <h3>9.2 插图卡片特效</h3> <pre><code><!DOCTYPE html> <html lang="zh"> <head> <meta chartset="UTF-8"> <title>图片插图

      MessyDuke

      Duke is very bored. When he looks at the sky, he feels to run.

      10. 多媒体元素audiovideo

      • video:视频,通常使用.mp4文件、.webm文件。

      • audio:音频,通常使用.mp3文件。

      • 布尔属性:只有两种状态,要么不写False,要么取值为属性名或只写属性名Trueaudiovedio常用的布尔属性如下:

        • controls:控制控件的显示。

        • autoplay:自动播放。

        • muted:静音播放。

        • loop:循环播放。

          <audio src="video&audio/高鱼 - 天下.mp3" controls="controls" loop="loop" autoplay="autoplay">audio>
          
      • 兼容性问题:旧版的浏览器不支持audio、video元素,或者不同的浏览器支持的音频格式可能不一致,因此开发中一般同一个视频可能会准备多种格式。

        <video controls autoplay muted loop style="width:500px;">
            <source src="media/open.mp4">
            <source src="media/open.webm">
            <p>
                对不起, 您的浏览器不支持播放.mp4、.webm格式文件, 请下载最新版浏览器
            p>
        video>
        

      11. 列表元素

      • 有序列表:ol表示整个列表,li表示列表中每一项。ol的子元素只能是li

        • type属性:除非列表中序号很重要才使用type属性,否则使用CSS中的list-style-type属性设置序号样式。

          • a:表示小写字母编号。
          • A:表示大写字母编号。
          • i表示小写罗马数字编号。
          • I:表示大写罗马字母编号。
          • 1:表示使用数字编号,默认值。
        • reverse属性:布尔属性,倒序。

          <p>把大象装进冰箱需要哪三步p>
          <ol type="i">
               <li>打开冰箱门li>
              <li>把大象放进去li>
              <li>关上冰箱门li>
          ol>
          
      • 无序列表:ul表示整个列表,li表示列表中每一项,ul的子元素只能是li,开发中无序列表常用于制作菜单或新闻列表。

        <p>想要去旅游的城市p>
        <ul>
             <li>重庆li>
             <li>浙江li>
             <li>北京li>
        ul>
        
      • 定义列表:通常用于一些术语的定义,dl表示整个列表,dt表示术语,dd表示术语的描述。

        <p>HTML中的术语解释p>
        <dl>
            <dt>HTMLdt>
            <dd>
                <p>超文本标记语言XXXXXp>
            dd>
            <dt>元素dt>
            <dd>
                <p>组成HTML文档的单元XXXXp>
            dd>
        dl>
        

      12. 容器元素

      容器元素,表示一块区域,内部用于放置其他元素。在网页中最常见的容器元素就是div元素,div元素没有语义,浏览器无法理解每个div区域的含义。语义化容器元素即浏览器很容易理解每个区域的含义,如下:

      • article:通常用于表示整篇文章。

      • header:通常用于表示页头,也可以用于表示文章的头部。

      • footer:通常用于表示页脚,也可以用于表示文章的尾部。

      • section:通常用于表示文章的章节。

      • aside:通常用于表示侧边栏,即一些附加信息。

      • nav:通常用于表示导航信息。

        <article>
            <header>
                <h1>地球大爆炸h1>
            header>
            <section>
                <p>第一章p>
                <p>Lorem, ipsum dolor.p>
                <p>Officiis, magni velit.p>
                <p>Nobis, esse odio.p>
            section>
            <section>
                <p>第二章p>
                <p>Lorem, ipsum dolor.p>
                <p>Officiis, magni velit.p>
                <p>Nobis, esse odio.p>
            section>
            <aside>侧边栏aside>
            <footer>作者: XXXfooter>
        article>
        

      13. 块级元素 & 行内元素

      HTMLCSS的体系中,块级元素和行内元素是两种不同类型的HTML元素,它们在页面布局和显示方式上有着显著区别。

      • 块级元素:独占一行,可以设置宽高,可以包含其他块级元素或行内元素。常见的块级元素有容器元素、h1-h6pliolfrom等。
      • 行内元素:不独占一行,通常不能通过CSS设置宽高【部分元素如img元素除外】,宽高由内容决定,一般只能包含行内元素。常见的行内元素有aspanimg等等。

      对于更具体的元素说明以及元素间的嵌套关系,可以去mdn等网站查看。

      14. 其它元素

      • del:文本删除效果

      • ins:文本下划线效果

      • sub:文本下标效果

      • sup:文本上标效果

      • abbr:显示缩写说明

        /*鼠标移到缩写文本处可以显示缩写说明*/
        <abbr title="缩写说明">
            缩写文本
        abbr>
        

      15. 常见的图片格式

      • jpg格式:有损的压缩格式,把肉眼不容易观察出来的细节丢弃。优点是支持颜色丰富,占用空间较少;缺点是不支持透明背景、不支持动态图。常用于网站的产品宣传图。

      • png格式:无损的压缩格式,能够更高质量的保存图片。优点是支持颜色丰富,支持透明背景;缺点是占用空间略大,不支持动态图。常用于公司logo、重要配图。

      • bmp格式:不进行压缩的一种格式,在最大程度上保留图片上的更多细节。优点是支持颜色丰富,保留细节更多;缺点是占用空间极大,不支持动态图。常用于一些大型游戏中的图片。

      • gif格式:优点是支持简单的透明背景,支持动态图。缺点是支持的颜色较少。常用于网页中的动态图片。

      • webp格式:谷歌推出的一种格式,专门用来在网页中呈现图片。具备上述几种格式的优点,但兼容性不太好。常用于网页中的各种图片。

      • base64格式:

        • 本质:一串特殊的文本,要通过浏览器打开,传统的看图软件无法打开。

        • 原理:把图片进行base64编码,形成一串文本,靠一些网站和工具生成。

        • 使用:直接作为图片标签的src属性的值即可。

        • 使用场景:一些较小的图片或需要和网页一起加载的图片。

        • 图片为什么要转换成base64格式:

          • 提升性能:网页中的每一张图片,都需要使用一个https请求下载而来。而base64可以随着HTML的下载的同时下载到本地,减少https请求。
          • 加密:让用户一眼看不出来是一张图片,只能看到编码。
          • 方便引用:在多个文件同时使用某些图片时,可以把图片转为base64格式的文件,把样式放在全局中,比如common.css,以后在使用时就可以直接加类名,而不需要多层寻找文件路径,提升开发效率。

你可能感兴趣的:(html,前端)