40 个重要的 HTML 5 面试问题及答案






4.86/5 (110投票s)
在本文中,我们将快速回顾40个重要的HTML 5面试问题及答案,祝您求职顺利。
目录
介绍
我是一名ASP.NET MVC开发人员,最近在找工作时,被问了很多与HTML 5及其新功能相关的问题。因此,以下是40个重要的面试问题,可以帮助您回顾HTML 5的知识。
这些问题并不是获得工作的“灵丹妙药”,但它们在您想要快速复习主题时很有帮助。
祝您求职顺利。
来源: -www.questpond.com
SGML、HTML、XML和XHTML之间有什么关系?
SGML(Standard Generalized Markup Language - 标准通用标记语言)是一种定义文档标记如何指定的标准。它仅仅是一种元语言,描述了文档标记应该是什么样的。HTML是一种使用SGML描述的标记语言。
因此,他们通过SGML创建了DTD,HTML会引用并需要遵循它。所以您总会在HTML页面顶部找到“DOCTYPE”属性,它定义了用于解析目的的DTD。
<!--!doctype-->
解析SGML很麻烦,所以他们创建了XML来改善这一点。XML使用了SGML。例如,在SGML中您必须开始和结束标签,但在XML中您可以拥有自动关闭的标签(“”>)。
XHTML是根据HTML 4.0使用的XML创建的。所以,例如,在SGML派生的HTML中,“
”不是有效的,但在XHTML中它是有效的。您可以参考如下代码片段中所示的XML DTD。
<!--!doctype--><!--!doctype-->
HTML 5是HTML的新标准,其主要目标是在无需任何额外插件(如Flash、Silverlight等)的情况下提供一切。它拥有动画、视频、丰富的GUI等一切功能。
HTML5是万维网联盟(W3C)和Web超文本应用技术工作组(WHATWG)合作的成果。
如果我不写 <! DOCTYPE html> ,HTML 5还能工作吗?
不,浏览器将无法识别它是一个HTML文档,并且HTML 5标签将无法正常工作。
哪些浏览器支持HTML 5?
几乎所有浏览器,即Safari、Chrome、Firefox、Opera、Internet Explorer都支持HTML 5。
HTML 5的页面结构与HTML 4或之前的HTML有什么不同?
一个典型的网页包含头部、底部、导航、中央区域和侧边栏。现在,如果我们想用HTML 4为HTML的各个部分命名来表示相同的内容,我们可能会使用DIV标签。
但在HTML 5中,通过创建这些部分的元素名称,使HTML更具可读性,从而使事情变得更清晰。
以下是构成页面结构的HTML 5元素的更多详细信息。
- <header>:表示HTML的头部数据。
- <footer>:页面的底部部分。
- <nav>:页面中的导航元素。
- <article>:自包含的内容。
-
<section>:在article中使用,用于定义部分或将内容分组到部分中。
HTML 5中的datalist是什么?
HTML 5中的Datalist元素有助于在文本框中提供自动完成功能,如下所示。
以下是DataList功能的HTML代码:-
<input list="Country">
<datalist id="Country">
<option value="India">
<option value="Italy">
<option value="Iran">
<option value="Israel">
<option value="Indonesia">
</datalist>
HTML 5中不同的新表单元素类型有哪些?
HTML 5中引入了10个重要的新的表单元素:-
- 颜色。
- 日期
- 日期时间-本地
- 电子邮件
- 时间
- Url
- Range
- 电话
- 数字
- 搜索
让我们一步一步地理解这些元素。
如果您想显示颜色选择器对话框。
<input type="color" name="favcolor">
如果您想显示日历对话框。
<input type="date" name="bday">
如果您想显示带有本地时间的日历。
<input type="datetime-local" name="bdaytime">
如果我们想创建一个带有电子邮件验证的HTML文本,我们可以将type设置为“email”。
<input type="email" name="email">
对于URL验证,请将type设置为“url”,如以下HTML代码所示。
<input type="url" name="sitename">
对于URL验证,请将type设置为“url”,如以下HTML代码所示。
如果您想显示带有数字范围的文本框,可以将type设置为number。
<input type="number" name="quantity" min="1" max="5">
如果您想显示一个范围控件,可以使用type as range。
<input type="range" min="0" max="10" step="2" value="6">
想让文本框成为搜索引擎框。
<input type="search" name="googleengine">
只想获取时间输入。
<input type="time" name="usr_time">
如果您想让文本框接受电话号码。
<input type="tel" name="mytel">
HTML 5中的output元素是什么?
当您需要将两个输入的计算结果汇总到一个标签中时,就需要output元素。例如,您有两个文本框(参见下图),并且您想将这些文本框中的数字相加并将它们发送到一个标签。
以下是如何使用HTML 5的output元素的代码。
<form onsubmit="return false" öninput="o.value = parseInt(a.value) + parseInt(b.value)">
<input name="a" type="number"> +
<input name="b" type="number"> =
<output name="o" />
</form>
您还可以用“valueAsNumber”替换“parseInt”,以简化操作。您还可以使用output元素中的“for”属性以获得更好的可读性。
<output name="o" for="a b"></output>
什么是SVG?
SVG代表可缩放矢量图形(Scalable Vector Graphics)。它是一种基于文本的图形语言,使用文本、线条、点等绘制图像。这使其轻量级且渲染速度更快。
我们可以用HTML 5看到一个简单的SVG示例吗?
假设我们要显示下面的简单线条,使用HTML 5 SVG。
以下是HTML 5的代码。您可以看到SVG标签,它包含用于显示星形图像的多边形标签。
<svg id="svgelem" height="[object SVGAnimatedLength]" xmlns="http://www.w3.org/2000/svg">
<line style="stroke: rgb(255, 0, 0); stroke-width: 2px;" y2="[object SVGAnimatedLength]" x2="[object SVGAnimatedLength]" y1="[object SVGAnimatedLength]" x1="[object SVGAnimatedLength]">
</line>
HTML 5中的canvas是什么?
Canvas是一个HTML区域,您可以在其上绘制图形。
</canvas>
要在canvas区域上绘制,我们首先需要获取context部分的引用。以下是canvas部分的.代码。
<a a="" below="" body="" c="document.getElementById("mycanvas");" canvas="" complete="" ctx="c.getC>So how can we draw a simple line on Canvas? </a></h2> <ul> <li>Define the Canvas area.</li> <li>Get access to canvas context area.</li> <li>Draw the graphic.</li> </ul> <p><strong>Define the canvas area </strong></p> <p>So to define canvas area you need to use the below HTML code. This defines the area on which you can draw.</p> <pre> <canvas height="> var c=document.getElementById("mycanvas"); var ctx=c.getContext("2d"); </a>
现在,一旦您获得了context对象的访问权限,我们就可以开始在context上绘制了。所以,首先调用“move”方法并从一个点开始,使用line方法绘制线条,然后对其应用stroke(描边)。
<a a="" below="" body="" c="document.getElementById("mycanvas");" canvas="" complete="" ctx="c.getC>So how can we draw a simple line on Canvas? </a></h2>
<ul>
<li>Define the Canvas area.</li>
<li>Get access to canvas context area.</li>
<li>Draw the graphic.</li>
</ul>
<p><strong>Define the canvas area </strong></p>
<p>So to define canvas area you need to use the below HTML code. This defines the area on which you can draw.</p>
<pre>
<canvas height=">
</a><a name="WhatisthedifferencebetweenCanvasandSVGgraphics">What is the difference between Canvas and SVG graphics? </a>
注意: - 如果您看到前两个问题,canvas和SVG都可以绘制图形。所以在这个问题中,面试官希望知道您何时会使用哪一个。
SVG | 画布 |
这就像“绘制然后记住”。换句话说,使用SVG绘制的任何形状都可以被记住并进行操作,然后浏览器可以重新渲染它。 | Canvas就像“绘制然后忘记”。一旦绘制完成,您就无法访问该像素并对其进行操作。 |
SVG适用于创建图形,如CAD软件,一旦绘制完成,用户就希望对其进行操作。 | Canvas适用于“绘制然后忘记”的场景,如动画和游戏。 |
这很慢,因为它需要记住坐标以供以后操作。 | 这很快,因为没有以后记住东西的意图。 |
我们可以将事件处理程序与绘图对象关联。 | 在这里,我们无法将事件处理程序与绘图对象关联,因为我们没有它们的引用。 |
与分辨率无关。 | 与分辨率相关。 |
如何使用HTML 5的Canvas和SVG绘制矩形?
使用SVG的HTML 5代码矩形代码。
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect style="fill: rgb(0, 0, 255); stroke-width: 1px; stroke: rgb(0, 0, 0);" height="[object SVGAnimatedLength]" width="[object SVGAnimatedLength]">
</rect>
使用canvas的HTML 5矩形代码。
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.rect(20,20,150,100);
ctx.stroke();
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle fill="red" stroke-width="2" stroke="black" r="[object SVGAnimatedLength]" cy="[object SVGAnimatedLength]" cx="[object SVGAnimatedLength]">
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 70;
context.beginPath();
context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
context.fillStyle = 'green';
context.fill();
context.lineWidth = 5;
context.strokeStyle = '#003300';
context.stroke();
<!DOCTYPE html>
<html>
<body önload="DrawMe();">
<svg height="[object SVGAnimatedLength]" width="[object SVGAnimatedLength]">
<circle id="circle1" cx="[object SVGAnimatedLength]" cy="[object SVGAnimatedLength]" r="[object SVGAnimatedLength]" style="stroke: none; fill: rgb(255, 0, 0);">
</body>
<script>
var timerFunction = setInterval(DrawMe, 20);
alert("ddd");
function DrawMe()
{
var circle = document.getElementById("circle1");
var x = circle.getAttribute("cx");
var newX = 2 + parseInt(x);
if(newX > 500)
{
newX = 20;
}
circle.setAttribute("cx", newX);
}
</script>
</html></circle>
CSS中的选择器是什么?
选择器有助于选择要应用样式的元素。例如,下面是一个简单的样式,称为“intro”,它为HTML元素的背景应用红色。
<style> .intro { background-color:red; } </style>
要将上述“intro”样式应用于div,我们可以使用“class”选择器,如以下图片所示。
<div class="intro"> <p>My name is Shivprasad koirala.</p> <p>I write interview questions.</p> </div>
如何使用ID值应用CSS样式?
所以,假设您有一个ID为“mytext”的HTML段落标签,如以下代码片段所示。
<p id="mytext">This is HTML interview questions.</p>
您可以使用“#”选择器和“id”名称创建样式,并将CSS值应用于段落标签。所以,要将样式应用于“mytext”元素,我们可以使用“#mytext”,如以下CSS代码所示。
<style> #mytext { background-color:yellow; } </style>
快速回顾一些重要的选择器。
将所有段落标签的背景颜色设置为黄色。
P,h1 { background-color:yellow; }
将div标签内的所有段落标签设置为黄色背景。
div p { background-color:yellow; }
将所有div标签之后的段落标签设置为黄色背景。
div+p { background-color:yellow; }
将所有具有“target”属性的元素设置为黄色背景。
a[target] { background-color:yellow; } <a href="http://www.questpond.com">ASP.NET interview questions</a> <a href="http://www.questpond.com" target="_blank">c# interview questions</a> <a href="http://www.questpond.org" target="_top">.NET interview questions with answers</a>
当控件获得焦点时,将所有元素设置为黄色背景。
input:focus { background-color:yellow; }
根据链接上的操作设置超链接。
a:link {color:green;} a:visited {color:green;} a:hover {color:red;} a:active {color:yellow;}
CSS列布局有什么作用?
CSS列布局可以帮助您将文本分成多列。例如,考虑下面的杂志新闻,它是一大段文本,但我们需要将其分成3列,中间有一个边框。这就是HTML 5列布局的用武之地。
要实现列布局,我们需要指定以下内容:-
- 我们要将文本分成多少列?
要指定列数,我们需要使用column-count。对于Chrome和Firefox,分别需要“webkit”和“moz-column”。
-moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari and Chrome */ column-count:3;
- 这些列之间我们想要多少间距?
-moz-column-gap:40px; /* Firefox */ -webkit-column-gap:40px; /* Safari and Chrome */ column-gap:20px;
- 您是否想在这些列之间绘制一条线,如果是,有多厚?
-moz-column-rule:4px outset #ff00ff; /* Firefox */ -webkit-column-rule:4px outset #ff00ff; /* Safari and Chrome */ column-rule:6px outset #ff00ff;
以下是完成此操作的完整代码。
<style> .magazine { -moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari and Chrome */ column-count:3; -moz-column-gap:40px; /* Firefox */ -webkit-column-gap:40px; /* Safari and Chrome */ column-gap:20px; -moz-column-rule:4px outset #ff00ff; /* Firefox */ -webkit-column-rule:4px outset #ff00ff; /* Safari and Chrome */ column-rule:6px outset #ff00ff; } </style>
然后,您可以使用class属性将样式应用于文本。
<div class="magazine"> Your text goes here which you want to divide in to 3 columns. </div>
你能解释一下CSS盒子模型吗?
CSS盒子模型是HTML元素周围的一个矩形空间,它定义了边框、内边距和外边距。
边框(Border):-这定义了元素将被包含的最大区域。我们可以使边框可见、不可见、定义高度和宽度等。
内边距(Padding):-这定义了边框和元素之间的间距。
外边距(Margin):-这定义了边框和任何相邻元素之间的间距。
例如,以下是一个简单的CSS代码,它定义了一个带有边框、内边距和外边距值的盒子。
.box { width: 200px; border: 10px solid #99c; padding: 20px; margin: 50px; }
现在,如果我们像下面代码中那样将上述CSS应用于DIV标签,您的输出将如下面的图所示。我创建了两个测试“Some text”和“Some other text”,以便我们可以看到margin属性如何工作。
<div align="middle" class="box"> Some text </div> Some other text

你能解释一下CSS 3中的一些文本效果吗?
在这里,面试官希望您回答两种CSS文本效果中的一种。以下是两种值得注意的效果。
阴影文本效果
.specialtext { text-shadow: 5px 5px 5px #FF0000; }
单词换行效果
<style> .breakword {word-wrap:break-word;} </style>
什么是Web Workers?我们为什么需要它们?
考虑下面的重度for循环代码,它运行了超过一百万次。
function SomeHeavyFunction() { for (i = 0; i < 10000000000000; i++) { x = i + x; } }
假设上面的for循环代码是在HTML按钮点击时执行的。现在,这种方法执行是同步的。换句话说,完整的浏览器将等待for循环完成。
<input type="button" onclick="SomeHeavyFunction();" />
这可能导致浏览器冻结且无响应,并出现屏幕上的错误消息。
所以,如果我们能将这个重度for循环移到一个JavaScript文件中并异步运行它,这意味着浏览器不必等待循环,那么我们就能拥有一个更具响应性的浏览器。这就是Web Worker的作用。
Web Worker有助于异步执行JavaScript文件。
HTML 5中的本地存储概念是什么?
很多时候,我们希望在用户本地计算机上存储有关用户信息的信息。例如,假设用户半填写了一个长表单,突然互联网连接中断。所以用户希望您将此信息本地存储,当互联网恢复时。他希望获取该信息并将其发送到服务器进行存储。
现代浏览器具有称为“Local storage”(本地存储)的存储,您可以在其中存储此信息。
如何向本地存储添加和删除数据?
数据使用“key”(键)和“value”(值)添加到本地存储。下面的示例代码显示了国家数据“India”,以键值“Key001”添加。
localStorage.setItem(“Key001”,”India”);
要从本地存储中检索数据,我们需要使用“getItem”,并提供键名。
var country = localStorage.getItem(“Key001”);
您还可以使用以下代码在本地存储中存储JavaScript对象。
var country = {}; country.name = “India”; country.code = “I001”; localStorage.setItem(“I001”, country); var country1 = localStorage.getItem(“I001”);
如果您想以JSON格式存储,可以使用“JSON.stringify”函数,如以下代码所示。
localStorage.setItem(“I001”,JSON.stringify(country));
本地存储的生命周期是多久?
本地存储没有有效期,它将一直存在,直到用户从浏览器清除它,或者您使用JavaScript代码将其删除。
本地存储和Cookie之间有什么区别?
Cookie | 本地存储 | |
客户端/服务器端。 | 数据在客户端和服务器端都可以访问。Cookie数据每次请求都会发送到服务器端。 | 数据仅在本地浏览器端可访问。服务器无法访问本地存储,除非通过POST或GET故意发送到服务器。 |
大小 | 每个cookie 4095字节。 | 每个域 5 MB。 |
过期 | Cookie附带过期时间。因此,过期后,Cookie和Cookie数据将被删除。 | 没有过期数据。要么最终用户需要从浏览器中删除它,要么我们使用JavaScript以编程方式删除它。 |
什么是WebSQL?
WebSQL是客户端浏览器端的结构化关系型数据库。它是浏览器中的一个本地RDBMS,您可以在其上执行SQL查询。
WebSQL是HTML 5规范的一部分吗?
不,很多人将其标记为HTML 5,但它不是HTML 5规范的一部分。该规范基于SQLite。
那么我们该如何使用WebSQL?
第一步是使用“OpenDatabase”函数打开数据库,如下所示。第一个参数是数据库名称,下一个是版本,然后是一个简单的文本标题,最后是数据库大小。
var db=openDatabase('dbCustomer','1.0','Customer app’, 2 * 1024 * 1024);
要执行SQL,我们然后需要使用“transaction”函数并调用“executeSql”函数来执行SQL。
db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS tblCust(id unique, customername)'); tx.executeSql('INSERT INTO tblcust (id, customername) VALUES(1, "shiv")'); tx.executeSql('INSERT INTO tblcust (id, customername) VALUES (2, "raju")'); }
如果您执行“select”查询,您将通过“results”集合获得数据,我们可以循环遍历并将其显示在HTML UI中。
db.transaction(function (tx) { tx.executeSql('SELECT * FROM tblcust', [], function (tx, results) { for (i = 0; i < len; i++) { msg = "<p><b>" + results.rows.item(i).log + "</b></p>"; document.querySelector('#customer).innerHTML += msg; } }, null); });
当上述文件首次运行时,它将被添加到浏览器的应用程序缓存中,并且如果服务器宕机,页面将从应用程序缓存提供。
<a name="WhatisfallbackinApplicati>FALLBACK:
/home/ /homeoffline.html </a></pre>
<h2><a name=" whatisfallbackinapplicati=""></a>
MVC面试问题及答案:-https://codeproject.org.cn/Articles/556995/MVC-interview-questions-with-answers
实体框架面试问题及答案:-https://codeproject.org.cn/Articles/676309/ADO-NET-Entity-Framework-Interview-Questions
.NET面试问题准备视频系列 http://www.youtube.com/watch?v=gaDn-sVLj8Q
.NET开发人员会问哪些类型的问题 http://www.youtube.com/watch?v=3PXspVcSSKE
这是一个.NET模拟面试视频 http://www.youtube.com/watch?v=hPXXCdK7nmk
我的网站每天都会更新面试问题
如需进一步阅读,请观看以下面试准备视频和分步视频系列。