什么是HTML
超文本标记语言(Hyper Text Markup Language)。是用来描述网页的一种标记语言。注意,它不是编程语言,是标记语言。
什么是URL
统一资源定位符(Uniform Resource Locator)。是一个给定的独特资源在 Web 上的地址。理论上说,每个有效的 URL 都指向一个唯一的资源。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像,等等。
URL的组成
通常由以下部分组成。
协议 + 域名/IP地址 [+ 端口号(条件可选)] + 资源路径 [+ 参数] [+ 锚点]
- scheme:协议。表明浏览器必须使用何种协议。通常都是 HTTP 协议或是 HTTP 协议的安全版,即 HTTPS。Web 需要它们二者之一,但浏览器也知道如何处理其他协议,比如
mailto:(打开邮件客户端)或者ftp:(处理文件传输)。
- 域名/IP地址:表明正在请求哪个 Web 服务器。或者,可以直接使用IP address,但是因为它不太方便,所以它不经常在网络上使用。
- 端口号:表示用于访问 Web 服务器上的资源的技术“门”。如果 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)来授予其资源的访问权限,则通常会被忽略。否则是强制性的。
- 资源路径:网络服务器上的资源路径。在 Web 早期阶段,通常表示资源在服务器上的物理文件位置。在现在的网络技术中,通常表示没有任何物理现实的 Web 服务器处理的抽象。
- 参数:可选项。是提供给网络服务器的额外参数。以 ? 衔接的 key/value 键值对列表,键值对间以 & 分割衔接,键与值以 = 分割衔接。同时,不同服务器有自己的一套参数规则,唯一的获知途径就是网站所有者告知。
- 锚点:可选项。是资源文件中的一种“书签”。给定时,浏览器会显示到该“书签”的内容与方向。
什么是 DOCTYPE
Doctype 是 HTML5 的文档声明,通过它可以告诉浏览器使用哪一个HTML版本标准解析文档。在浏览器发展的过程中,HTML出现过很多版本,不同的版本之间格式书写上略有差异。如果没有事先告诉浏览器,那么浏览器就不知道文档解析标准是什么?此时,大部分浏览器将开启最大兼容模式来解析网页,我们一般称为怪异模式,这不仅会降低解析效率,而且会在解析过程中产生一些难以预知的bug,所以文档声明是必须的。
常见 meta 元素有哪些
<meta> 元素标签是提供有关 HTML 相关的元数据。它不会显示到页面上,但是能够被机器识别。
charset
指明 HTML 文档的编码格式,常用有 utf-8 。
name & content
指定元数据的名称与内容。这部分对 SEO 非常有用。
<!-- author——定义了页面的作者 -->
<meta name="author" content="Tony">
<!-- keywords——为搜索引擎提供关键字 -->
<meta name="keywords" content="HTML, CSS, JavaScript">
<!-- description——对网页整体的描述 -->
<meta name="description" content="My tutorials on HTML, CSS and JavaScript">
<!-- viewport——对页面视图相关进行定义 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minmum-scale=1.0">
<!-- theme-color——定义主题颜色 -->
<meta name="theme-color" content="#222">
http-equiv & content
为内容属性的信息/值提供HTTP标头
<!-- refresh——每30s刷新一次文档 -->
<meta http-equiv="refresh" content="30">
<!-- Cache-Control——请求和响应遵循的缓存机制,可以声明缓存的内容,修改过期时间,可多次声明
1. no-transform——不得对资源进行转换或转变。
2. no-siteapp——禁止百度进行转码
-->
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
<!-- 可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。(GMT格式) -->
<meta http-equiv="expires" content="Wed, 20 Jun 2007 22:33:00 GMT"/>
property & content
可以让网页成为一个富媒体对象,同意网页内容被其他网站引用,同时在引用时不会只是一个连接,会提取相应的信息展现给用户。
<meta property="og:type" content="website">
<meta property="og:url" content="https://zjgyb.github.io/index.html">
<meta property="og:site_name" content="tony's blog">
什么是HTML语义化?
HTML标签语义化就是使用合理、正确的标签来展示内容。
语义化的优点
- 有助于架构良好的
HTML解构 - 有利于
SEO - 有利于不同设备的解析(屏幕阅读器,盲人阅读器等)
- 语义化更具可读性,有利于团队的开发、维护相应
行内元素有哪些?块级元素有哪些? 空(void)元素有哪些?
行内元素
- a
- i
- em
- span
- stong
- label
块级元素
- div
- p
- h1 h2 h3 h4 h5 h6
- ul dl li ol
- table
内联块状元素
- img
- input
空元素
没有元素内容和标记的元素就称为空元素,也称 自闭合 标签
- img
- input
- hr br
- meta
- link
label标签有什么用?
用来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点移动到与标签相关的表单控件上。示例如下。
<label for="Name">Number:</label>
<input type='text' name="Name" id="Name"/>
<label>Date:<input type="text" name="B"/></label>
h1与title的区别、b与strong的区别、i与em的区别?
title表示网站的标题,一个页面只有一个。h1表示文章的标题,有内置样式。strong与b效果都是给文本加粗,strong具有语义化,起到加重语气的效果,而b没有。i与em都是斜体,i没有实际含义,em是用斜体表示强调的文本。
HTML 标签中的 src 和 href 有什么区别?
- src:全称
source,它通常用于img、video、audio、script元素,通过src指向请求外部资源的来源地址,指向的内容会嵌入到文档中当前标签所在位置,在请求src资源时,它会将资源下载并应用到文档内,比如说:js脚本、img图片、frame等元素。当浏览器解析到该元素时,会暂停其它资源下载,直到将该资源加载、编译、执行完毕。这也是为什么将js脚本放在底部而不是头部的原因。 - href:全称
hyper reference,意味着超链接,指向网络资源,当浏览器识别到它指向的⽂件时,就会并⾏下载资源,不会停⽌对当前⽂档的处理,通常用于a、link元素。
HTML5 有哪些新特性
- 新增语义化标签:nav、header、footer、aside、section、article
- 音频、视频标签:audio、video
- 数据存储:localStorage、sessionStorage
- canvas(画布)、Geolocation(地理定位)、websocket(通信协议)
- input标签新增属性:placeholder、autocomplete、autofocus、required
- history API (go、forward、back、pushstate)
input上传文件可以同时选择多个文件吗?怎么设置
可以,通过给 input 标签设置 multiple 属性实现。
<input type="file" name="files" multiple/>
img 上 title 与 alt
- title:当鼠标移动到元素上时显示title的内容
- alt:全称
alternate,切换的意思,如果无法显示图像,浏览器将显示alt指定的内容
区别:
一般当鼠标滑动到元素身上的时候显示 title ,而 alt 是img标签特有的属性,是图片内容的等价描述,用于图片无法加载时显示,这样用户还能看到关于丢失了什么东西的一些信息,相对来说比较友好。
参考文章
- 稀土掘金:2022高频前端面试题——HTML(上篇)
- 知乎:前端HTML第一天:什么是网页?什么是HTML?网页怎么形成? 什么是 URL?
- MDN:什么是 URL?
- 阿里云开发者社区:HTML面试题整理汇总