前端面试常见HTML问题(一)

2024-06-06 02:29:37

1.什么是html

      HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。这样,你只要使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、 图形、动画、声音、表格、链接等。 HTML的结构包括头部 (Head)、主体 (Body) 两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。


2.对WEB标准以及W3C的理解与认识

WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由万维网联盟(外语缩写:W3C)起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。

(1)web标准规范要求,书写标签必须闭合、标签小写、不乱嵌套,可提高搜索机器人对网页内容的搜索几率。--- SEO

(2)建议使用外链css和js脚本,从而达到结构与行为、结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容。

(3)样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便

(4)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性

遵循w3c制定的web标准,能够使用户浏览者更方便的阅读,使网页开发者之间更好的交流。

3.HTML与XHTML有什么差别

HTML与XHTML之间的差别,粗略可以分为两大类比较:一个是功能上的差别,另外是书写习惯的差别。关于功能上的差别,主要是XHTML可兼容各大浏览器、手机以及Pad,并且浏览器也能快速正确地编译网页。

XHTML的规则区别:

1.所有的标记都必须要有一个相应的结束标记

2.所有标签的元素和属性的名字都必须使用小写

3.所有的XML标记都必须合理嵌套

4.所有的属性必须用引号""括起来

5.把所有<和&特殊符号用编码表示

6.给所有属性赋一个值

7.不要在注释内容中使“--”

8.图片必须有说明文字

9.不允许使用target="_blank"

从XHTML1.1开始全面禁止target属性,如果想要有开新窗口的功能,就必须改写为rel="external",并搭配JavaScript实现此效果。

错误:<a href="http://blog.mukispace.com" target="_blank">MUKI space</a>

正确:<a href="http://blog.mukispace.com" rel="external">MUKI space</a>

严格模式的文档在IE下需要写成这样:<a href="document.html" rel="external">打开一个新窗口</a>
这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript 完整的代码JS如下[object Object]:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externallinks;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:<script type="text/javascript" src="external.js"></script>

4.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

混杂模式是一种比较宽松的向后兼容的模式。混杂模式通常模拟老式浏览器的行为,以防止老站点无法工作

混杂模式(quirks mode) //让IE的行为与(包含非标准特性的)IE5相同
标准模式(standards mode)//让IE的行为更接近标准行为
准标准模式(almost standards mode)//这种模式下的浏览器特性有很多都是符合标准的,不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。
超级标准模式://IE8引入的一种新的文档模式,超级文档模式可以让IE以其所有版本中最符合标准的方式来解释网页内容。
  • 触发混杂模式: 
    如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性 可言。

根据Doctype是否存在以及使用哪种DTD来触发其不同的模式。如果Doctype不存在或者其形式不正确那么默认为混杂模式。如果XHTMLl文档中包含完整的Doctype,那么它一般以标准模式呈现。

区分它们的意义可以让开发者更好的写出标准兼容的页面,同时不影响以前的页面标准。


5.行内元素有哪些?块级元素有哪些?

 块元素(block element) HTML标签分类明细

    * address - 地址 

    * blockquote - 块引用 

    * center - 居中中对齐块 

    * dir - 目录列表 

    * div - 常用块级容易,也是css layout的主要标签 

    * dl - 定义列表 

    * fieldset - form控制组 

    * form - 交互表单 (只能用来容纳其它块元素) 

    * h1 - 大标题 

    * h2 - 副标题 

    * h3 - 3级标题 

    * h4 - 4级标题 

    * h5 - 5级标题 

    * h6 - 6级标题 

    * hr - 水平分隔线 

    * isindex - input prompt 

    * menu - 菜单列表 

    * noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容 

    * noscript - 可选脚本内容(对于不支持script的浏览器显示此内容) 

    * ol - 排序表单 

    * p - 段落 

    * pre - 格式化文本 

    * table - 表格 

    * ul - 非排序列表

内联元素(inline element) HTML标签分类明细 



    * a - 锚点 

    * abbr - 缩写 

    * acronym - 首字 

    * b - 粗体(不推荐) 

    * bdo - bidi override 

    * big - 大字体 

    * br - 换行 

    * cite - 引用 

    * code - 计算机代码(在引用源码的时候需要) 

    * dfn - 定义字段 

    * em - 强调 

    * font - 字体设定(不推荐) 

    * i - 斜体 

    * img - 图片 

    * input - 输入框 

    * kbd - 定义键盘文本 

    * label - 表格标签 

    * q - 短引用 

    * s - 中划线(不推荐) 

    * samp - 定义范例计算机代码 

    * select - 项目选择 

    * small - 小字体文本 

    * span - 常用内联容器,定义文本内区块 

    * strike - 中划线 

    * strong - 粗体强调 

    * sub - 下标 

    * sup - 上标 

    * textarea - 多行文本输入框 

    * tt - 电传文本 

    * u - 下划线 

    * var - 定义变量

可变元素  HTML标签分类明细



    * applet - java applet   

    * button - 按钮   

    * del - 删除文本   

    * iframe - inline frame   

    * ins - 插入的文本   

    * map - 图片区块(map)   

    * object - object对象   

    * script - 客户端脚本

6.行内元素与块级元素有什么不同?

块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。

通过样式控制,它们可以相互转换。

1.尺寸-块级元素和行内元素之间的一个重要的不同点

设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。

注:这里说的无效, 是指,它对其它元素的排列没有影响。也就是说,对于设置的margin,padding行内元素文档流里的上下元素来说,他们的间距不会因为上下margin或者上下padding而产生间距。但是就他本身而言,对于上下margin与padding是有效的。

