视觉艺术

HTML 相关题目整理

2021-03-13  本文已影响0人  婆娘漂亮生活安逸

写在前面的,该系列题目解析,我是整合各类网上资源,做出的回答。每道题我都尽量贴图,贴 code ,以我认为的最好理解的方式展现出来。
持续更新...

doctype 有什么作用?HTML5 为什么只需要写 <!DOCTYPE HTML>


data- 属性有什么好处?


允许在标准内于HTML元素中存储额外的信息;用法很简单:
HTML语法:所有在元素上以data-开头的属性为数据属性。

<article
    id="electriccars"
    data-columns="3"
    data-index-number="12314"
    data-parent="cars"
>
      ...
</article>

JS访问语法: 获取对应元素,再使用dataset对象去获取到数据属性(是指 data- 后面部分,需要将 - 转为驼峰法)

var article = document.querySelector('#electriccars');

article.dataset.columns // "3"
article.dataset.indexNumber // "12314"
article.dataset.parent // "cars"

注意:每一个属性都是一个可读写的字符串。在上面的例子中,article.dataset.columns = 5.将会调整属性的值为5。
CSS访问:
可以通过 generated content 使用函数 attr() 来显示 data-parent 的内容:

article::before {
  content: attr(data-parent);
}

也同样可以在CSS中使用 属性选择器 根据data来改变样式

article[data-columns='3'] {
  width: 400px;
}
article[data-columns='4'] {
  width: 600px;
}

请描述一下 cookiessessionStoragelocalStorage 的区别?


cookies sessionStorage localStorage
存储生命周期 一般由服务器生成,可设置生效时间。如果在浏览器生成,默认关闭浏览器失效。 仅在当前会话下有效,关闭页面或者浏览器后被清除。 除非用户手动清除,否则永久保存。
存放数据大小 4k 左右 一般为 5M 左右 同←
与服务器端通信 每次都会携带在 HTTP 头部,如果过大会有性能问题 仅在浏览器中保存,不参与服务器通信 同←
易用性 源生 cookie 接口不友好,需封装在使用 源生接口可接受,也可再次封装对 Object 和 Array 有更好的兼容 同←

storage 类相关成员

成员名 方法参数 描述
length 属性 获取 storage 数量
key(n) n:索引值 根据索引值,返回 key
getItem(key) key:键名 根据 key,返回 value
setItem(key, value) key:键名,value:键值 根据 key 和 value 设置数据项,如果 key 存在,则覆盖相应 value。
removeItem(key) key:键名 删除对应的 key 的 数据项
clear() 清空当前 storage 对象

请描述一下<script>, <script async><script defer> 的区别?


<script>:浏览器在执行 html 遇到 <script> 标签时,会先停止解析,先去下载 js 文件,然后立即执行 js,等执行结束后再继续进行解析。在这个 js 执行期间,就会出现页面空白现象。
<script async>:浏览器在下载 js 同时,页面依旧解析;等下载完成时,页面停止解析,js 脚本执行结束后,恢复页面解析。
<script defer>:浏览器在下载 js ,页面同时解析,直至页面全部解析完成,才去执行 js 文件。
我从网上找了一张图,帮助理解;


注:

为什么要把 CSS link 放在 <head>,把 JS script 放在</body>前面?


主要为了提高页面的性能。
CSS 不会阻塞 DOM 解析,但会阻塞 DOM 渲染,把 CSS link 放在 <head>, 可以让页面逐步呈现,提高了用户体验;
JS 文件下载和执行会阻塞 DOM 解析,将 JS script 放在</body>前,是为了让 HTML 先解析完,最早的将页面呈现给用户。
如果 js 脚本包含 async 和 defer 就例外了,具体可看题目 4

什么是渐进式渲染(progressive rendering)?


渐进式渲染是用于提高网页性能(尤其是提高用户感知的加载速度),以尽快呈现页面的技术。
在以前互联网带宽较小的时期,这种技术更为普遍。如今,移动终端的盛行,而移动网络往往不稳定,渐进式渲染在现代前端开发中仍然有用武之地。
一些举例:

为什么要在 img 标签使用 srcset 属性?


主要是为了设置响应式图片。
在分辨率切换时,我们想要显示相同的图片内容,标准的 img src 只能指定唯一的资源文件。配合使用 srcset 和 sizes 属性可以很好的实现这一效果。

