65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (110投票s)

2013年12月26日

CPOL

13分钟阅读

viewsIcon

1319029

downloadIcon

23382

在本文中,我们将快速回顾40个重要的HTML 5面试问题及答案,祝您求职顺利。

目录

引言

Canvas和SVG图形之间有什么区别?

如何使用HTML 5的Canvas和SVG绘制矩形?

CSS中的选择器是什么?

如何使用ID值应用CSS样式?

CSS列布局有什么作用?

你能解释一下CSS盒子模型吗?

你能解释一下CSS 3中的一些文本效果吗?

什么是Web Workers?我们为什么需要它们?

如何向本地存储添加和删除数据?

本地存储的生命周期是多久?

本地存储和Cookie之间有什么区别?

会话存储和本地存储之间有什么区别?

什么是WebSQL?

WebSQL是HTML 5规范的一部分吗?

那么我们该如何使用WebSQL?

那么我们如何在HTML 5中实现应用程序缓存?

应用程序缓存中的回退(fallback)是什么意思?

其他面试问题文章参考

介绍

我是一名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 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个重要的新的表单元素:-

  1. 颜色。
  2. 日期
  3. 日期时间-本地
  4. 电子邮件
  5. 时间
  6. Url
  7. Range
  8. 电话
  9. 数字
  10. 搜索

让我们一步一步地理解这些元素。

如果您想显示颜色选择器对话框。

<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区域的访问权限

要在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

我的网站每天都会更新面试问题

如需进一步阅读,请观看以下面试准备视频和分步视频系列。

© . All rights reserved.