当前位置: 首页 > news >正文

HTML面试题(2)

HTML5相比HTML有哪些更新?

  1. 语义化更强的HTML元素:引入artitcle、section、nav、header、footer等元素,帮助创建结构更清晰、语义更明确的网页,有利于SEO和内容的可访问性
  2. 表单控件增强:新增多种表单输入类型(如email、data),直接支持数据验证,提高了表单的易用性和功能性
  3. 音视频支持:原生支持音频(audio)和视频(video),无需依赖外部插件,提高了访问多媒体内容的速度和兼容性
  4. 新的API支持:如Canvas Geolocation Drap and Drop,让网页能支持更复杂的用户交互
  5. Web存储和WebSockets:提供了更先进的数据存储方案(localStorage和sessionStorage)和实时通信能力(WebSockets),让网页应用像传统的桌面应用
  6. 更好的连接性和离线支持:通过应用程序缓存(Application Cache)支持离线应用,使得Web应用能够更灵活地在没有网络的环境下使用

img标签的srcset属性的作用?

提供多个文件源和各自的分辨率,浏览器会根据设备的屏幕尺度和像素密度(DPI)选择最适合的图像。

行内元素有哪些?块级元素有哪些?空(void)元素有哪些?

行内元素(Inline Elements)

行内元素通常位于文本内部,它们不会导致文本换行,而是在内容流中连续展示。这些元素主要用于改变一小块内容的样式或行为,不影响周围的布局。

  • <span>
  • <a>
  • <img>
  • <b>和<i>
  • <input>
  • <select>:在表达中创建下拉选择菜单
  • <strong>

块级元素(Block-level-Elements)

块级元素在页面中通常表现为“块”,会在其前后自动换行,默认占据父元素的完整宽度。

  • <div>
  • <p>
  • <h1>到<h6>
  • <ul> <ol>:分别定义有序列表和无序列表
  • <li>:列表项

空元素(Empty Elements)

空元素是那些只有开始标签,没有结束标签的元素,因为它们不包含任何内容

  • <img>
  • <br>
  • <hr>:水平分割线
  • <input>:用于创建输入字段,如文本框、复选框、单选框等
  • <meta>:提供关于HTML文档的元数据,如定义字符集,页面描述等
  • <link>:用于链接外部资源,如CSS文件

HTML5的离线储存如何使用?

离线存储(Application Cache):允许开发者指定哪些文件(如 HTML 页面、图像、JS 脚本和 CSS 样式表)应该被浏览器缓存,并能够在没有网络连接时访问它们。

1.创建清单文件

        创建一个以.appcache结尾的清单文件,在文件中列出需要缓存的资源。这个文件必须声明MIME类型,即text/cache-manifest

2.引用清单文件

        在HTML页面的<html>中使用manifest属性引用这个清单文件

<html manifest="example.appcache">

3.结构清单文件

# 2024-01-01 v1.0.0
CACHE:
/css/style.css
/js/app.js
/images/logo.pngNETWORK:
*FALLBACK:
/ /offline.html
  • CACHE:首次下载后会被缓存,支持离线访问。
  • NETWORK:不会缓存,从浏览器请求。*表示默认情况下,所有其他资源都需要网络连接才可以访问。
  • FALLBACK:备用页面的路径。如果用户请求的资源无法访问,将跳转到备用路径。

浏览器如何对离线缓存的资源进行管理和加载?

管理

  1. 创建并引用清单文件
  2. 下载资源到缓存:用户首次访问时,浏览器解析清单文件并下载指定资源到应用程序缓存中
  3. 更新缓存:每次访问页面时,浏览器都会检查清单文件是否更新。如果更新,重新下载清单文件中指定的所有资源并替换掉旧缓存。
  4. 离线访问:资源被缓存,即可离线访问

加载

  1. 缓存中存在资源,从缓存加载
  2. 缓存中不存在资源且设备离线,使用备用资源
http://www.lryc.cn/news/485035.html

相关文章:

  • 微服务day07
  • 芯原科技嵌入式面试题及参考答案
  • 二叉树Golang
  • 通过css的哪些方式可以实现隐藏页面上的元素?
  • 微信小程序 === 使用腾讯地图选点
  • Redis高可用-Cluster(集群)
  • Spring Boot编程训练系统:数据管理与存储
  • 报告解读 | 创意经济2024:如何在变革中抢占先机?
  • Flume1.9.0自定义Sink组件将数据发送至Mysql
  • 如何在 Ubuntu 24.04 上安装和配置 Fail2ban ?
  • uniapp如何i18n国际化
  • C++__day1
  • Emacs进阶之插入时间信息(一百六十三)
  • Java线程池:ThreadPoolExecutor原理解析
  • 二叉树、哈夫曼报文大全
  • NotePad++中安装XML Tools插件
  • 聊天服务器(7)数据模块
  • VS2022编译32位OpenCV
  • WP网站如何增加文章/页面的自定义模板
  • 【Linux网络编程】简单的UDP网络程序
  • LabVIEW中坐标排序与旋转 参见附件snippet程序
  • SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型|文献速递-基于深度学习的病灶分割与数据超分辨率
  • jwt封装教程
  • postman变量和脚本功能介绍
  • 【AI新领域应用】AlphaFold 2,原子级别精度的蛋白质3D结构预测,李沐论文精读(2021Nature封面,2024诺贝尔奖)
  • Figma汉化:提升设计效率,降低沟通成本
  • 前端知识点---this的用法 , this动态绑定(Javascript)
  • web——upload-labs——第五关——大小写绕过绕过
  • String类型
  • Ubuntu24.04安装和配置Redis7.4