前端面试 | 18 个常见 HTML 问题与答案
HTML 是互联网上应用开发最广泛的语言之一,它可以带我们深入 Web 开发的世界,提高技能。如果你想从事 WEB 开发(前端开发)相关的职业,HTML 的基础就必须熟练掌握,下面就以问答的形式开启我们的回顾之路,为即将踏入这个行业的新人们铺铺路。
Q1:什么是 HTML?
超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML 使文本更具交互性和动态性,是构建网站及 WEB 应用的基石,HTML 允许嵌入图像、表格、链接,并且可以用于创建交互式表单,它被用来结构化信息。
Q2:HTML 元素和标签有什么区别?
元素代表某种结构或语义,通常由开始标签、内容和结束标签组成。
标签就是<head>
、<body>
、<table>
等被尖括号 <
和 >
包起来的对象,绝大部分的标签都是成对出现的,如<div></div>
、<h1></h1>
。
Q3:块级元素和内联元素有什么区别?
块级元素:占据其父元素(容器)的整个空间,创建了一个“块”。通常浏览器会在块级元素前后另起一行,能容纳其他块元素或者内联元素。包括:<p>
、 <div>
、<blockquote>
、<img>
、<section>
、<form>
、<nav>
、<h1>-<h6>
、<ul>
和 <li>
内联元素:只占据它对应标签的边框所包含的空间,只能容纳文本或者其他内联元素的元素。包括:<span>
、<em>
、<q>
、<label>
、<strong>
、<a>
、<input>
Q4:什么是语义 HTML?
语义 HTML 是一种编码风格,它是使用 HTML 标记来加强内容的语义或含义。在语义 HTML 中 <b> </b>
标签不用于粗体语句而是 <strong></strong>
,斜体语句不是用 <i> </i>
,而是用 <em></em>
。
Q5:列出常用的列表标签
在页面制作中涉及列表,在 HTML 中有专门用于表示列表数据的标签,如下:
有序列表:有序列表以编号格式显示元素,由
<ol>
标签表示无序列表:无序列表以项目符号格式显示元素,它由
<ul>
标签表示。定义列表:定义列表以定义形式显示元素,就像在字典中一样,如
<dl>
、<dt>
和<dd>
标签用于定义描述列表。
Q6:解释 HTML 标签语义
HTML 是标记语义,文档内容是有其语义的,常见的如下:
<header>
:用于定义文档的标题。<nav>
:定义了导航链接<section>
: 用于定义文档中的一个单元<article>
:用于定义独立的、自包含的文章<aside>
:用于定义内容之外的内容<footer>
:用于定义文档的页脚
Q7:什么是跑马灯?
跑马灯效果在以前是很经典的效果,几乎每个网站都有。marquee
用于网页上的滚动文本,它可以自动向上、向下、向左或向右滚动图像或文本,只要将要滚动的文本放在 <marquee>……</marquee>
标签内。
Q8:div
和 span
的区别?
span
和div
的区别在于span
元素是内联的,通常用于一行内的一小块,例如段落内。而 div
是块级,相当于在其前后有一个换行符,用于对较大的代码块进行分组。
Q9:<!DOCTYPE html>
标签是否为 HTML
标签?
不是,<!DOCTYPE html>
声明不是 HTML
标签。<!DOCTYPE>
声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。<!DOCTYPE>
声明必须在 HTML 文档的第一行。
HTML 有多种文档类型,例如 HTML 4.01 Strict
、HTML 4.01 Transitional
、HTML 4.01 Frameset
、XHTML 1.0 Strict
、XHTML 1.0 Transitional
、XHTML 1.0 Frameset
、XHTML 1.1
等。因此,<!DOCTYPE html>
用于定义 HTML 文档类型。
对于HTML5
文档,没有 DTD
,也就没有严格模式与混杂模式的区别,HTML5
有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。
Q10:HTML
、XML
和 XHTML
有什么区别?
HTML:超文本标记语言(HyperText Markup Language)
XML:可扩展标记语言(Extensible Markup Language)
XHTML:可扩展超文本标记语言(Extensible Hypertext Markup Language)
XHTML 是当前 HTML 版的继承者,是 XML 文档中的 HTML。
HTML 和 XHTML 之间的区别是:
HTML 是一种标准通用标记语言的应用,XML 是一种可扩展标记语言的应用程序。
HTML 标签不区分大小写 XHTML 所有标签都必须小写。
XHTML 所有属性都必须使用双引号
HTML 是关于显示信息,而 XHTML 是关于描述信息。
Q11:什么是图像地图?
有时需要为一张图片不同区域增加不同的链接,通常的做法是使用图像地图也成图像热点。具体的代码如下:
不过现在已经有很多替代方案。
Q12:超链接和锚点的区别?
HTML 中的<a>
是 anchor
(锚)的缩写,现在把带有 href
属性的称作超链接,把没有 href
属性只有 name
属性的称作锚点连接或者命名锚点。超链接和锚点只是标签 <a>
的两种呈现方式。命名锚点同城用于页面定位,超链接用于页面间的跳转。
Q13:简述HTML5
离线储存
现在日常使用的 APP,有部分内容是使用内嵌 webview 的方式,浏览页面内容,这种方案的优势是 WEB 和 APP 共用一个网站,像掘金的 APP 就是使用这种方式。为了避免重复加载页面或者在无网络的情况下正常展现内容,可以采用离线存储,其中一种方案就是使用 manifest
。
在线情况下,浏览器发现 HTML 头部有manifest
属性,它会请求manifest
文件,第一次访问,那么浏览器就会根据manifest
文件的内容下载相应的资源,进行离线存储。
在页面头部加入manifest
属性,如下:
然后在cache.manifest
文件中编写离线存储的资源规则,代码如下:
Q14:什么是iframe
iframe
是嵌入式框架, 是 html 标签, 是一个内联元素, iframe
元素会创建包含另外一个文档的内联框架(即行内框架) 。通常可以使用 iframe 内嵌网页,跨域 ajax 通讯的实现,微前端,广告嵌入等。
Q15:position
有哪些值?
position
属性用于指定一个元素在文档中的定位方式。top
、right
、bottom
和 left
属性决定了该元素的最终位置。
static
: 默认值,没有定位,指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置,此属性下top
、right
、bottom
、left
和z-index
属性无效。relative
相对定位:元素先放置在未添加定位时的位置,在不改变页面布局的前提下调整元素位置(此时会在此元素未添加定位时所在位置留下空白)。position:relative
对table-row
、table-column
、table-cell
、table-caption
元素无效。absolute
绝对定位:生成绝对定位的元素,元素会被移出正常文档流,并不为元素预留空间,通过指定元素相对于最近的非static
定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins
),且不会与其他边距合并。fixed
固定定位:生成绝对定位的元素,元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置,元素的位置在屏幕滚动时不会改变sticky
元素根据正常文档流进行定位,相对它的最近滚动祖先和最近块级祖先。
Q16:title
和 h1
的区别?
h1
不等于 title
。h1
为大标题,一般用作文章的标题,作用如同一张报纸的大标题,使用读者在没看内容之前就大概了解本文的旨意,它是直接给用户看的。title
为页面标题,可以包含 h1
的标题,一般面对的是搜索引擎和浏览器标签。
Q17:display:none
和visibility:hidden
的区别
都能把页面上的元素隐藏起来,两者的区别如下:
display:none
:被隐藏的对象不会占用任何物理空间,不会影响其他元素的布局visible:hidden
:使对象在网页上不可见,但是会在网页上占用物理空间,通俗来说就是看不见但摸得到。属性值改变后是否重新渲染:
visibility:hidden
不渲染;display:none
会重新渲染。
Q18:回流和重绘
回流,当渲染树中部分或全部元素的尺寸、结构、或某些属性发生改变时,浏览器重新渲染部分或全部文档的过程。重绘,当页面中元素样式的改变并不影响它在文档流中的位置时(例如:color
、background-color
、visibility
等),浏览器会将新样式赋值给元素并重新绘制它的过程。两者会对页面的性能产生不同的影响,这里不展开介绍。
版权声明: 本文为 InfoQ 作者【devpoint】的原创文章。
原文链接:【http://xie.infoq.cn/article/50a240e46c9db63a0ed541175】。文章转载请联系作者。
评论