7.CSS的盒模型?

1、W3C的标准Box Model:

/*外盒尺寸计算(元素空间尺寸)*/    Element空间高度 = content height + padding + border + margin    Element 空间宽度 = content width + padding + border + margin    /*内盒尺寸计算(元素大小)*/    Element Height = content height + padding + border (Height为内容高度)    Element Width = content width + padding + border (Width为内容宽度)

2、IE)传统下Box Model(IE6以下,不含IE6版本或“QuirksMode下IE5.5+”):

/*外盒尺寸计算(元素空间尺寸)*/   Element空间高度 = content Height + margin (Height包含了元素内容宽度,边框宽度,内距宽度)   Element空间宽度 = content Width + margin (Width包含了元素内容宽度、边框宽度、内距宽度)   /*内盒尺寸计算(元素大小)*/   Element Height = content Height(Height包含了元素内容宽度,边框宽度,内距宽度)   Element Width = content Width(Width包含了元素内容宽度、边框宽度、内距宽度)

8.DOM是什么

文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。

9.请解释一下什么是语义化的HTML。语义化HTML的优点

根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。

语义化HTML优点:

1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构

2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;

3,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;

4,便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。

写html时注意点:

尽可能少的使用无语义的标签div和span;

在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;

不要使用纯样式标签,如:b、font、u等,改用css设置。

需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);

使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;

表单域要用fieldset标签包起来,并用legend标签说明表单的用途;

每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

转载于:https://blog.51cto.com/xhtml/1571735

前端面试常见HTML问题(一)相关推荐

  1. 前端面试常见逻辑题收集及分析

    前端面试中常出现一些有趣的逻辑题,初见的时候有可能会手足无措,但实际多看几个题之后就会有一定的思考逻辑,有种打通任督二脉的感觉.以下是我个人面试经历以及网络上收集来的一些经典题目. 题目: 1.现有一 ...

  2. js 数组移除_2020前端面试--常见的js面试题

    (答案持续更新...) 1.简述同步和异步的区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务 ...

  3. WEB前端面试常见的问题及答案

    一.html+css: 在w3c的标准模式下,width=width,但是在怪异模式下,width=border*2+padding*2+width;其中后代元素的width:100%: 二.html ...

  4. 前端面试查漏补缺--(三) 跨域及常见解决办法

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  5. 前端面试中常见的算法问题

    虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂 ...

  6. 那些巨头公司的前端面试都喜欢问些什么?

    在过去的几年里,我在亚马逊和雅虎面试过很多专注于前端开发的Web开发者和软件工程师,在这篇文章中,我想分享一些面试技巧,帮助候选人为面试做好准备. 免责声明--本文并非旨在列出在前端面试中可能会被问到 ...

  7. 前端面试查漏补缺--(一) 防抖和节流

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  8. 校招社招必备核心前端面试问题与详细解答

    本文总结了前端老司机经常问题的一些问题并结合个人总结给出了比较详尽的答案.网易阿里腾讯校招社招必备知识点. 原理讲解参考:前端增长-重新定义大前端 在线课程:网易云课堂课程      思否课堂 官方博 ...

  9. 【持续..】WEB前端面试知识梳理 - CSS部分

    传送门: WEB前端面试知识梳理 - CSS部分 WEB前端面试知识梳理 - JS部分 最近在看大厂的一些面试题,发现很多问题都是平时没有在意的,很多知识都是知道一点但又很模糊说不出个所以然来,反思自 ...

最新文章

  1. 根文件系统挂载过程分析
  2. 语音信号的分帧加窗的matlab实现
  3. 计算机网络基础与信息安全,大学计算机基础计算机网络基础与信息安全计算机网络概述教案.doc...
  4. oracle如何创建视图
  5. 《深入体验Java Web开发内幕——核心基础》目录
  6. java寻路算法_具有指定距离/节点数的寻路算法
  7. SQLServer数据库中截取字符串的常用方法
  8. 结合eXeScope打造个性flash发布后的应用程序exe文件
  9. WINCE Activesync 同步问题
  10. java识别图片验证码_JAVA---获取图片验证码
  11. AcWing 1402. 星空之夜(Flood Fill/哈希/DFS)
  12. 观后感 --《当幸福来敲门》和《赢在中国》
  13. Android自定义实现九宫格抽奖功能
  14. 基于Springboot开发实现买卖三方二手商品交易网站
  15. 开放平台–扫描微信二维码登录
  16. C# Excel 新建工作表,新增工作表,更改工作表的名字
  17. 《Oracle PL/SQL程序设计(第5版)》一一2.4 执行必要的PL/SQL任务
  18. 如何使用 ChatGPT/open ai 接口 进行图片生成(绘画、图片创作)
  19. 04 面向对象之:三大特性:继承,封装,多态
  20. dedecms友情链接plus/flink.php页面出错,DedeCMS友情链接flink_add Getshell漏洞管理员CSRF漏洞...

热门文章

  1. getchar()和EOF
  2. PHP实现多服务器session共享之NFS共享
  3. 爬虫 - 豆瓣网《小王子》热评
  4. 第25月第2天 Django-By-Example项目记录01
  5. 字符串GZIP压缩解压
  6. Anaconda ubuntu16.04 Cuda 8.0安装pytorch
  7. DataSet用法详细
  8. Direct3D中设备丢失处理
  9. codeproject上的一款分页控件
  10. (二)性能优化的指标和工具 (告别前端小白,成为大神的必经之路)