认识 HTML

84 阅读12分钟

认识 HTML

邂逅 HTML

  • 超文本标记语言 (HyperText Markup Language,简称:HTML) 是一种用于创建网页的标记语言。

    • HTML 元素是构建网站的基石;
  • 什么是标记语言(markup language);

    • 由无数个标记(标签、tag)组成;
    • 是对某些内容进行特殊的标记,以供其他解释器识别处理;
    • 比如使用

      标记的文本会被识别为 ”标题“ 进行加粗、文字放大显示;
    • 由标签和内容组成的部分称为元素(element);
  • 什么是超文本(HyperText);

    • 不仅仅可以插入普通的文本,还可以插入图片、音频、视频等内容;
    • 还可以表示超链接(HyperLink),从一个网页跳转到另一个网页;

HTML 结构

<html>
    <head></head>
    <body></body>
</html>

认识元素

  • HTML 本质上是由一系列的元素(Element)构成的;

  • 元素的定义:

    • 元素是网页的一部分;
    • 一个元素可以包含一个数据项,或是一块文本,或是一张照片,亦或是什么也不包含;
  • HTML 包含的元素:

    developer.mozilla.org/zh-CN/docs/…

元素的组成

  • HTML 元素的组成:

    • 开始标签(Opening tag):包含元素的名称,被左右尖括号所包围。表示元素从这里开始或者开始起作用;
    • 结束标签(Closing tag):与开始标签类似,只是在元素名前包含了一个斜杠。表示着元素的结尾;
    • 内容(Content):元素的内容;
    • 元素(Element):开始标签、结束标签与内相结合,便是一个完整的元素;

单标签元素 — 双标签元素

  • 双标签元素:大部分元素是双标签的;

    • html、body、head、h2、p、a 元素;
  • 单标签元素:一部分元素只有一个标签;

    • br、img、hr、meta、input;

      <input type="text">
      
  • 注意事项:

    • HTML 元素不区分大小写,推荐小写;

元素的属性

  • 元素也可以拥有属性(Attribute):

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

  • 一个属性必须包含如下内容:

    • 一个空格,在属性和元素名称之间。(如果已经有一个或多个属性,就与前一个属性之间有一个空格。);
    • 属性名称,后面跟着一个等于号;
    • 一个属性值,由一对引号 "" 引起来。
  • 创建一个超链接元素 a:

    <!-- 超链接元素 -->
    <a href="http://www.baidu.com">百度一下</a>
    

元素属性的分类

  • 有些属性是公共的,每一个元素都可以设置;

    • 比如 class、id、title 属性;
  • 有些属性是元素特有的,不是每一个元素都可以设置;

    • 比如 meta 元素的 charset 属性、img 元素的 alt 属性的等;

元素的嵌套关系

  • 某些元素的内容除了可以是文本之外,还可以是其他元素,这样就形成了元素的嵌套。

      <body>
        <!-- alt + shift + 向下箭头 = 快速复制这一行 -->
        <ul>
          <li>
            <div>
              <span></span>
              <span></span>
            </div>
            <div></div>
          </li>
          <li></li>
        </ul>
      </body>
    
  • 元素之间的关系:

    • 父子关系,比如 ul 和 li,li 和 div 之间;
    • 兄弟关系,比如两个 div,两个 span 之间;

HTML 注释

  • 注释的含义:

    • 注释就是一段代码说明;
    • ;
    • 注释只是给开发者看的,浏览器并不会把注释显示给用户看;
  • 注释快捷键:ctrl + /;

完整的 HTML 结构

  • 完整的 HTML 结构包含:

    • 文档声明;

    • html 元素:

      • head 元素;
      • body 元素;
<!DOCTYPE html>
<html>
  <title>HTML文档结构</title>
</head>
<body>
  <h1>我是标题</h1>
</body>
</html>

文档声明

  • HTML 最上面的一段文本称之为文档类型声明,用于声明文档类型;

    <!DOCTYPE html>
    
    • HTML 文档声明,告诉浏览器当前页面是 HTML5 页面; - 让浏览器用 HTML5 的标准去解析识别内容; - 必须放在 HTML 文档的最前面,不能省略,不然会出现兼容性问题;

