学习笔记:MDN的HTML

一、        HTML介绍:

HTML —— 用于定义一个网页的结构的基本技术。

元素(Element):开始标记,加结束标记,加内容,等于元素。

两种重要的元素类别,块级元素和内联元素:

块级元素在页面中以块的形式展现 —— 相对与其前面的内容它会出现在新的一行,其后的内容也会被挤到下一行展现。一个以block形式展现的块级元素不会被嵌套进内联元素中,但可以嵌套在其它块级元素中。

内联元素通常出现在块级元素中并包裹文档内容的一小部分,而不是一整个段落或者一组内容。内联元素不会导致文本换行:它通常出现在一堆文字之间。例如超链接元素或者强调元素

注:如果一个内联元素前后都是块级元素,那这个内联元素前后都会换行,因为它前后的块级元素“不要它”。

元素的属性包含元素的额外信息,这些信息不会出现在实际的内容中。

布尔属性:有时你会看到没有值的属性,它是合法的。这些属性被称为布尔属性,他们只能有跟它的属性名一样的属性值。

在目前为止,本章内容所有的属性都是由双引号来包裹。也许在一些HTML中,你以前也见过单引号。这只是风格的问题,你可以从中选择一个你喜欢的(VSC对属性的自动补全用的是双引号)。在一个HTML中已使用一种引号,你可以在此引号中嵌套另外一种引号(或者用字符实体引用)。

: 声明文档类型。最短的有效的文档声明。

代码更新后刷新浏览器即可更新页面(不过要注意外部CSS、JS的更新要打开F12才行)。

字符实体引用:在HTML中,字符<,>,”,’和&是特殊字符(&似乎可以像普通字符一样直接包含进文本中)。它们是HTML语法自身的一部分,如果想将这些字符包含进文本中,就要使用字符实体引用——表示字符的特殊编码。每个字符实体引用以符号&开始,以分号;结束。<,>,”,’和&分别对应lt(less than),gt(greater than),quot(quotation),apos(apostrophe)和amp(ampersand)。deg是°,times是×。

HTML的注释(comment)是用

可以用开发者工具去查看网页的index.html。

元数据:元素。元数据就是描述数据的数据

