分享:HTML常见面试题

HTML基础

1.1请描述一个网页从开始请求到最终显示的完整过程?

一般可分为7个步骤: 

1.在浏览器中输入网址; 

2.发送至DNS服务器并获得域名对应的WEB服务器的IP地址; 

3.与WEB服务器建立TCP连接; 

4.浏览器向WEB服务器的IP地址发送相应的HTTP请求; 

5.WEB服务器响应请求并返回指定的URL的数据,或错误信息,如果设定重定向,则重定向到新的URL地址。 

6.浏览器下载数据后解析HTML源文件,解析的过程中实现对页面的排版,解析完成后在浏览器中显示基础页面。 

7.分析页面中的超链接并显示在当前页面,重复以上过程直至无超链接需要发送,完成全部显示。

 

1.2 DOCTYPE声明的作用是什么?严格模式与混杂模式如何区分?

HTML语言已经存在太久了,目前必然会有一些不同版本的文档存在。为了能够让浏览器清楚你的文档的版本、类型和风格,需要在文档的起始用DOCTYPE声明指定当前文档的版本和风格。如果在网页中提供了版本信息,则可以有利于验证页面中的代码是否符合当前的版本和风格。

<!DOCTYPE>声明位于文档中的最前面,处于标签之前,告知浏览器的解析器,用什么文档类型规范来解析这个文档。

在严格模式(标准模式)中,浏览器根据规范呈现页面;在混杂模式中,页面以向后兼容的方式显示,以防止老站点无法工作。

如果HTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

1.3简要描述常见的浏览器内核。

浏览器内核赋值对网页语法的解释并显示网页,它决定了浏览器如何显示网页的内容以及页面的格式信息。

常见的浏览器内核:

Trident:IE浏览器

Gecko:Mozilla浏览器,如Firefox

Webkit:Safari浏览器,也是Chrome浏览器的内核

Blink:Chrome浏览器,Opera浏览器

1.4 如何理解html标签语义化?

语义化的主要目的在于,直观的认识标签(markup)和属性(attribute)的用途和作用。

可以概括为:用正确的标签做正确的事情。

Html语义化可以让页面的内容结构化,便于浏览器解析,便于搜索引擎解析,并提高带帽的可维护度和可重用性。

比如,尽可能少的使用无语义的标签div,使用结构化标签<header><section><footer>

1.5 锚点的作用是什么?如何创建锚点?

锚点是文档中某行的一个记号,类似于书签,用于链接到文档中的某个位置。当定义锚点后,我们可以创建直接跳至该锚点(比如页面中某个小节)的链接,这样使用者就无需不停地滚动页面来寻找他们需要的信息了。

在使用<a>元素创建锚点时,需要使用name属性为其命名,代码如下所示:

<a name=anchorname1>锚点一</a>

然后就可以创建链接,直接跳转到锚点,代码如下所示:

<a href=#anchorname1>回到锚点一</a>

1.6 使用<label>元素显示文本与使用其他文本标记显示文本有什么不同?

<label>元素的直观效果是直接显示标记之间的文本,而且不会为文本呈现任何特殊效果。但是,它和其他文本标记所不同的是,它为鼠标用户改进了用户体验性。

这是因为,<label>元素可以附带一个for属性,只要将该属性的值设置为表单中任何一个控件的id属性的值,则当该用户点击标签(文本)时,浏览器就会自动将焦点转到和标签相关的表单控件上。即:如果在<label>元素内点击文本,就会触发此控件。

1.7 列举常用的结构标记,并描述其作用

结构标签专门用于标识页面的不同结构,相对于使用<div>元素而言,可以实现语义化的标签。

常用的结构标签有:

<header>元素:用于定义文档的页眉;

<nav>元素:用于定义页面的导航链接部分;

<section>元素:用于定义文档中的节,表示文档中的一个具体的组成部分;

<article>元素:常用于定义独立于文档的其他部分的内容

<footer>元素:常用于定义某区域的脚注信息;

<aside>元素:常用于定义页面的一些额外组成部分,如广告栏、侧边栏和相关引用信息等。

1.8 超级链接有哪些常见的表现形式?

<a>元素用于创建超级链接,常见的表现形式有:

普通超级链接。语法:<a href=””  target=””>文本</a>

下载链接,即目标文档为下载资源。语法:<a href=day.zip>下载</a>

电子邮件链接,用于链接到Email。语法:<a href=mailo:[email protected]>

联系我们</a>

空链接,用于返回页面顶部。语法:<a href=#>...</a>

链接到JavaScript,以实现特定的代码功能。语法:<a href=javascript:...>...</a>

1.9 简要描述行内元素和块级元素的区别?

块级元素的前后都会自动换行,如图存在换行符一样。默认情况下,块级元素会独占一行。例如<p><hn><div>都是块级元素。显示这些元素中间的文本时,都将从新行中开始显示,其后内容也将在新行中显示。

行内元素可以和企业行内元素位于同一行,在浏览器中显示是不会换行。例如<a><span>等。对于行内元素,不能设置其高度和宽度。

还有一种元素,行内块级元素,比如<img><input>元素等。这些元素可以和其他行内元素位于同一行,同时可以设置其高度和宽度。

1.10 表单向服务器提交数据有几种方式?这些方式有什么区别?

将表单数据发送给服务器的常用方式有两种:GetPost

浏览器发送给服务器的HTTP请求分为请求头(header)和请求主体(body)两部分。其中,必须包含头部分,用于指定发送请求的方式、目的以及其他关键信息;而主体是可选的。在头数据和主体数据之间用一个空白行来隔开。

比如,需要发送请求到页面getstockprice.php,而且需要附带数据Symbol=MSFT。那么如果使用Get方式发送数据,简化后的请求数据内容如下所示:

GET/Trading/GetStockPrice.aspx?Symbol=MSFT HTTP/1.1

Host:localhost

如果使用Post方式发送数据,则简化后的请求数据内容如下所示:

GET/Trading/GetStockPrice.aspx HTTP/1.1

Host:localhost

Content=Type:application/x-www-form-urlencoded  表示请求的MIME类型

Content-Length:11  表示请求数据的长度(大小)

Symbol=MSFT

由此可见,两种方式的区别主要在于发送数据方式不同。

使用Get方式向服务器发送表单数据时,表单数据附加在URL属性的末端;才有POST方法发送数据时,数据都会放在在主体中发送。

猜你喜欢

转载自blog.csdn.net/u013910042/article/details/50381954