1.网页乱码的问题是如何产生的?怎样解决?
网页乱码的主要原因是保存HTML时的编码格式和浏览器解析时的解码格式不一致。解决方式是在编码中加入:告诉浏览器应该使用什么解码格式来解读。
几种编码方式:
ASCII
全称美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成,每个字符占7位(1字节是8位)。
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。于是老外耍了赖,英文字母s是115没错,但我就用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同样的方式使用一个字节来表示。
记住:UNICODE只是给字符一个代号,而GBK和UTF-8使用不同的规则来表示同一个代号。
中国虽然有自己的一套编码格式—— “GBK" ,但还是建议使用UTF-8格式,这样国外用户访问中文网站的时候就不会出现乱码。
2.颜色有几种写法, 红色、 绿色、蓝色、白色、黑色如何表示? 透明黑色如何表示?#ccc 的颜色, #eee 的颜色? #333 的颜色?
页面通常使用CSS来表达页面颜色,常用的颜色表达方式有三种:
1.十六进制
2.颜色关键字
3.rgb(r,g,b)
rgb还可以加个透明度(Alpha参数),这个参数是一个介于0.0(完全透明)到1.0(完全不透明)之间的数值;如,透明黑色表示为:rgba(0,0,0,0)
3. <!DOCTYPE html>的作用是什么?
在文档第一行输入<!DOCTYPE html>,来声明本文按照某个版本的html来运行,因为Html不会再有“html6..7..8..”,而只会随着技术的发展形成相应的文档,所以不再会有新的版本号。
声明必须是 HTML 文档的第一行,位于 标签之前。
声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
HTML5 不基于 SGML,所以不需要引用 DTD。
提示:请始终向 HTML 文档添加 声明,这样浏览器才能获知文档类型。
参考:
《Head First Html与CSS》
4. 严格模式和混杂模式指什么?
当浏览器厂商开始创建与标准兼容的浏览器时,它们希望确保向后兼容。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式:
1.在标准模式中,浏览器根据规范呈现页面;
2.在混杂模式中,页面以一种较宽松的向后兼容的方式显示。混杂模式通常会模拟老式浏览器(比如IE4)的行为以防老站点无法工作.
5.meta有什么作用,常见的值有哪些
meta元素可以提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
1.必需的属性,content:提供信息,与http-equiv和name属性有关。
2.name 属性,主要用于描述网页,需要配合另外一个属性值 content 使用。
name 主要有以下几种参数:
keywords (帮助搜索引擎知道网页关键字)
description (描述网站主要内容)
author (网页作者)
2.http-equiv 属性:http协议的响应头报文。它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容。跟 name 属性一样,需要配合 content 属性使用。
http-equiv 主要有以下参数:
Expires (可以用于设定网页到期时间。一旦到期,必须到服务器上重新传输)
Pragma (禁止浏览器从本地计算机的缓存中访问页面内容)
Refresh (自动刷新并指向新页面)
Set-Cookie (如果网页国旗,那么存盘的cookie将被删除)
Window-target (强制页面在当前窗口以独立页面显示)
6.<meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1"有什么作用。
X-UA-Compatible 是 IE8 追加的一个设置(所以,IE8 以下是不支持的)。
这用来设置浏览器优先使用什么模式来渲染页面。IE=edge,告诉 IE 使用最新引擎来渲染页面;chrome=1 则表示可以激活 Chrome Frame。
7.常见的浏览器有哪些,什么内核?
本教程版权归本人和饥人谷所有,转载须说明来源