<img srcset="elva-fairy-320w.jpg 320w,
             elva-fairy-480w.jpg 480w,
             elva-fairy-800w.jpg 800w"
     sizes="(max-width: 320px) 280px,
            (max-width: 480px) 440px,
            800px"
     src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy"
>

srcset:定义了我们允许浏览器选择的图像集,以及每个图像的大小。

sizes:定义了一组媒体条件(例如屏幕宽度)并且指明当某些媒体条件为真时,什么样的图片尺寸是最佳选择。

svgcanvas 区别?


svg canvas
定义 指可伸缩矢量图形 (Scalable Vector Graphics),是一种使用 XML 描述 2D 图形的语言。矢量图 通过 JavaScript 来绘制 2D 图形。位图
支持事件处理 基于 XML,SVG DOM 中的每个元素都是可用的,可以为某个元素附加 JavaScript 事件处理器 不支持
适用场景 最适合带有大型渲染区域的应用程序(比如谷歌地图),适合静态图片展示,高保真文档查看和打印的应用场景 最适合图像密集型的游戏,能够以 .png 或 .jpg 格式保存结果图像

行内元素、块级元素、空元素有哪些?


简述 HTML 语义化理解?


HTML5 新特性?


常见的浏览器内核有哪些,介绍一下你对浏览器内核的理解?


主要分成两部分:渲染引擎(Layout Engine或Rendering Engine)JS引擎
渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
JS引擎:解析和执行javascript来实现网页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

src 与 href 的区别?


页面导入样式 link@import 有什么区别?


title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别?


(1) title 与 h1 的区别

(2) b 与 strong 的区别

(3) i与em的区别

元素的alt和title有什么异同?


HTML5 的 form 是如何关闭自动完成功能?


关闭输入框的自动完成功能有3种方法:
(1)在 IE 的 Internet 选项菜单里的内容--自动完成里面设置
(2)设置 form 的 autocomplete 为 "on" 或者 "off" 来开启或者关闭自动完成功能(关闭整个表单自动提示功能)
(3)设置输入框(input)的 autocomplete 为 "on" 或者 "off" 来开启或者关闭该输入框的自动完成功能(关闭密码域的自动完成)

Label的作用是什么?是怎么用的?


网站 SEO 怎么处理?


SEO 全称 Search Engine Optimization,搜索引擎优化。
优化可以有以下方式:
网站结构布局优化
(1) 控制首页链接数量:数量过少直接影响网站收录数量,过多则影响用户体验同时降低首页的权重。
(2) 扁平化的目录层次:尽量做到跳转3次,就可以到达网站内页。
(3) 导航优化:尽量采用文字方式,也可搭配图片导航,<img> 标签必须添加 alt 和 title 属性,即使未加载出图片时,也可以看到文字信息。其次,可以添加面包屑。
(4) 网站的结构布局 :页面头部放入主体重要的信息,页面尾部可以加入版权友情链接信息。
(5) 利用布局, 将重要的 html 代码放在最前面:SEO 抓取 html 内容从上到下,因此我们可以通过修改样式,将重要代码放在前面。
(6) 控制页面大小:减少 http 请求,提高网站的加载速度。

网页代码优化
(1) 突出重要的内容:合理设计 title、description、keywords
(2) 语义化书写 html 代码:尽量让代码语义化,在适当的位置使用适当的标签,让阅读者和 SEO 一目了然。比如使用 strong 代替 b ,使用 em 代替 i;
(3) <a> 标签优化:<a> 标签应该要加 title 说明,如果外部链接,则加上 el='nofollow' 属性,目的为了让 SEO 不去该链接,因为一旦去了外部链接就不会继续在回来了;SEO 不会执行 JS,因此 a 链接的 onclick 事件不会被读取。
(4) <h1>标签优化:一个页面有且最多只能有一个 h1 标签,比如可以放在首页的 logo;其余标题可以用<h2> 等其他标题标签
(5) <img>标签优化:应该使用 alt 属性,当网速很慢或者图片地址失效时,可以让用户了解当前图片作用。
(6) 少使用 iframe:一般不会读取其中的内容
(7) 会过滤掉 display:none 的内容

meta 标签?


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


上一篇 下一篇

猜你喜欢

热点阅读