html 元素

  • 元素表示一个 HTML 文档的根(顶级元素),所以它也被称为根元素。
    • 所有其他元素必须是此元素的后代。

      <html lang="en">
      </html>
      
  • W3C 标准建议为 html 元素增加一个 lang 属性,作用是:

    • 帮助语音合成工具确定要使用的发音;
    • 帮助翻译工具确定要是用的翻译规则;
  • 比如常用的规则:

    • lang = 'en'表示这个 HTML 文档的语言是英文;
    • lang = 'zh-CN'表示这个 HTML 文档的语言是中文;

head 元素

  • HTML head 元素规定文档相关的配置信息(元数据),包括文档的标题,引用的文档样式和脚本等;

    • 元数据(meta data),是描述数据的数据;
    • 是对整个页面的配置;
  • 常见的设置有以下两种:

    • 网页的标题:title 元素

      <title>网页的标题</title>
      
    • 网页的编码:meta 元素

      • 可以用于设置网页的字符编码,让浏览器更精准地显示每一个文字,不设置或者设置错误会导致乱码;
      • 一般都使用 UTF-8 编码,涵盖了世界上几乎所有的文字;

body 元素

  • body 元素里面的内容将是在浏览器窗口中看到的东西,也就是网页的具体内容和结构。

    • 大部分 HTML 元素都是在 body 中编写呈现的;
<body>
    <input type="text">
    <ul>
        <li></li>
    </ul>
</body>

