HTML知识点

1.什么是HTML?

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

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

2.HTML、XML、XHTML之间的区别

  • HTML:超文本标记语言,语法松散、不严格的标记语言
  • XML:可扩展标记语言,主要用于存储数据和结构
  • XHTML:可扩展超文本标记语言,基于XML,作用与HTML类似,语法更严谨更纯净的HTML版本

HTML与XHTML的区别:

  1. XHTML 元素必须被正确地嵌套
  2. XHTML 元素必须被关闭
  3. XHTML 标签名必须使用小写字母
  4. XHTML 文档必须拥有根元素

3.HTML语义化

1. 什么是语义化

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

2. 为什么要语义化?

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

  • 清晰的页面结构
    语义化的HTML在没有CSS的情况下也能呈现较好的内容结构和代码结构,增强页面的可读性

  • 便于团队开发和维护
    在团队中大家遵循同一个标准,使用规范的代码,方便开发和维护,提高开发效率

  • 方便其他设备的解析


4. 怎样理解内容与样式分离的原则

HTML——结构
写HTML的时候先不管样式,重点放在HTML的结构和语义化上,让HTML能体现页面结构和内容

CSS——表现
写完HTML的结构和内容后,再进行CSS样式的编写,减少HTML与CSS契合度(即内容与样式分离)

JavaScrip——行为
写JS的时候,尽量不要用JS去直接操作样式,而是通过给元素添加删除class来控制样式变化(即行为分离)

样式结构分离优点:

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

5.有哪些常见的meta标签

1.meta标签定义和用法

  • <meta>元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词
  • <meta>标签位于文档的头部,不包含任何内容;<meta>标签的属性定义了与文档相关联的名称/值对

2.常见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="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时间格式

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

1. Doctype作用是什么?

  • <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用是为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。
  • <!DOCTYPE>声明必须在HTML文档的第一行,这并不是一个HTML标签。

2.严格模式与混杂模式如何区分?它们有何意义?

严格模式:又称标准模式,是指浏览器按照W3C标准解析代码

混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码

