HTML常见面试题

594 阅读4分钟

doctype的作用。标准模式和兼容模式的区别

doctype声明位于html文档第一行。告知浏览器解析器用什么标准解析该文档

这两种模式都是以浏览器支持的最高标准来运行的。在兼容模式中,页面向后兼容,模拟老式浏览器行为,以防止站点无法工作。

HTML5 为什么只需要写 ,而不需要引入 DTD?

因为HTML5不基于SGML,所以不需要对DTD进行引用,但需要doctype来规范浏览器的行为

SGML 、 HTML 、XML 和 XHTML 的关系?

  • SGML是标准通用标记语言,是一种定义电子文档结构和描述的国际标准语言。是所有电子文档标记语言的起源
  • HTML是超文本标记语言,主要是用于规定怎么显示网页
  • XML是可扩展标记语言,XMLHTML最大的区别是XML标签可以自己创建,数量无限。而HTML是不可以的
  • XHTML是现在基本上所有网页用的标记语言,本质其实和HTML没什么区别,就是比HTML更加严格

DTD介绍

DTD文档类型定义是一组机器可读的规则。它们定义XMLHTML特定版本中所有允许的元素和它们的属性层次关系的定义。在解析网页时,浏览器使用这些规则检查页面有效性并且采取相应的措施

行内元素和块级元素的定义,以及区别

属性值block则是块级元素,而inline则是行内元素。块级元素会占据一定的空间,但行内元素没有独立的空间,是依附于块级元素存在的。

区别

  • 格式,默认情况下行内元素不会换行
  • 内容,行内元素只能包含文本和其他行内元素。块级则既可以包含行内元素还可以包含块级元素
  • 行内元素设置width/height无效

页面导入样式时,使用link和@import有什么区别?

  • link除了加载css外还能定义rel等属性,而importcss提供的,只能用于加载css
  • link引用css时,在页面载入时同时加载。而import需要页面完全载入后才加载
  • linkXHTML标签,无兼容问题。而import对低版本浏览器不支持
  • link支持使用js控制DOM改变样式,而import不支持

行内元素有哪些 块元素 空元素

  • 行内元素:b span a img input select strong
  • 块级元素:div li ol ul dl dd dt h1 h2 p
  • 空元素:br hr img input link meta(标签内没有内容的HTML标签称为空元素)

浏览器内核的理解

主要分为两部分:渲染引擎JS引擎

渲染引擎的职责就是渲染,即浏览器窗口中所显示的请求内容

JS引擎:解析和执行JS来实现网页的动态效果

HTML5新特性

绘画 canvas

媒体 video audio

本地离线储存 localstorage seesionstorage

语义化更好的元素 article footer header nav section

表单控件 email url date time search

新技术 websocket

简述一下你对html语义化的了解

用正确的标签做正确的事,html语义化让内容更加结构化,更清晰,便于浏览器解析。即使在没有css的情况下,也以一种文档格式显示,并且容易阅读的。搜索引擎的爬虫也依赖于html标记来确定上下文的关系,利于seo。使阅读源代码的人更容易将网站分块,便于阅读理解

input和textarea的区别

input是一个单行输入框,具有value属性,但是它不能自动换行。而textarea是多行输入框,没有value属性,可以自定换行

div模拟textarea

<div class="box" contenteditable="true></div>
.box{
    width:200px;
    min-height:60px;
    max-height:300px;
    _height:60;
    overflow-x:hidden;
    overflow-y:auto;
    word-wrap:break-word;
    outline:0;
    -webkit-user-modify:read-write-plaintext-only;
    border:1px soli red;
}

移动端忽略页面中的数字识别为电话号码

<meta name="format-detection" content="telephone=no">

iframe有哪些缺点

会阻塞页面加载、搜索引擎无法解读这种页面,不利于seoiframe和主页面共享连接池,而浏览器对相同域有连接限制,所以会影响页面的并行加载

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

title属性没有明确意义,只表示标题。而h1代表有层次的标题

strong表明重点内容,有加强语气的成分 b表示强调内容

i内容展现为斜体 em强调的文本

渐进增加和优雅降级

渐进增强:一开始就针对低版本浏览器进行页面构建,再针对高版本浏览器进行效果交互追加功能

优雅降级:一开始就开始构建完整功能,然后针对低版本浏览器修复