常见元素 - h 元素

  • 在一个页面中通常会有一些比较重要的文字作为标题,可以使用 h 元素;

  • ~

    标题(Heading)元素呈现了六个不同级别的标题

    • Heading 通常会用来做标题;

    • 级别最高,而

      级别最低;

        <body>
          <!-- h元素 h1~h6 -->
          <h1>我是h1标题</h1>
          <h2>我是h2标题</h2>
          <h3>我是h3标题</h3>
          <h4>我是h4标题</h4>
          <h5>我是h5标题</h5>
          <h6>我是h6标题</h6>
      
          <!-- 浏览器通过什么来区分h1~h6(呈现时) -->
        </body>
      
  • 注意:h 元素通常和 SEO 优化有关系;

  • 常见元素 - p 元素

    • 表示一个段落,可以使用 p 元素;

    • HTML

      元素(或 HTML 段落元素)表示文本的一个段落;

      • p 元素是 paragraph 的缩写,是段落、分段的意思;
      • p 元素多个段落之间会有一定的差距;

    常见元素 - img 元素

    • 使用 img 元素可以让浏览器显示图片;

    • HTML 元素将一份图像嵌入文档。

      • img 是 image 单词的缩写,是图像、图片的意思;
      • 事实上 img 是一个可替换元素(replaced element);
    • img 有两个常见的属性:

      • src 属性:source 单词的缩写,表示源;

        • 是必须的,它包含了你想嵌入的图片的文件路径;
      • alt 属性:不是强制性的,有两个作用:

        • 作用一:当图片加载不成功时(错误的地址或者图片资源不存在),那么会显示这段文本;
        • 作用二:屏幕阅读器会将这些描述读给需要使用阅读器的使用者听,让它们知道图像的含义;

    img 元素 - 图片的路径

    • 设置 img 的 src 时,需要给图片设置路径:

      • 网络图片:一个 URL 地址;
      • 本地图片:本地电脑上的图片,后续会和 html 一起部署到服务器;
    • 本地图片的路径有两种方式:

      • 方式一:绝对路径(几乎不用);

        • 从电脑根目录开始一直找到资源的路径;
      • 方式二:相对路径(常用);

        • 相当于当前文件的一个路径;
        • “. ” 代表当前文件夹(1个),可以省略;
        • ”..“ 代表上级文件夹(2个);
    • 对于网页来说,不管是什么系统,路径分隔符都是 “/”;

    img 元素 - 图片的格式

    • img 元素支持的图片格式非常多;

    常见元素 - a 元素

    a 元素 - 锚点链接

    • 锚点链接可以实现:跳转到网页中的具体位置;

    • 两个步骤:

      • 在要跳转的元素上定义一个 id 属性;
      • 定义 a 元素,并且 a 元素的 href 指向对应的 id;
        <a href="#theme01">跳转到主题一</a>
        <a href="#theme02">跳转到主题二</a>
        <a href="#theme03">跳转到主题三</a>
    
        <h2 id="theme01">主题一</h2>
        <h2 id="theme02">主题二</h2>
        <h2 id="theme03">主题三</h2>
    

    a 元素 - 图片链接

    • 图片也是可以作为链接的;

      • img 元素跟 a 元素一起使用,可以实现图片链接;
    • 实现思路:

      • a 元素中不存放文字,而是存放一个 img 元素;
      • img 元素作为 a 元素的内容;
      <body>
        <a href="https://www.mi.com/redmik50"
          ><img
            width="500"
            src="https://cdn.cnbj1.fds.api.mi-img.com/product-  images/redmik504qyoae2/12292.png"                     
        /></a>
      </body>
    

    a 元素 - 其他 URL 地址

    • a 元素还可以用作其他用途,如:

      • 下载资源;
      • 发送邮件;

    iframe 元素

    • 利用 iframe 元素可以实现:在一个 HTML 文档中嵌入其他 HTML 文档;

    • frameborder 属性;

      • 用于规定是否显示边框;

        • 1:显示;
        • 2:不显示;
    • a 元素 target 的其他值:

      • _parent:在父窗口中打开 URL;
      • _TOP:在顶层窗口中打开 URL;

    div 元素、sapn 元素的区别

    • div 元素和 span 元素都是“纯粹的”容器,或者说”盒子“,用来包裹内容;

      • div 元素:多个 div 元素包裹的内容会在不同的行显示;

        • 一般作为其他元素的父容器,把其他元素包住,代表一个整体;
        • 用于把网页分割为多个独立的部分;
      • span 元素:多个 span 元素包裹的内容会显示在同一行;

        • 默认情况下,跟普通文本几乎没差别;
        • 用于区分特殊文本和普通文本,比如用来显示一些关键字;

    不常用元素(一部分)

    • strong 元素:内容加粗、强调;

    • i 元素:内容倾斜;

    • code 元素:用于显示代码;

      • 偶尔使用用来显示等宽字体;
    • br 元素:换行元素(已不使用);

    HTML 全局属性

    • 有些属性只能设置在特定元素中:

      • 比如 img 元素 的 src、a 元素的 href;
    • 还有一些全局属性:所有 HTML 都可以设置和拥有的,如下:

      • id:定义唯一标识符(ID),该标识符在整个文档中必须是唯一的。其目的是在链接、脚本或样式时标识元素;
      • class:一个以空格分隔的元素的类名列表,它允许 CSS 和 JavaScript 通过类选择器或者 DOM 方法来选择和访问特定的元素;
      • style:给元素添加内联样式;
      • title:包含表示与其所属元素相关信息的文本。这些信息通常可以作为提示呈现给用户,但不是必须的;

    字符实体

    • HTML 代码会被浏览器解析;

    • HTML 实体是一段以连字号 (& )开头,以分号(;)结尾的文本(字符串);

      • 实体常常用于显示保留字符(这些字符会被解析为 HTML 代码)和不可见的字符(如:“不换行空格”);
      • 可以用实体代替其他难以用标准键盘输入的字符;
    • 常见的字符实体,如:

      • &lt;:表示小于号"<";
      • &gt;:表示大于号">";
      • &nbsp;:表示空格;

    元素的语义化

    • 理论上来说,所有的 HTML 元素,可以实现相同的事情:

          <h1>我是h1元素</h1>
      ​
      ​
      ​
            .box {
              font-size: 32px;
              font-weight: 700;
              margin: 22px 0;
            }
          <div class="box">我是div元素</div>
      

    认识 SEO

    • 搜索引擎优化 SEO(search engine optimization)是通过了解搜索引擎的运作规则来调整网站,以及提高网站在有关搜索引擎内排名的方式;

    认识字符编码

    • 为了在计算机上能表示,存储和处理像文字、符号等之类的字符,就必须将这些字符转换成二进制数字;

    HTML5 语义化元素

    • 在 HTML5之前,网站分布层级通常包括:

      • header、nav、main、footer;
    • 弊端:

      • 过多使用 div,通过 id 或 class 来区分元素;
      • 对浏览器来说不够语义化;
      • 对于搜索引擎来说,不利于 SEO 的优化;
    • HTML5 新增了语义化的元素:

      • header:头部元素;
      • nav:导航元素;**
      • section:定义文档某个区域的元素;**
      • article:内容元素;**
      • aside:侧边栏元素;**
      • footer:尾部元素;**

    HTML5 其他新增元素

    • 增加了对媒体类型的支持

      • 音频:;
      • 视频:;
    • Video 和 Audio 的使用方式有两个:

      • 一方面可以直接通过元素使用 video 和 audio;
      • 另一方面可以通过 JavaScript 的 API 对其进行控制;

    HTML5 新增元素 - video

    • HTML 元素用于在 HTML 或者 XHTML 文档中嵌入媒体播放器,用于支持文档内的视频播放;

      <video src="../video/fcrs.mp4" controls></video>
      
    • video 常见的属性:

      • src:视频播放的 URL 地址;
      • width:设置 video 的宽度;
      • height:设置 video 的高度;
      • controls: 是否显示控制栏,包括音量,跨帧,暂停/恢复播放;
      • autoplay:是否视频自动播放(某些浏览器需要添加 muted);
      • muted:是否静音播放;
      • preload:是否需要预加载视频,metedata 表示预加载元数据;
      • poster:一海报帧的 URL;

    video 的兼容性写法

    • 在 元素中间的内容,是针对浏览器不支持此元素时候的降级处理;

      • 内容一:通过 元素指定更多视频格式的源;
      • 内容二:通过 p/div 等元素指定在浏览器不支持 video 元素的情况下,显示的内容;
    <video src="../video/fcrs.mp4" controls>
        <source src="./video/fcrs.webm">
        <p>
            你的浏览器不支持 video 元素,请更换浏览器查看!
        </p>
    </video>
    

    HTML5 新增元素 - audio

    • HTML 元素用于在文档中嵌入音频内容,和 video 的用法非常类似;

      <audio src="../media/yhbk.mp3" controls autoplay muted></audio>
      
    • 常见属性:

      • src:音频播放的 URL 地址;
      • controls:是否显示控制栏,包括音量,进度,暂停/恢复播放;
      • autoplay:是否音频自动播放;
      • muted:是否静音播放;
      • preload:是否需要预加载视频,metedata 表示预加载元数据;

    audio 的兼容性写法

    • 在 元素中间的内容,是针对浏览器不支持此元素时候的降级处理;

      • 内容一:通过 元素指定更多音频格式的源;
      • 内容二:通过 p/div 等元素指定在浏览器不支持 audio 元素的情况下,显示的内容;
    <audio src="../media/yhbk.mp3" controls autoplay muted>
            <source src="./media/yhbk.ogg">
        <p>
            你的浏览器不支持 audio 元素,请更换浏览器查看!
        </p>
    </audio>
    

    input 元素的拓展内容

    • HTML5 对 input 元素也进行了拓展:

      • placeholder:输入框的占位文字(输入内容后自动消失);
      • multiple:多个值;
      • autofocus:自动聚焦处;

    新增全局属性 data-

    • 在 HTML5 中,新增一种全局属性的格式 data-,用于自定义数据属性:

      • data 设置的属性可以在 JavaScript 操作中通过 dataset 轻松获取到;
      • 通常用于 HTML 和 JavaScript 数据之间的传递;
    <div class="box" title="abc" data-name="why" data-age="18"> 
        box
    </div><script>
       const boxEl = document.querySelector(".box")
       console.log(boxEl.dataset)
    </script>

    \