H5面试题

本文主要探讨HTML5面试中的常见问题,包括DOCTYPE的作用和模式区分,HTML标签的语义化,内联元素与块元素的区别,以及id和class的使用。此外,还涉及前端存储技术如sessionStorage、localStorage与cookie的对比,跨域问题及其解决方案,以及浏览器渲染原理和前端性能优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOCTYPE有什么作用?标准模式与混杂模式如何区分?它们有何意义?

告诉浏览器使用哪个版本的HTML规范来渲染文档。DOCTYPE不存在或形式不正确会导致HTML文档以混杂模式呈现。

标准模式(Standards mode)以浏览器支持的最高标准运行;混杂模式(Quirks mode)中页面是一种比较宽松的向后兼容的方式显示。
head
head标签用于定义文档的头部。文档的头部描述了文档的各种属性
和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系
等。绝大多数文档头部包含的数据都不会真正作为内容显示给读
者。
body
body 元素包含文档的所有内容(比如文本、超链接、图像、表格和
列表等等。)
它会直接在页面中显示出来,也就是用户可以直观看到的内容.
title
可定义文档的标题,它显示在浏览器窗口的标题栏或状态栏上。

标签是 标签中唯一**必须要求包含**的东西,就是说写head一定要写title <title> 的增加有利于SEO优化

SEO是搜索引擎优化的英文缩写。通过对网站内容调整,满足搜 索引擎的排名需求

伪类和伪元素

伪类:用于已有元素处于某种状态时为其添加对应的样式,这个状态是根据用户行为而动态变化的。

例如:当用户悬停在指定元素时,可以通过:hover来描述这个元素的状态,虽然它和一般css相似,可以为 已有元素添加样式,但是它只有处于DOM树无法描述的状态下才能为元素添加样式,所以称为伪类。

伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。

例如,我们可以通过:before来在一个元素之前添加一些文本,并为这些文本添加样式,虽然用户可以看见 这些文本,但是它实际上并不在DOM文档中。

语义化的优点

易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
方便屏幕阅读器解析,如盲人阅读器根据语义渲染网页
有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。

内联元素和块元素

在这里插入图片描述
在这里插入图片描述

id和class

在这里插入图片描述

如何实现浏览器内多个标签页之间的通信?

调用 localstorge、 cookies等数据存储,可以实现标签页之间的通信

请描述一下 sessionStorage和 localStorage的区别。

sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储,用于在本地存储一个会话中的数据,这些数据只有同一个会话中的页面才能访问,当会话结束后,数据也随之销毀。
localstorage用于持久化本地存储,除非主动删除数据,否则数据是永远不会过期的。

localStorage和 cookie的区别是什么?

cookie的大小是受限的,并且每次请求一个新页面时, cookie都会被发送过去,这样无形中浪费了带宽。另外, cookie还需要指定作用域,不可以跨域调用。
localStorage的概念和cookie相似,区别是 localStorage是为了更大容量的存储设计的。

除此之外, localStorage拥有 setlten, getItem、 removeltem、 clear等方法, cookie则需要前端开发者自己封装 setCookie和 get Cookie。但 cookie也是不可或缺的,因为 cookie的作用是与服务器进行交互,并且还是HTP规范的一部分,而 localStorage仅因为是为了在本地“存储”数据而已,无法跨浏览器使用。

Cookies,sessionStorage 和 localStorage 的区别?

存储位置不同:
cookies 是为了标识用户身份而存储在用户本地终端上的数据,始终在 同源 http 请求中携带,即 cookies 在浏览器和服务器间来回传递,
sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存。
存储大小的限制不同:
cookie 保存的数据很小,不能超过 4k,
sessionStorage 和 localStorage 保存的数据大,可达到 5M
数据的有效期不同:
cookie 在设置的 cookie 过期时间之前一直有效,即使窗口或者 浏览器关闭。
sessionStorage 仅在浏览器窗口关闭之前有效。
localStorage 始终有效, 窗口和浏览器关闭也一直保存,用作长久数据保存。
作用域不同:
cookie 在所有的同源窗口都是共享;
sessionStorage 不在不同的浏览器 共享,即使同一页面;
localStorage 在所有同源窗口都是共享。
**共同点:**都是保存在浏览器端,且是同源的。

什么是跨域,如何解决

跨域是指浏览器的同源策略是不允许执行其他网站上的脚本,只要协议,主机地址,端口其中之一不同就算跨域。
跨域一般的解决方法时Jsonp,script标签不受同源策略影响;前台还可以设置代理proxy;后端也可以设置CROS,Access-Control-Allow-Origin;此外还有nginx的反向代理。

HTML5如何实现跨域

在服务器端设置允许在其他域名下访问,例如允许所有域名访问以下内容。

response.setHeader("Access-Control-Allow-Origin""*");
response.setHeader ("Access-Control-Allow-Methods""POST");
response.setHeader("Access-Control-Allow-Headers""x-requested-with, content-type");

浏览器的渲染原理

1、HTML被HTML解析器解析成DOM树。
2、CSS被CSS解析器解析成CSS规则树。
3、浏览器会将CSS规则树附着在DOM树上,并结合两者生成渲染树Render Tree。
4、生成布局(flow),浏览器通过解析计算出每一个渲染树节点的位置和大小,在屏幕上画出渲染树的所有节点。
5、将布局绘制(paint)在屏幕上,显示出整个页面

前端性能优化

合并图片
减少http请求
css写在头部,js写在底部
使用CDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值