HTML知识点整理

1、什么是HTML?HTML、XML、XHTML 有什么区别?

HTML 是用来描述网页的一种语言。

  • HTML 指的是超文本标记语言 (Hyper Text Markup Language)
  • HTML 不是一种编程语言,而是一种标记语言 (markup language)
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页

HTML 文档 = 网页

  • HTML 文档描述网页
  • HTML 文档包含 HTML 标签和纯文本
  • HTML 文档也被称为网页

Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。浏览器不会显示 HTML 标签,而是使用标签来解释页面的内容。

HTML是超文本标记语言(Hyper Text Markup Language),是最早写网页的语言,但是由于时间早,规范不是很好,大小写混写、编码不规范而且很多地方模糊不清。

实际上,网页的终极标记语言应该是XML(Extensible Markup Language),可扩展标记语言。XML是一种跨平台语言,编码更自由,可以自由创建标签。但XML结构复杂,语法严谨,学习起来相对现行的HTML也比较困难,尤其在早期标准不统一的年代,XML没法立即铺开。

于是,W3C想出一个折衷的办法,就是XHTML(Extensible Hyper Text Markup Language),可扩展超文本标记语,扩展的HTML。也就是适当地、逐步地向HTML加入XML的标准。XHTML即是升级版的HTML,对HTML进行了规范,编码更加严谨纯洁,是一种过渡语言,HTML向XML过渡的语言。

2、怎样理解 HTML 语义化。

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

语义化的优点:

  • 有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重。
  • 语义化的HTML在没有CSS的情况下也能呈现较好的内容结构与代码结构
  • 方便其他设备的解析
  • 便于团队开发和维护

若想要做到html语义化,则网页的开发者应该要做到熟悉所有规范的HTML标签的使用场景,在合适的地方使用合适的标签。如:

  • 尽量少用<div>和<span>这两个标签,因为代码中使用的标签<div>和<span>是在所有的HTML标签中最没有语义的,在使用这两个标签时尽量能找到更有语义的标签代替;
  • 和标签语义化的重要性一样,某些属性的设置也是HTML语义化重要的环节。例如,在img标签中,alt是必须要设置的属性,因为img是自闭合标签,并没有包含可以解释说明图片的额外信息。alt属性的文字说明是当图片在浏览器中未加载时的显示的代替。

3、怎样理解内容与样式分离的原则。

一个网页可以简单的分为三个部分:HTML——结构,CSS——表现,JavaScrip——行为。内容和样式的分离,就是指在网页编码的过程中,要将HTML和CSS两大部分分开。写HTML的时候先不管样式,重点放在HTML的结构和语义化上,让HTML能体现页面结构和内容;然后进行 CSS 样式的编写,减少 HTML 与 CSS 契合度(即内容与样式分离) ;写JS的时候,尽量不要用JS去直接操作样式,而是通过给元素添加删除class来控制样式变化(即行为分离)。

样式与结构分离的优点:

  • 浏览器加载网页页面速度变快。分离原则下,页面样式的代码写在了CSS当中,页面体积容量变得更小。
  • 修改网页样式时,更有效率、更省时间。根据html标签内ID或class的标记,到CSS里找到相应的ID或class,可以快速替换指定位置的样式,不会破坏页面架构和其他部分的样式。
  • 可以确保网页都能平稳退化。具备CSS支持的浏览器固然可以把网页呈现的美轮美奂,不支持或禁用了CSS功能的浏览器同样可以把网页的内容按照正确的内容结构显示出来。

4、文档声明的作用?严格模式和混杂模式指什么?<!doctype html> 的作用?

文档声明的作用是告知浏览器页面使用的HTML版本;严格模式又叫标准模式,使页面按照 HTML 与 CSS 的定义渲染。混杂模式,又叫怪异模式,以比较宽松的向后兼容的方式呈现,模拟老式浏览器以兼容老的站点;<!doctype html> 的作用是告诉浏览器开启标准模式,开启标准模式后浏览器就得老老实实的按照W3C的 标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。

5、浏览器乱码的原因是什么?如何解决

通用的编码方式:

  • ASCII,全称美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 针对英语设计。
  • utf-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。可用于显示中文简体繁体及其它语言(如英文,日文,韩文)。
  • GBK,中国制定的一套汉字编码规则,用2个字节来表示一个汉字,总共可以覆盖2万多个文字。
  • ISOLatin-1,由于ASCII字符集不包括德、法语中的特殊拉丁字符,因此欧洲人发明了ISO 8859-1Latin 1,简称为ISOLatin-1。它对ASCII做了个扩充,涵盖拉丁字母表中特殊语言字符。

