html5的简单问题

1.html5结构语义化

用正确的标签做正确的事情。

便于团队的开发和维护,在没有加载css的情况下也能呈现较好的内容与结构代码,易于阅读。

有利于seo,提高可访问性。

2.html5新特性

增加:用于媒介回访的video和autio元素;本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;sessiontorage的数据在浏览器关闭后自动删除;语义化更好的内容元素;表单控件;新的技术webworker,websocket,geolocation

移除纯表现的元素和对可用性产生负面影响的元素

支持html5新标签

3.描述cookies,sessionStroage和locaStorage的区别

cookies是网站为了标示用户身份而存储在用户本地终端上的数据,cookies数据始终在同源的http请求中携带,在浏览器和服务器间来回传递

sessionStroage和locaStorage不会把数据发送给服务器,仅在本地保存。

存储大小:

cookies数据大小不超过4k,sessionStroage和locaStora也有存储大小限制,但比cookies大得多,5M或更大

有效时间:

locaStorage存储持久数据,浏览器关闭后数据不丢失,除非主动删除

sessionStroage数据在当前浏览器窗口关闭后自动删除

cookies数据在过期时间之前一直有效,即使窗口或浏览器关闭。

javascript 复制代码
<template>
  <button @click="setCookie('username','zs',1)">设置cookies</button>
  <button @click="getCookie('username')">获取cookies</button>
  <button @click="delCookie('username')">删除cookies</button>
</template>
<script setup>
function getCookie(key) {
  var cookie = document.cookie;
  var arr = cookie.split("; ");// ["username=zs","password=123456","sex=男"]
  for (var i = 0; i < arr.length; i++) {
      var newarr = arr[i].split('=');// ["username","zs"]
      if (newarr[0] == key) {
        console.log('key,value',key,newarr[1]);
          return newarr[1]
      }
  }
  return ''
}
function setCookie(key, value, day) {
  var date = new Date();
  date.setDate(date.getDate() + day)
  document.cookie = key + '=' + value + ';expires=' + date
  console.log('key, value, day',key, value, day);
}
function delCookie(key) {
  setCookie(key, "", -1)
}
</script>
4.浏览器渲染机制(网页渲染到浏览器端)分为几个步骤

a.处理html并构建dom树

b.处理css并构建cssom树

c.将domh与cssom合并成一个渲染树

d.根据渲染树来布局,计算每个节点的位置

e.调度gpu绘制,合成图层,显示在屏幕上

在构建cssom树时,会阻塞渲染,直到cssom树构建完成。所以尽量保证层级扁平,减少过渡层叠。

当html解析到script标签时,会暂停构建dom,完成后才会从暂停的地方重新开始。所以,如果想要首屏渲染的越快,就不要在首屏就加载js文件。

5.重绘和回流

重绘是当前节点需要更改外观而不会影响布局

回流是布局或几何属性需要发生改变。

回流必定会发生重绘,重绘不一定会引发回流。回流所需成本比重绘高得多,改变深层次的节点很可能导致父节点的一系列回流。

导致回流现象的操作:添加或删除可见dom元素,元素的位置发生变化,元素尺寸发生变化,内容发生变化,定位或浮动,浏览器窗口尺寸变化

减少重绘和回流:批量修改dom,对于复杂动画效果使用绝对定位使其脱离文档流,css硬件加速

6.data-* 属性的用法

在 HTML 中,data-* 属性用于存储自定义数据。可以在任何元素上使用这些属性,而 div 标签是最常见的应用之一。data-* 属性允许你在元素上存储与其相关的信息,而不会影响页面的结构或样式。

javascript 复制代码
<body>
    <div id="myDiv" data-user-id="123" data-role="admin" data-location="USA">
        用户信息
    </div>
</body>   
 <script>
     window.onload = function() {
         const myDiv = document.getElementById('myDiv');

         // 访问 data 属性
         console.log(myDiv.dataset.userId); // 输出: '123'
         console.log(myDiv.dataset.role);     // 输出: 'admin'
         console.log(myDiv.dataset.location);  // 输出: 'USA'

         // 修改 data 属性
         myDiv.dataset.userId = '456';
         myDiv.dataset.role = 'editor';

         // 输出新值
         console.log(myDiv.dataset.userId); // 输出: '456'
         console.log(myDiv.dataset.role);     // 输出: 'editor'

         // 删除 data 属性
         delete myDiv.dataset.userId;
         console.log(myDiv.dataset.userId); // 输出: undefined
    };
</script>
相关推荐
xcLeigh2 小时前
HTML5超酷响应式视频背景动画特效(六种风格,附源码)
前端·音视频·html5
ZhaiMou18 小时前
HTML5拖拽API学习 托拽排序和可托拽课程表
前端·javascript·学习·html5
懒羊羊我小弟2 天前
CSS回顾-CSS选择器详解
前端·css·html·css3·html5
逸曦穆泽2 天前
html5 实现视频播放
前端·音视频·html5
xcLeigh2 天前
HTML5实现剪刀石头布小游戏(附源码)
前端·html·html5
Java Fans2 天前
从零开始打造个人博客:我的网页设计之旅
css·html5
贩卖纯净水.3 天前
HTML5和CSS3新增特性
前端·css3·html5
不爱说话郭德纲4 天前
理解 Object.create 并正确使用 Object.create
前端·javascript·vue.js·es6·html5
伏飞而行4 天前
七、利用CSS和多媒体美化页面的习题
前端·css·html5
Akiiiira4 天前
【网页设计】HTML5 和 CSS3 提高
前端·css3·html5