许多 元素包含了name和content属性。这两个meta元素对于定义你的页面的作者和提供页面的内容描述是很有用的。头文件的元素是搜索结果里的主标题,name是description的<meta>元素是搜索结果里的小字描述。</p> <p>你在网站上看到的许多元数据都是专有创作,旨在向某些网站(如社交网站)提供可使用的特定信息。</p> <p>为了进一步丰富你的网站设计,你可以在元数据中添加对自定义图标的引用,这些将在特定的场合中显示。</p> <p>CSS还能将JS添加到页面的内容进行样式化。</p> <p>你可以(而且确实应该)为你的站点设定语言,这在很多方面都很有用。如果你的HTML文档的语言设置好了,那么你的HTML文档就会被搜索引擎更有效地搜索(例如,允许它在特定于语言的结果中正确显示),对于那些使用屏幕阅读器的视障人士也很有用(比如,法语和英语中都有“six”这个单词,但是发音却完全不同)。</p> <p>HTML的主要工作是编辑文本结构和文本内容。</p> <p>在用h1到h6创建层次结构时,需要记住这些最佳实践:</p> <p>l  优选地,您应该只对每个页面使用一次<h1>——这是顶级标题,所有其它标题位于层次结构中的下方。</p> <p>l  确保在层次结构中以正确的顺序使用标题。不要使用<h3>来表示副标题和使用<h2>表示副副标题——这是没有意义的,会导致奇怪的结果(注:试了下,似乎不奇怪啊,和想象中的一样)。</p> <p>l  在可用的六个标题级别中,您应该旨在每页使用不超过三个,除非您认为有必要使用更多。具有许多级别的文档(即,较深的标题层次结构)变得难以操作且难以导航。在这种情况下,如果可能,建议将内容分散在多个页面上。</p> <p>关于语义:我们需要确保使用了正确的元素,基于内容正确的意思、作用和外形。比如,<h1>元素,它是一个语义元素,它给出了包裹在您的页面上用来表示顶级标题的角色(或意义)的文本。一般来说,浏览器会给它一个更大的字形来让它看上去像个标题(虽然你可以使用CSS让它变成任何你想要的样式),更重要的是,它的语义值将以多种方式被使用,比如被搜索引擎和屏幕阅读器使用</p> <p>CSS和JS都能写在HTML里但不建议。</p> <p>无论你用了多少空白(包括空格、换行),当渲染这些代码时,HTML解释器会将连续出现的空白减少为一个空格。</p> <p>在HTML中我们用<em>元素和<strong>来标记强调的情况。这样做既可以让文档读起来更有趣或有用,也可以被屏幕阅读器识别出来,并以不同的语调发出。对于<em>,浏览器默认强调的风格为斜体,但你不应该纯粹为了获得斜体风格而使用这个标签,纯粹为了获得斜体风格,你应该使用<span>元素和一些CSS,或者是<i>元素(粗体风格是用<b>元素)。使用<b>,<i>,<u> 来传达传统意义上的粗体、斜体或下划线是合适的。</p> <p>表象元素(presentational elements):仅仅影响表象而且没有语义。</p> <p>一种关于下划线的警告:人们很容易把下划线和超链接联系起来。因此,在Web上,最好只在链接上使用下划线。既可用<u>元素也可用CSS实现。</p> <p>URL(Uniform Resource Locator)可以指向HTML文件、文本文件、图像、文本文档、视频和音频文件以及可以在网络上保存的任何其它内容。如果浏览器不知道如何显示或处理文件,它会询问您是否要打开文件(需要选择合适的本地应用来打开或处理文件)或下载文件(以后处理它)。</p> <p>超链接可以链接到HTML文档的特定部分(被称为文档片段),而不仅仅是文件的顶部。要做到这一点,你必须首先分配一个有id属性的元素到链接。然后链接到那个特定的id,你可以在URL的结尾包含它,前面是一个井号(#)。当然,可以用链接到同一份文档的另一部分。</p> <p>绝对URL:例如,如果index.html页面上传到projects这一个目录,而projects位于一个域名为http://www.example.com的Web服务站点的根目录,则这个页面可以通过http://www.example.com/projects/index.html访问(或者仅仅通过http://www.example.com/projects/来访问,因为如果没有特定的URL,大多数Web服务器通过访问index.html这样的页面来加载)。</p> <p>链接的措辞要清晰。搜索引擎使用链接文本为索引目标文件,所以,在链接文本中包含关键词是一个很好的主意,以有效地描述与之相关的信息;读者往往会浏览页面而不是阅读每一个字,他们的眼睛会被页面的特征所吸引,比如链接。</p> <p>Download Firefox是一个好的链接文本,而Click here to download Firefox是不好的。</p> <p>不要重复URL作为链接文本的一部分,因为它看起来很丑。</p> <p>链接通常存在下划线(这个惯例一般不应该打破,因为用户习惯了它)</p> <p>保持你的链接标签尽可能短</p> <p>尽可能使用相对链接,因为方便检查代码(相对链接短)且运行效率高(不用跑到别的域名服务器去查询域名)</p> <p>链接到非HTML资源时,要留下清晰的指示。</p> <p>网页可以看起来彼此不同,但它们都倾向于使用类似的标准组件,除非页面显示全屏视频或游戏,或是某种艺术项目的一部分,或者是结构不当。</p> <p>文档的基本结构(这些元素,除了<div>,全都只起语义作用,不改变样式):页眉<header>、导航<nav>、主要内容<main>(具有代表性的内容段落主题可以使用<article><section>和<div>)、侧栏<aside>(经常嵌套在<main>中)和页脚<footer>。</p> <p>页眉:通常在顶部有一个大标题和(或)图标。这是一个网站的主要常见信息,通常存在于每一个网页。</p> <p>导航:链接到网站的主要部分,通常由菜单按钮、链接或选项卡表示。与标题一样,这些内容通常在一个网页与另一个网页之间保持一致——在您的网站上导航不一致只会使人疑惑和恼火。</p> <p>主要内容:中心的一个大区域,包含给定网页的大部分独特内容,绝对会因页面而异。</p> <p>侧栏:一些次要信息、链接、引言、广告等。通常这是与主要内容中包含的内容相关(例如在新闻文章页面上,侧栏可能包含作者的个人信息或相关文章的链接),但在一些情况下,你会发现一些重复的元素,如辅助导航系统。</p> <p>页脚:横跨页面底部的条纹,通常包含精美的打印、版权通知或联系信息。它是一个放置公共信息的地方,但通常该信息对网站来说不是特别重要。通过提供用于快速访问热门内容的链接,页脚有时也用于SEO目的。</p> <p>一个“典型的网站”可能会这样布局:</p> <p> <a href="http://img.e-com-net.com/image/info8/6113bd8058764d08b0009d277b840660.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6113bd8058764d08b0009d277b840660.jpg" alt="学习笔记:MDN的HTML_第1张图片" width="554" height="365" style="border:1px solid black;"></a></p> <p> </p> <p>搜索用的表单是另一种常见的非线性的导航方式。</p> <p>文档布局的关键是编写一个完整的HTML结构,然后用CSS布局。</p> <p><strong><header></strong>展现了一系列的介绍性内容。如果它是<body>的子元素,它就定义了网站的全局页眉。但是如果它是<article>和<section>的子元素,它就定义了这些部分的特定的页眉(不要把这些与标题(titles and headings)混淆)。</p> <p><strong><nav></strong></p> <p><strong><main></strong>展现了页面内容的独特性。只可以在每一个页面使用一次<main>。在理想情况下,不应该把它嵌套进其它的元素中。<article>闭合一块与自身相关的内容,这块内容能够解释它自身而不是页面上其它的内容(例如一篇单独的博客)。<section>近似于<article>,但它更多的是伴随着由一个单独功能构成的页面(例如一个小型的地图,或者是一组文章的标题和摘要)。它被认为最好的实践是用标题(a heading)作为每一个<section>的开头;也要注意的是你可以把不同的<article>分到不同的<section>中,也可以把不同的<section>分到不同的<article>中,这要取决于内容。</p> <p><strong><aside></strong>包含的内容并不与主要内容有直接的联系,但它可以提供额外的不直接有联系的信息(术语表条目,作者简介,相关链接等等)。</p> <p><strong><footer></strong></p> <p>有时候,你会找不到理想的语义元素来包含项目或内容,或者你可能只想仅仅用CSS或JS将一组元素作为一个单独的实体来修饰。为了应对这种情况,HTML提供了<div>和<span>元素。你最好使用class属性来使它们能容易被找到。</p> <p>警告:divs用起来非常便利以至于很容易被滥用。因为它们不携带语义值,所以会让你的HTML代码变得混乱。要小心地使用它们,只有当没有更好的语义解决方案时才能使用,而且要尽可能把它们的使用量降到最低,否则,当你升级和维护你的文档时会非常困难。</p> <p>计划一个简单的网站:</p> <ol> <li>记住,你的大多数页面会使用一些相同的元素,如导航栏和页脚。所以说,如果在你的设计中,每个页面都有一些内容是重复的,你可以先把这些重复的内容记录下来。</li> <li>接下来,你可以通过画一个草图的方式来说明你希望的每个页面的结构的样子(或许你画出来的草图和我们那个“典型的网站”比较像),在空白段落上做上标记,来说明之后要填充在这里的内容。</li> <li>现在,讨论还希望网站上显示哪些内容(不包括重复的内容),以列表的形式写下来。</li> <li>接着,尝试把这些内容进行分组,这样可以让你了解哪些内容可以放在一个相同的页面上。</li> <li>现在,尝试再画一个网站的草图——用气泡代表网站的一个页面,在气泡与气泡之间用连线的方式,来说明它们之间的联系。主页面可能位于中心位置,并且链接到其它大多数页面;对于一个小型网站,大多数页面都可以从主页的导航栏中链接跳转。你可能也会记录内容将怎样显示。</li> </ol> <p>注意:将你的工作成果保存好,之后你可能还会需要它们。</p> <p>HTML本身不容易因语法错误出错,因为浏览器是以宽松模式来运行,这意味着即使出现语法错误浏览器依然会运行。浏览器通常都有自己的规则来解析语法错误的标记语言,所以程序仍然会运行,尽管可能不是你预期的样子。</p> <p>浏览器的开发者工具中的标记语言是浏览器渲染后的,而不是源代码中的标记语言。</p> <p>Markup Validation Service网站:用于检验HTML文档。</p> <p> </p> <p>元素(Element):</p> <p><p></p>(块级元素):段落</p> <p><h1></h1>(块级元素):标题,还有h2、h3……直到h6。</p> <p><em></em>(内联元素):即emphasis。有语义的斜体(可以单独使用)</p> <p><strong></strong>(内联元素):即strong importance。有语义的粗体(可以单独使用)</p> <p><a></a>(内联元素):锚,使被包裹的内容成为超链接</p> <p>注:几乎所有的元素都能单独使用。</p> <p><img>(空元素):插入图片</p> <p><input>(空元素):表单</p> <p><html></html>:包裹了整个完整的页面,是根元素。</p> <p><head></head>:是一个容器,它包含了所有你想包含在HTML页面中但不想在HTML页面中显示的内容。这些内容包括你想在搜索结果中出现的关键字和页面描述,CSS样式,字符集声明等等。</p> <p><meta charset="utf-8">(空元素): 这个元素设置文档使用utf-8字符集编码,utf-8字符集包含了人类大部分的文字。基本上它能识别你放上去的所有文本内容。毫无疑问要使用它,并且它能在以后避免很多其它问题。</p> <p><meta>(空元素):为文档添加元数据的HTML的“官方的”方式。</p> <p><title>:设置浏览器标签上的标题。

:包含了你访问页面时所有显示在页面上的内容。

(空元素):经常位于文档头部。引入CSS还需要写上rel="stylesheet"

:放在文档尾部(在标签之前)。不仅可以指向外部脚本文件,还可以直接将脚本放入该元素中(但不建议)。

(内联元素):是短语内容的通用内联容器,并没有任何特殊语义。可以使用它来编组元素以达到某种样式意图(通过使用类或者id属性),或者这些元素有着共同的属性,比如lang。应该在没有其它合适的语义元素时才使用它。

很相似,但后者是一个块级元素而前者则是内联元素。

    (块级元素):即unordered list。

      (块级元素):即ordered list。

    1. (块级元素):即list item。

      :即italic,斜体。

      :即bold,粗体。

      :即underline,下划线。

      :分别即description list,description term,description description,三者共同构成描述列表。一个术语
      可以同时有多个描述
      。浏览器的默认样式会在术语和描述之间产生缩进(要改变它的缩进量用margin)。

      :即块级引用和内联引用,除此之外,前者会增加缩进以作为引用的指示符,后者则加入双引号。

      (有同名的属性):表示引用,斜体。

      :即分别是code,preformatted,variable,keyboard和sample都是用于标记计算机代码。分别用于标记计算机通用代码,固定宽度的文本块、其中保留空格(通常是代码块),具体变量名(又是斜体),键盘等的输入和计算机程序的输出。

      :即abbreviation。通常还用title属性提供缩写的解释。

      :只能用来标记联系地址。也是斜体。

      :分别即Superscript和subscript,上标和下标。

      :通过datetime属性将时间和日期标记为可供机器识别的格式。



      (空元素):分别即break和horizontal rule

       

      属性(Attribute):

      class:赋予元素一个用来识别的名字,这个名字此后可以被用来识别此元素的样式信息和其它信息。同一个名字可用于多个class。

      herf(hypertext reference)(元素专用):声明超链接的web地址。

      title(元素可用):鼠标悬停超链接时的提示信息。

      target(元素可用):决定将用于显示链接的浏览上下文。例如,target='_blank'将在新标签页中显示链接。如果你希望在目前标签页显示链接,只需忽略这个属性。

      disabled(布尔属性):标记表单输入使之变为不可用。

      name(元素可用):指定meta元素的类型,说明该元素包含了什么类型的信息。

      content(元素用):指定实际的元数据内容。

      rel:即relationship。元素的属性。

      src:即source。可作为的属性。

      lang:即language。设定语言。

      alt(元素用):即alternative。图显示失败时显示这个文本。

      id

      download:设置点击下载链接后的文件保存用的名字

      cite(有同名的元素):引用元素的属性,用来指向引用的资源。cite属性的内容听起来很有用,但不幸的是,浏览器、屏幕阅读器等等不会真的关心它,如果不使用JavaScript或CSS,浏览器不会显示cite的内容。

       

      二、        多媒体与嵌入:

      注意:搜索引擎也把图片的文件名计入SEO,因此你应该给你的图片取一个描述性的文件名:dinosaur.jpg 比 img835.png 要好。

      警告:大多数图片是有版权的。不要在你的网页上使用一张图片,除非:

      l  你是图片版权所有者

      l  你有图片版权所有者明确的、书面上的使用授权

      l  你有充分的证据证明这张图片是公共的

      侵犯版权是违法且不道德的。在得到授权之前永远不要把你的src属性指向其他人网站上的图片,这被称为“盗链(hotlinking)”。同样,盗取其他人的带宽也是违法的。而且这会降低你的页面的加载速度,而且图片可能会在不受你控制的情况下被移走或用别的令人尴尬的东西替换掉。

      注意:像

      我们需要备选文本(alt)是因为它经常能派上用场。

      你到底应该在 alt 里写点什么呢?这首先取决于这张图片为什么会在这儿,换句话说,如果在这张图片没显示出来,会少了什么:

      l  装饰:如果图片只是用于装饰,而不是内容的一部分,可以写一个空的alt=””。实际上,装饰性图片就不应该放在HTML文件里,CSS background images才应该用于插入装饰图片,但如果这种情况无法避免, alt=""会是最佳处理方案。

      l  内容:如果你的图片提供了重要的信息,就要在alt文本中提供相同的信息。但如果在主要文本中已经对图片做了充分的说明,写alt=""就好。

      l  链接:如果你把图片嵌套在标签里,来把图片变成链接,那你还必须提供无障碍的链接的文本。在这种情况下,你可以写在同一个元素里,或者写在图片的alt属性里,随你喜欢。

      l  文本:你不应该把文本放到图片里。例如,如果你的主标题需要有阴影,你可以用CSS来达到这个目的,而不是把文本放到图片里。如果真的必须这么做,那就把文本也放到alt里。

      本质上,关键在于图片无法被看见时也提供一个可以用的体验,这确保了所有人都不会错失一部分内容。

      用width属性和height属性来指定你的图片的(原本的)宽度和高度是一件好事情。在正常的情况下,这不会对显示产生很大的影响,但是如果图片没有显示(例如用户刚刚开始浏览网页,但是图片还没有加载完成),你会注意到浏览器会为要显示的图片留下一定的空间——这使得页面加载的更快速更流畅。

      注意:如果你需要改变图片的尺寸,你应该使用CSS而不是HTML。(?两者对图片尺寸的影响似乎是一样的)

      说明文字(

      )和alt的内容不应该一样,因为当图片无法显示时,它们会同时出现。

      如果图片对你的内容有意义,就应该使用HTML图片;如果图片纯粹是装饰,就应该使用CSS背景图片。

      你的视频应当包括 WebM 和 MP4 两种格式,这两种在目前已经足够支持大多数平台和浏览器。

      Note: 文本轨道会使你的网站更容易被搜索引擎抓取到 (SEO), 由于搜索引擎的文本抓取能力非常强大,使用文本轨道甚至可以让搜索引擎通过视频的内容直接链接。

      一个好的关于网络安全的经验法则:"You can never be too cautious. If you made it, double-check it anyway. If someone else made it, assume it's dangerous until proven otherwise."

      注意:插件是一种对浏览器原生无法读取的内容提供访问权限的软件。

      不需要插件了:如果您需要交互性,HTML和JavaScript可以轻松地为您完成工作,而不需要Java小程序或过时的ActiveX / BHO技术。您可以使用HTML5的

      SVG(Scalable Vector Graphics)在很多情况下非常有用 — 它们拥有较小的文件尺寸(因为它们仅需储存少量的算法,而不是逐个储存每个像素的信息),却高度可缩放,所以它们不会在镜头拉近或者放大图像时像素化。矢量图使用算法来定义,而位图(当它被放大时,每个像素就被放大以填满屏幕上更多的像素)使用像素网格来定义,流行的位图格式包括 Bitmap (.bmp), PNG (.png), JPEG (.jpg), and GIF (.gif.)。位图适合像照片那样复杂精密的图像。

      响应式图片——一种可以在不同的屏幕尺寸和分辨率的设备上都能良好工作以及有其它特性的图片。响应式图片仅仅只是响应式web设计的一部分(奠定了响应式web设计的良好基础),我们会在未来的CSS topic模块中学到更多关于这一主题的知识。通过让浏览器提供多个图像文件来解决设备屏幕大小不同的问题,比如使用相同显示效果的图片但包含多个不同的分辨率(分辨率切换),或者使用不同的图片以适应不同的空间分配(艺术方向)。CSS是比HTML更好的响应式设计的工具。

      elva-fairy-320w.jpg 320w的w意思是width(以px为单位)

       

      元素(Element):

      (HTML5):后者包含在前者中。
      元素告诉浏览器和其它辅助的技术工具:这段说明文字描述了
      元素的内容。
      里不一定要是一张图片,只要是一个这样的独立内容单元:它用紧凑、易于掌握的方式表达你的意图;它可以放在页面线性流中的几个地方;它为主要内容提供关键信息。
      可以是几张图片、一段代码、音视频、方程、表格或别的。

      (HTML5):也可用width和height(但长宽比保持不变)。

      (HTML5)

      (空元素):可用于在

      (空元素):放在

      :即inline frame。允许您将其它Web文档嵌入到当前文档中。这适合将第三方内容纳入您的网站,你可能无法直接控制,也不希望实现自己的版本——例如来自在线视频提供商的视频,Disqus等评论系统,在线地图提供商,广告横幅等。相关的属性有allowfullscreen(布尔属性,顾名思义)、src、width、height、p(备选内容,不过几乎不可能遇到任何不支持