HTML基础

标准的HTML文档必须包含哪几个元素:

  • DOCTYPE
  • html
  • head
  • body

HTML和HTML5的区别有哪些?

  • 旧版本的HTML比较依赖浏览器的插件,例如播放视频需要安装Flash插件
  • 由于HTML5不再基于SGML,所以文档声明类型(DOCTYPE)只有一种
  • HTML5消除了过时或冗余的元素,如:font、center等
  • HTML5新增了许多语义化的元素(article、header等)和新功能(video、canvas等),提供更好的跨平台支持
  • HTML5制订了新的全局属性和元素属性,全局属性有draffable、contenteditable等,元素属性有accept、placeholder等

HTML实体的应用场景有哪些?
如果要在HTML文档中显示特殊字符(‘<’,‘>’等),那么就可以使用HTML实体。
HTML实体还能预防XSS(跨站脚本攻击)。XSS通常会将脚本代码注入到HTML文档中,再解析执行。但使用了HTML实体后,就可以让相关代码只打印,而不执行。


什么是Shadow DOM(影子中的DOM)?
Shadow DOM是浏览器的一种功能,能够自动添加子元素,例如audio元素(如下)在网页中能使用进度条、音量控制等功能,这些相关元素都由浏览器自动生成。

<audio controls src="test.wav"></audio>

元素属性src和href有何区别?
两者功能不同。href(hypertext reference)能够建立一条通道,将当前文档和定义的资源连接起来。src(source)是将定义的资源嵌入到当前文档中。
img元素中的title和alt属性有何区别?
title是全局属性,提供额外的提示信息,当鼠标滑动到该元素时,显示定义的提示。link和style元素中的title比较特殊,表示样式表的名称;alt是局部属性,仅可用在img、input等元素,提供在图片未载入或加载失败时的替代文本。只有当input元素的type属性为image时,才能使用alt属性。


3种将CSS样式应用到元素上的方式有什么区别?

方式 特殊性 HTTP请求 重用范围 文档大小 伪类与伪元素
内联样式 最高 不可重用 增加 不可定义
内嵌样式 与外部相同 当前文档 增加 可定义
外部样式 与内嵌相同 整个项目 保持 可定义

3种嵌入JavaScript的方式有什么区别?

方式 内容和行为 HTTP请求 重用范围 文档大小 特点
内联脚本 耦合 当前文档 增加 将内联脚本放在外部样式表之后,会延迟其他资源的下载
外部脚本 分离 整个项目 保持 容易维护,高复用,可用defer或async属性解决页面阻塞问题
元素属性 耦合 不可重用 增加 两种定义方式,分别是事件属性和在链接属性中使用特殊伪协议的URL。不但能制作可执行JavaScript的浏览器书签,还能用a元素模拟按钮的效果

meta元素可以定义文档的哪些元数据?
meta元素可定义的元数据可简要概括为4类:

  1. 声明HTML文档内容所用的字符编码
  2. 完善文档描述信息,让搜索引擎更容易解析索引,提升SEO(search engine optimization)
  3. 适配移动设备,使页面在各种尺寸的屏幕中显示正确
  4. 指定首选样式表、执行重载或重定向

a元素除了可以用于导航外,还有什么其他功能?
href属性中的URL可以是浏览器支持的任何协议,因为有这个特点,a元素也可以用于手机拨号、发送短信、发送邮件等功能。当发送短信的时候,可将内容作为参数直接带过去;当发送邮件时,可将收件人、抄送人、主题和内容作为参数直接带过去,如下所示:

<a href="tel:10086">拨打电话</a>
<a href="sms:10086?body=text">发送短信</a>
<a href="mailto:strick@pw.org?cc=jane@pe.com">发送邮件</a>

元素的布尔属性disable和readonly有何区别?
元素操作是指读取、写入的操作。Tab导航是指能否用Tab键定位到该元素

属性 元素外观 元素操作 获取焦点 Tab导航 表单提交 元素支持
disabled 修改 没有发送数据 input、textarea、option、select和button等元素
readonly 维持 会发送数据 input和textarea

表格布局的弊端

  • 可访问性差,表格布局中的内容从左到右和从上到下的读取并不总是有意义,并且还缺乏依赖关系,无障碍工具(如屏幕阅读器)从这些文档中获取的数据会非常混乱,影响用户的浏览
  • 难以实现响应式,通常可用媒体查询对不同设备呈现适合的界面,但表格布局需要用单元格嵌套表格,而单元格之间的合并要用元素的colspan或rowspan属性,不能用CSS属性简单的设置
  • 可维护性差,表格布局需要使用大量的元素属性,并且表格之间需要相互嵌套。这使得代码难以阅读,特别是如果不缩进,标签没有层次感,更加难以理解代码的意图
  • 不够语义化,表格布局会用到大量的单元格,单元格(th或td)不像nav、header、footer等元素有明确的含义。语义化的界面既能保持代码整齐,又能提升搜索引擎优化
  • 加载速度慢,嵌套的表越多,文档就变得越臃肿,不但会加长网络传输的时间,而且会增加渲染的时间

除了video和audio元素,HTML5还支持哪些其他多媒体元素?
HTML5还支持embed和track元素。embed元素用于嵌入外部资源,例如SVG矢量图形、应用程序或插件等。track元素是audio和video的子元素,为多媒体文件添加辅助文本信息,例如字幕、屏幕阅读器说明和主题等。在Chrome浏览器中,可用WebVTT(网络视频文本轨道)文件和track元素结合,给媒体资源添加可同步字幕。

<video>
  <source src="video" type="video/webm">
  <track kind="subtitles" src="video" label="中文" srclang="zh" default>
</video>

canvas元素用属性和用CSS设置宽高有什么区别?
可将canvas元素简单理解为两部分:画布和容器。CSS控制的是容器的尺寸,而属性控制的是画布的尺寸,绘图都是在画布上进行,画布默认宽为300px,高位150px。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。