乱码原因:使用编辑器编写 HTML 文件,保存编写的HTML文件,会按照使用的编辑器默认的编码方式进行保存,使用浏览器打开HTML文件。在没有声明的情况下,浏览器并不知道你的这个文件是使用什么编码方式,于是会使用了默认解码方式。例如文件保存为GBK格式,在Chrome打开时默认使用 ISO -8859的解码方式,就会导致编码和解码不匹配,产生乱码。 解决方法:在文件保存的时候,自己要清楚是用哪种编码方式保存的(sublime默认保存方式是utf-8,安装了GBK Encoding support插件也可另存为gbk)。如果你的文件是保存为utf-8格式,在html 的 <head>里添加<meta charset="utf-8">;如果你的文件保存为gbk格式,一定在文件里添加<meta charset="gbk">,对浏览器进行说明,直接按照声明的编码方式进行解析读取,就不会有乱码问题。

6、有哪些常见的meta标签。

<meta charset="utf-8">
编码方式
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
双核浏览器
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
用于移动端的展示合理
<meta name="keywords" content="前端 饥人谷">  网页关键字,利于搜索
<meta name="description" content="最有爱的前端学习社区">
搜索引擎优化
<meta name="keywords" content=""> 
向搜索引擎说明你的网页的关键词  
<meta name="description" content=""> 
告诉搜索引擎你的站点的主要内容  
<meta name="author" content="你的姓名"> 
告诉搜索引擎你的站点的制作的作者  
<meta http-equiv="Content-Type" content="text/html";charset=utf-8"> 
指定字符集  
<meta http-equiv="refresh" content="n;url="> 
定时让网页在指定的时间n内跳转  
<meta http-equiv="pragma" content="no-cache"> 
禁用缓存  
<meta http-equiv="set-cookie" content="Mon,12 May 2001 00:20:00 GMT"> 
cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式

7.常见的浏览器有哪些,什么内核

浏览器

内核

Internet Explorer

IE内核

Firefox

Gecko

Opear

Presto

Safair&Chromr

Webkit

国内大部分浏览器

IE内核

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喔家ArchiSelf

全栈必备JavaScript基础

1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业。在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaScript 排...

814
来自专栏sunseekers

我练习项目眼中的 vue

因为毕业设计开始了 vue 的学习之路,曾写过一些入门的 vue 小白学习文章系列(2018 我所了解的 Vue 知识大全(一))。如今已经工作半年了,这一次想...

1002
来自专栏Java学习网

编程基础知识:函数签名学习

编程功能的基本单位。你建立你的程序一个函数(或方法)。最小的东西您可以测试在单元测试是一个函数。也是最小的一个函数的代码名称,因此可以创建一个新的抽象。函数的目...

2935
来自专栏阮一峰的网络日志

Javascript异步编程的4种方法

你可能知道,Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排...

2625
来自专栏不二小段

Python为什么文件运行和在命令行运行同样语句但结果却不同?

这篇是之前知乎上的一个提问,感觉非常有趣而且内容丰富,所以把我自己的回答搬运到公众号来。 另外关于昨天的推送,是因为我之前把文章投到了Python中文社区的公众...

36113
来自专栏前端知识分享

第128天:less简单入门

> 一款比较流行的预处理CSS,支持变量、混合、函数、嵌套、循环等特点 > [官网](http://lesscss.org/) > [中文网](http://l...

774
来自专栏高性能服务器开发

服务器开发通信协议设计介绍

由于我们的即时通讯软件的用户存在用户状态问题,即用户登录成功以后可以在他的好友列表中看到哪些好友在线,所以客户端和服务器需要保持长连接状态。另外即时通讯软件一般...

882
来自专栏.net core新时代

double相加(減)结果会有些误差

前提介绍       今天在调试代码的时候发现了一个double类型数据相减的有趣问题,148163.1 - 82692.09大家猜猜结果等于多少,经过调试最终...

1818
来自专栏北京马哥教育

符合语言习惯的 Python 优雅编程技巧

Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们...

1014
来自专栏安恒信息

一次开发的意外逆向之旅

笔者最近从事windows内核开发的时候因为功能需要,所以需要对PspSetCreateProcessNotifyRoutine回调函数数组进行遍历,于是笔者照...

601

扫码关注云+社区