如何区分:浏览器解析时到底使用严格模式还是混杂模式,与网页中的DTD直接相关

  • 如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。(严格 DTD ——严格模式
  • 包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。(有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式
  • DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现。(DTD不存在或者格式不正确——混杂模式
  • HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。(__ HTML5 没有严格和混杂之分__)

意义:严格模式与混杂模式存在的意义与其来源密切相关,如果说只存在严格模式,那么许多旧网站必然受到影响,如果只存在混杂模式,那么会回到当时浏览器大战时的混乱,每个浏览器都有自己的解析模式。


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

  1. 几种编码方式
    ASCII
    计算机发明之后需要使用0和1来表示字符,于是美国人在50年代发明了 ASCII (美国标准信息交换代码,American Standard Code for Information Interchange) 码。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成,每个字符占7位(1字节是8位)。比如 'a'的 ASCII码10进制是97,二进制是 01100001。
    ISOLatin-1
    可以认为ASCII是美国发明针对英语设计的,但欧洲人在用的时候出现了问题。对于一些特殊的拉丁字符,比如法文德文里某些字符,ASCII字符集就不包括。于是欧洲人发明了一种8位字符集是ISO 8859-1Latin 1,也简称为ISOLatin-1。它对ASCII做了个扩充,对于0-127之间的字符还使用ASCII里的字符不变, 把位于128-255之间的字符表示拉丁字母表中特殊语言字符。
    UNICODE
    后来计算机不断发展扩展到亚洲非洲,如何用计算机使用的二进制表示这些语言又成了问题。ISOLatin-1的8位字符集只能表示256个字符,而仅汉语就有80000以上个字符。如何把地球上绝大多数语言用一种编码方式表示出来呢? 于是发明了UNICODE编码,只用2个字节(16位)就可以编码地球上几乎所有地区的文字。
    但是,UNICODE只是理论上的编码方式,相当于给世界上每个文字打了个编号,但这编号具体如何在计算机里面存储,可以有多种实现方式。比如utf-8和gbk。
    前面说了UNICODE只是给每个文字打了个编号,为啥不把这个编号直接转化成二进制存储在计算机里面呢? 比如英文字母s的编号是115, 用二进制表示是00000000 1110011, 中文的编号是26085 (16进制是65e5) ,二进制是11001011 1100101。老外才没那么傻,对于老外这种日常纯粹是用英文字符的人来说明明之前1个字节就能存储一个字母,现在为了全球大一统非要存储为2个字节,相当于一个之前一个1M的文档,现在变为2M。于是老外耍了赖,英文字母s115没错,但我就用1个字节1110011表示,而你中文26085号也没错,但是你不能在使用2个表示,而是用2个甚至6个字节表示。(为了英文的特权,牺牲其他语言的存储空间的便利),这个编码方式就是UTF-8。
    UTF-8
    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
    那GBK又是如何产生的呢?
    GBK
    这时候中国人不干了,为啥你制定了全球大一统的规则,却为了自己的便利又破坏规则,连这点小便宜都不放过(典型的美国人作风)? 明明用2个字节就能表示中文一个汉字,现在UTF-8编码中文竟然需要2个甚至4个字节来表示。于是中国制定一套自己的规则,于是用2个字节来表示一个汉字,总共可以覆盖2万多个文字。 对于英文,好吧让一步,还保留和你UTF-8同样的方式使用一个字节来表示。
    下图是把当前文章分别保存为 gbk 何 utf-8两种编码格式下文件大小的对比,表明用 gbk 确实省空间
    记住:UNICODE只是给字符一个代号,而GBK和UTF-8使用不同的规则来表示同一个代号。

2.网页乱码如何产生的呢?
下面这个流程是我们写入文件到展示文件的简单描述:
我们使用编辑器编写 HTML 文件
保存编写的HTML文件
使用浏览器打开HTML文件
HTML文件在浏览器展示

乱码产生的根源就在与第2步骤和第4步。
在第2步保持文件时会把我们写入的文字使用编辑器默认的编码方式进行保存。如果大家使用的是vscode编辑器,默认的编码方式是utf-8。

在第4步浏览器打开网页时,它并不知道你的这个文件是使用什么编码方式,于是自作主张使用了默认解码方式。如下图所示,文件保存为GBK格式,在Chrome打开时默认使用 ISO -8859的解码方式,导致编码和解码不匹配,产生乱码。
那如何规避这个问题呢?即如何通知浏览器用什么方式解码呢?
首先,在文件保存的时候你自己要清楚是用哪种编码方式保存的。如果你的文件是保存为utf-8格式,那么一定要在html 的 <head>里添加<meta charset="utf-8">,这句话的意思是告诉浏览器在打开这个页面的时候不要去猜了,直接用utf-8去解码。 同理,如果你的文件保存为gbk格式,一定在文件里添加<meta charset="gbk">

3.总结&解决乱码方法:

  1. 乱码产生的根本原因是你保存的编码格式和浏览器解析时的解码格式不匹配导致的。

  2. 乱码一般是英文以外的字符才会出现。

为啥纯粹的英文不会出现乱码问题,即使编码方式和解码方式不一致?那是因为前面讲过了 utf-8、gbk对英文都是采用1个字节的编码方式,并且使用了相同的码字。

解决方法:
首先,在文件保存的时候你自己要清楚是用哪种编码方式保存的。如果你的文件是保存为utf-8格式,那么一定要在html 的 <head>里添加<meta charset="utf-8">,这句话的意思是告诉浏览器在打开这个页面的时候不要去猜了,直接用utf-8去解码。 同理,如果你的文件保存为gbk格式,一定在文件里添加<meta charset="gbk">


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

浏览器 内核
IE Trident
Firefox Gecko
Chrome Webkit
Safari Webkit
Opera Presto
新Chrome Blink

9.列出常见的标签,并简单介绍这些标签用在什么场景

常见标签 场景

浏览器 内核
h1 h2 h3 h4 h5 标题:大标题 、二级标题、.....
p 表示大段文字:ps标题和段落不能互相包裹
a 链接 target="_blank" 在新页面打开; target ="_self" 在当前页打开; href="#id"跳到对应的id
img 图片 :只闭合标签,最后不需要加 / ; alt="图片描述": 搜索引擎优化
ul li 无序列表 :用于表示并列内容,可以嵌套
ul ol 有序列表:用于表示有步骤或编号的并列内容,可以嵌套
dl dt dd 用于一系列"标题,内容...." 的场景
button 按钮
em strong span em用于强调一下, strong很重要,强调性更强, span用于包裹文字,方便添加样式
iframe 用于嵌入页面
table 用于展示表格,不要用来做布局
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 一、什么是HTML? HTML是用来描述网页的一种语言 HTML指的是超文本标记语言(Hyper Text Mar...
    饥人谷_晨曦阅读 369评论 0 2
  • 1. HTML、XML、XHTML 有什么区别 网页编码发展过程:html-->xhtml-->xml 2. 怎样...
    molly的红草帽阅读 230评论 0 0
  • 什么是HTML? HTML指的是超文本标记语言 HTML不是一种编程语言,而是一种标记语言 标记语言是一套标记标签...
    Echolate阅读 432评论 0 1
  • 一.HTML、XML、XHTML 有什么区别 什么是 HTML? HTML 指的是超文本标记语言 (Hyper T...
    Sunset125阅读 679评论 0 1
  • 生日,对孩子而言,意味着吃蛋糕、收礼物的日子到了,也意味着他们又长大一岁了!就在这周,我们小一班博涵小朋友生日啦~...
    慧润阶梯应聪花0125阅读 379评论 0 0