【前端】求职必备知识点1-HTML

标题 链接
【前端】求职必备知识点1-HTML https://blog.csdn.net/karshey/article/details/131795380

DOCUTYPE的作用

DOCTYPE是document type (文档类型) 的缩写。 是HTML5中一种标准通用标记语言的文档类型声明告诉浏览器文档的类型 ,便于解析文档。不同的渲染模式会影响浏览器对 CSS 代码甚至 JavaScript 脚本的解析。它必须声明在HTML⽂档的第⼀⾏.

浏览器渲染页面的两种模式

  • CSS1 Compat:标准模式(Strick mode),浏览器使用W3C的标准解析渲染页面。浏览器以其支持的最高标准呈现页面。
  • BackCompat:怪异模式(混杂模式)(Quick mode),默认模式,页面以一种比较宽松的向后兼容的方式显示。

DOCTYPE 不存在或者形式不正确 会导致HTML或XHTML文档以混杂模式呈现,就是把如何渲染html页面的权利交给了浏览器,有多少种浏览器就有多少种展示方式。因此要提高浏览器兼容性就必须重视。

HTML语义化

根据内容的结构选择合适的标签

优点:

  • 增加代码可读性,结构清晰,便于开发和维护 对机器友好,文字表现力丰富,有利于SEO
  • SEO(Search Engine Optimization)是搜索引擎优化,为了让用户在搜索和网站相关的关键词的时候,可以使网站在搜索引擎的排名尽量靠前,从而增加流量。
  • 方便设备解析(如盲人阅读器等),可用于智能分析
  • 在没有 CSS 样式下,页面也能呈现出很好地内容结构、代码结构

常见的语义化标签

title :页面主体内容
header : 页眉通常包括网站标志、主导航、全站链接以及搜索框。
nav : 标记导航,仅对文档中重要的链接群使用。
section : 定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
main,帮助到搜索引擎以及搜索工程师找到网站的主要内容,本身并不承载特殊的功能和意义。
article: 定义外部的内容,其中的内容独立于文档的其余部分。
aside : 定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表等。
footer:页脚,只有当父级是body时,才是整个页面的页脚。
address: 作者、相关人士或组织的联系信息(电子邮件地址、指向联系信息页的链接)。

在这里插入图片描述
在这里插入图片描述
什么是HTML语义化标签?常见HTML语义化标签大全_易刺猬的博客-CSDN博客

HTML5新特性

在这里插入图片描述
【HTML】H5新特性有哪些?看这篇文章就够了 - 掘金 (juejin.cn)

iframe

iframe 元素 可以在一个网站里面嵌入另一个网站内容

优点:

  • 实现一个窗口同时加载多个第三方域名下内容
  • 增加代码复用性

缺点:

  • 搜索引擎无法识别
  • 影响首页首屏加载时间
  • 兼容性差

限制iframe访问另一个页面
1、设置X-Frame-Options 响应头 ——是否允许网页通过iframe 嵌套

deny:完全禁止任何网页嵌套
sameorigin:只允许同源域名访问
allow-from url:允许url的域名可嵌套

2、设置Content-Security-Policy

CSP,内容安全策略,限定网页允许加载的资源,防范XSS攻击

"Content-Security-Policy": "frame-ancestors 'self'"//限定iframe的嵌套

判断 window.top 页面顶级窗口和 自身窗口 window.self 是否相等,若不等则是嵌入了iframe

使用iframe的例子:

在这里插入图片描述
iframe代码例子

defer 和 async

defer和async是script标签的两个属性,用于在不阻塞页面文档解析的前提线下,控制脚本的下载和执行

先了解一下页面的加载和渲染过程:

  1. 浏览器发送请求,获取HTML文档开始从上到下解析并构建DOM
  2. 构建DOM过程中,若遇到外联样式声明和脚本声明,会暂停文档解析,并开始下载样式脚本和文件
  3. 样式文件下载完成后,构建CSSDOM;脚本文件下载完成后,解析并执行,再继续解析文档构建DOM
  4. 文档解析完成后,将DOM和CSSDOM进行关联和映射,最后将视图渲染到浏览器窗口
  5. 注意,在上述过程中,脚本文件的下载和执行是和文档解析同步的,即它会阻塞文档的解析,若控制的不好,会影响用户体验,造成页面卡顿。

因此我们可以在script中声明defer和async这两个属性。

defer:用于开启新的线程下载脚本文件,并使脚本在文档解析完成后执行。 async:HTML5新增属性,用于异步下载脚本文件,下载完毕立即解释执行代码。

共同点
都是异步加载外部脚本文件
不会阻塞页面的解析
区别
async表示异步加载,表后续文档的加载和渲染与JS脚本加载和执行并行进行,脚本文件一旦加载完成,会立即执行,我们无法预测每个脚本的下载和执行时间顺序,谁先下载好谁执行。
defer表示延迟加载,加载后续文档和JS脚本加载(仅加载不执行)并行进行,JS脚本的执行需要等待文档所有元素解析完之后,load和DOMContentLoaded事件之前执行,有顺序而言。

具体可以看:https://blog.csdn.net/karshey/article/details/127025620

看图省流:

  • 原本:解析,遇到要下载的就下载,下载完执行,执行完继续解析
  • defer:解析,遇到要下载的就边下载边解析,解析完后执行
  • async:解析,遇到要下载的就下载,然后立马执行
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/karshey/article/details/131795380