HTML语义化元素+案例分析 | 青训营

59 阅读5分钟

1 文档声明

  • 格式 : <!DOCTYPE html>

  • 放在HTML文件的首行

    • 告诉浏览器是HTML5界面
    • 让浏览器用HTML5的标准解析该文档
    • 不能省略,否则会影响兼容性

2 html元素

  • lang

    • 帮助语音合成工具确定使用发音

    • 帮助翻译工具确定使用的翻译原则

    • 常用

      • lang="en" ,表示HTML文档是英文
      • lang="zh-CN" ,表示HTML文档是中文
  • head

    • 文档的标题 \ 引用的文档样 \脚本等
    • 整个页面的配置
  • title

    • 网页的标题
  • meta

    • 字符编码,让网页精准显示文字
    • 不设置或设置错误会导致乱码
    • 一般只用utf-8编码
  • body

    • 浏览器窗口看到的
    • 网页的具体内容和结构
  • html

    • 根元素:所有其他元素是该元素的后代

3 常用元素

  • h

    • 重要文字做标题(head)
    • h1~h6:h1级别最高,h6级别最低
  • p

    • 文本的一个段落
    • 多个段落之间有间距
    • tip :禁止显示歧义提示(防止在段落里面有中文字符的时候提示歧义)
  • img

    • 显示图片(将一份图像嵌入文档)、可替换元素

    • 常见属性

      • src(source):必须的,包含想嵌入的图片文件路径

        • 绝对路径:(基本不用)

          • 不建议使用网址的图片路径,还是得下载到本地,最终部署到服务器
        • 相对路径:(方便部署到服务器)

          • 一个点:代表当前文件夹,可省略
          • 两个点:代表上级文件夹
          • 路径分隔符号:/
      • alt(不强制):

        • 当图片加载不成功,显示这段文本
        • 屏幕阅读器将会描述给阅读器的使用者,让其知道图像含义
  • a

    • 超链接,用于打开另一个新网页

    • 常见属性(双标签元素)

      • href:指定打开的网址,可以是线上的,也可以是本地的(相对/绝对路径)

      • target:其属性指定在何处显示连接的资源

        • _self:默认值,在当前窗口打开url
        • _blank:在一个新窗口打开Url
        • _parent:在父窗口打开url(跟self结果一样)
        • _top:在顶层窗口打开url
    • 描点链接:写在代码里面

    • a与img结合使用:写在代码里面

    • a的其他应用

      • 下载一个文件:让浏览器下载、
      • 发邮件等
  • iframe(不常用)

    • 有些网站可以嵌入
    • 有些网站不可以:网页的network中的X iframe 为sameorign
    • iframe与a:
  • div(division)

    • 分开,分配
    • 多个div元素包裹的内容会在不同行显示
    • 作为一个大容器,代表一个整体
    • 把网页分割成多个独立的部分
  • span

    • 跨域,涵盖
    • 多个span元素包裹的内容会在同一行显示
    • 默认情况下,与普通文本无区别
    • 可用于区分特殊文本和普通文本

4 不常用元素

  • strong:内容加粗、强调【同理,css也可以做到】
  • i :内容倾斜
  • code :显示代码【跟编程相关的网站可能会用到】
  • br :换行,但开发中不用这个,而是div

5 HTML全局属性

  • 看那个文档网站

  • 常用

    • id:文档中唯一的标识符
    • class:元素类名,允许css,javascrict访问
    • style:给元素添加内联样式
    • title:呈现给用户(用户鼠标放在此处呈现小字提示)

6 URL统一资源定位符

  • 格式:

    • 协议类型://服务器地址:端口号/文件路径?查询#片段Id
  • 俗称 网络地址,可以是一个html页面、一个Css文档、一幅图像等等,参照平常浏览器上网打开过的页面

  • 与URI区别:

    • UPI:统一字眼标志符,用于标识Web技术使用的逻辑或物理资源
    • URL是URI的一个子集

7 SEO搜索引擎优化

通过了解搜索引擎的云锁规则来调整网站,以及提高网站在有关搜索引擎的排名方式

8 字符实体

  • 当需要显示<>以及空格等等特殊字符实体给用户时,防止文档解析产生歧义,需要用专门的格式让机器识别,格式如下,两个符号之间的是要显示的字符实体,有对应的字母
  • 比如空格对应  &nbsp;

9 元素的语义化+案例分析

  • 用正确的元素做正确的事情
  • 理论上,所有的HTML元素,通过设置样式,都能实现相同的事情
  • 但是,不方便代码维护不利于开发者之间沟通,不利于语音合成工具正确识别网页元素的用途,不利于SEO

下面将结合实际网站的HTML结构,对比非语义化标签的差异

(1)百度网站:

百度网站使用了一些语义化标签,如<header>、<nav>、<article>、<section>等。例如,百度首页的顶部导航栏使用<nav>标签,而文章页面则使用<article>标签。此外,百度网站还使用了语义化标题标签,如<h1>、<h2>、<h3>等。

(2)京东网站:

京东网站使用了大量的非语义化标签,如<div>、<span>等。例如,京东首页的顶部导航栏使用<div>标签,而文章页面则使用<div><span>标签。此外,京东网站还使用了大量的CSS样式来控制页面布局和样式。

(3) 知乎网站:

知乎网站使用了大量的语义化标签,如<header>、<nav>、<article>、<section>等。例如,知乎首页的顶部导航栏使用<nav>标签,而文章页面则使用<article>标签。此外,知乎网站还使用了语义化标题标签,如<h1>、<h2>、<h3>等。

(4)豆瓣网站:

豆瓣网站使用了大量的非语义化标签,如<div>、<span>等。例如,豆瓣首页的顶部导航栏使用<div>标签,而文章页面则使用<div><span>标签。此外,豆瓣网站还使用了大量的CSS样式来控制页面布局和样式。

通过对比以上四个网站的HTML结构,可以看出语义化标签和非语义化标签的差异。语义化标签有助于提高代码的可读性、可维护性和搜索引擎优化,而非语义化标签则可能会降低代码的可读性和可维护性。因此,在实际开发中,应该尽可能地使用语义化标签来提高代码的质量和可维护性。