1、HTML、XML、XHTML 有什么区别
HTML 超文本编辑语言 语法比较松散,不严谨,少出现报错。
XML 可扩展标记语言 主要运用于存储数据和结构参考。XML仅仅是纯文本,标签没有被预定义,需要自行去定义标签。
XHTML 可扩展超文本标记语言 可以理解为更严格的HTML,基于XML,作用与HTML类似。只是比HTML更加严谨。
2、怎样理解 HTML 语义化
语义化HTML是一种编写HTML的方式。
根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。
语义化的意义:
- 为了在没有CSS的情况下,页面也能呈现出很好地内容结构,这样不至于在没有样式的情况下使浏览者无法阅读。
- 用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用。
- 有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重。
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页。
- 便于团队开发和维护,语义化更具可读性,是下一步把网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
3、怎样理解内容与样式分离的原则
写HTML时候先把结构和内容写出来,可以先不用去写样式。写JS的时候,尽量不要用JS直接去操作样式,而是通过给元素添加class来控制样式变化。HTML内不允许出现属性样式,尽量不要出现行内样式。
- HTML是内容,负责页面的结构和语义。
- CSS是样式,主要负责美化页面,原则上CSS样式代码尽量写在.css文件中,由.html文件调用使用。
- JS是实现页面功能,主要负责页面的交互效果和数据处理。
4、有哪些常见的meta标签
<meta charset='utf-8'>
声明网页字符的编码
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
声明文档兼容模式,告诉IE用当前最高模式渲染页面
<meta name="keywords" content="your tags" />
页面关键字
<meta name="description" content="150 words" />
页面描述
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
为移动设备添加viewport
<meta name="robots" content="index,follow"/>
搜索引擎抓取
5、文档声明的作用?严格模式和混杂模式指什么? <!doctype html> 的作用?
作用:为每个 HTML 页面的第一行添加标准模式(standard mode)的声明,这样能够确保在每个浏览器中拥有一致的展现,避免浏览器的怪异模式。
document.compatMode:
BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。
CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。
这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,这也就是恶魔的开始 -- 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。 如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。这就是<!DOCTYPE html>的作用。
6、浏览器乱码的原因是什么?如何解决
网页乱码如何产生的呢?下面这个流程是我们写入文件到展示文件的简单描述:
我们使用编辑器编写 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">
。
7、常见的浏览器有哪些,什么内核
一、Trident内核代表产品Internet Explorer,又称其为IE内核。Trident(又称为MSHTML),是微软开发的一种排版引擎。使用Trident渲染引擎的浏览器包括:IE、傲游、世界之窗浏览器、Avant、腾讯TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。
二、Gecko内核代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。
三、WebKit内核代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。主要代表作品有Safari和Google的浏览器Chrome。
四、Presto内核代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。
8、列出常见的标签,并简单介绍这些标签用在什么场景
<div> 块级元素,常用于布局等
<h1>~<h6> 一级标题~六级标题
<p> 段落
换行 <a>超链接 <ul><li>无序列表 <ol><li>有序列表 <table>表格