{{msg}}
之前),防止阻塞 DOM 渲染。
<body>
<!-- 这里省略一些 html 标签 -->
<!-- script 放在 body 区域的底部 -->
<script type="text/javascript">
</script>
</body>
也可以引入外部 js 脚本,同样要注意放在 body 区域底部(项目开发时,我们一般会有个 main.js 作为项目的入口,这个文件必须放在最底部,在所有 js 脚本的下面)
<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="main.js"></script>
具体可以看下一章节:HTML标签:script 标签
<div></div>
。全局属性,即代表每个 html 标签都拥有这些属性:
(1)class :类选择器,用来标识一个标签(相当于给它取了外号),以 p
标签为例:
<p class="xxx"></p>
那么我们可以在 css 里为这个 p
标签写特定样式:
.xxx{ color: red; }
也可以在 js 代码中通过 .xxx 找到这个标签:
const xxx = document.querySelector('.xxx')
(2)id:当元素是 全页面唯一 时,id
选择器的用法同 class
,但不唯一时也不会报错;
同样,通过 id
可以在 js 中调用属性设置样式,只需 html 中定义 id,比如取为 xxx
<header id="xxx">测试id</header>
那么 js 中即可通过 #xxx 找到这个标签
const xxx = document.getElementById('#xxx')
但要求元素 id 属性值 xxx 不能是 windows 默认声明的全局变量,如 parent、top、self 等;因此,新手应该尽量避免使用 id。
(3)contenteditable:声明后,该元素(标签)所包含的文本可由用户自主编辑,如:
<div class="middle" contenteditable>这个内容可由用户编辑</div>
(4)hidden:在标签里面加上,可以让标签里面的内容 被隐藏
(5)style:作为 html 属性时,用来声明标签的内联样式。
注意这里 style 指的是 html 标签上的属性,而不是
<style>
标签
这里顺带提一下
<style>
标签:假如想在 .html 文件写 css 样式,我们通常把<style>
放 head 里面,但把<style>
放进 body 里面也是可行的,区别是这样能让<style>
也变得可以被编辑,用户就能自己更改 html 的样式;
style在作为html标签的属性的时候,效果的优先级比作为css的高,以下是它在html标签中作为属性来定义样式
<header id="xxx" style='border: 10px solid green;'>样式</header>
css、html、js 声明的样式同时存在时,以 js 的效果为最终结果。
(6)tabindex:使文本可以用 tab
键进行选中,用来控制 tab
选中时候的顺序。
值为正整数时,按下 tab
,会从小到大的顺序切换栏目;
值为 0,表示最后切换到它;
值为-1,表示不可被切换到这个栏目。
(7)title:设置页面的标题,显示在浏览器标签页上,也作为收藏网页的描述文字。
注意这里的 title 指的是 html 标签上的属性,而不是
<title>
标签
通过设置,可以在鼠标悬停时显示出写好的文档内容:
<style>
.xxx {
//这三行设置溢出的文本格式
white-space: nowrap; //禁止换行显示
overflow: hidden;
text-overflow: ellipsis; //当文本溢出,超出文本框时,以省略号隐藏溢出部分
}
</style>
//title定义鼠标悬停显示的内容
<header class="xxx" style='border: 10px solid red;' title="鼠标悬停显示隐藏的完整内容">
顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告顶部广告
</header>
XHTML:Extensible Hypertext Markup Language,可扩展超文本标注语言,通俗地说是一种必须正确标记、且格式良好的标记语言,也可简称为 XML。
HTML 4.01 这个版本是 IE6 开始兼容的,而我们如今手机、移动端的网页所用的 HTML5 是 IE9 开始兼容的。
HTML 4.01 里面规定了 普通 **和 XHTML 两种大规范。原因是 HTML 当时觉得自己有一些规定不严谨,比如,标签是否可以用大写字母呢?当 HTML 的标记书写不规范,会造成其它的设备(ipad、手机、电视等)无法正常显示。
所以,根据一些更严格的规范标准,又制定了一个 XHTML1.0。XHTML 的字母 X,即表示“严格的”,这个体系规定:比如标签必须是小写字母、必须严格闭合标签、必须使用引号引用属性值,等等。XHTML的主要目的是为了 取代HTML,也可以理解为 HTML 的升级版。
XHTML与 HTML4.0 的标记基本上一样,只是多了部分限制:
(1)所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:<h1><font></font></h1>
(2)所有的标记都必须小写。
(3)所有的标签都必须闭合。
<span></span>
<br>
建议写成 <br />
<hr>
建议转成 <hr />
,还有<img src=“URL” />
(4)所有的属性值必须加引号。<font color="red"></font>
(5)所有的属性必须有值。<hr noshade="noshade">
、<input type="radio" checked="checked" />
(6)XHTML文档开头必须要有 DTD 文档类型定义,只要在编辑器输入 html:xt
,再按下 tab
就会生成:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了。HTML5 的 DTD(文档声明头)如下:
<!DOCTYPE html>
**计算机不能直接存储文字,它存储的是编码。虽然说,开发中都用 UTF-8 编码,准没错。但还是有必要了解下计算机编码,在某些需求下使用其它编码可能更优。
计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们可以定义一套规则来表示。下面简单介绍下编码方式的演变历史:
ASCII码: 美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。 美国的国家语言是英语,ASCII 码也就只能表示0-9、a-z、A-Z、特殊符号。
ANSI编码: 每个国家为了显示本国的语言,都对ASCII码进行了扩展。例如: 中国 国标局 设计的 ANSI 编码是 GB2312(简体),只支持中文简体,但无法识别生僻字。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。
GBK: K的含义就是“扩展”,意为“国标扩展”,是针对 GB2312 的扩展。可以同时支持汉字、日文、韩文,16位字符集 (最多容纳65536个字符),即2个字节编码一个文字,还能显示罕见的、古汉语的汉字,现在已经收录了2.1万左右字符。
Unicode编码: 意为“统一码”,字符集可以简写为UCS(Unicode Character Set),收录了全世界13万多个字符,用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。且unicode不支持诸如盲文、蒙古语、古巴比伦楔形文字等,故衍生出 UTF 编码规则。
UTF-8(Unicode Transform Format)编码: 根据字符的不同,选择其编码的长度。比如:对于一个字符A,用1个字节表示;对于一个汉字,就用2个字节表示。 Unicode的编码方式有三种:UTF-8、UTF-16、UTF-32。由于 UTF-8 与字节序无关(无需BOM),同时兼容 ASCII 编码,使得 UTF-8 编码成为现今互联网信息编码标准而被广泛使用。
毫无疑问,开发中,都用UTF-8编码吧,准没错。
中文能够使用的字符集两种:
字库规模: UTF-8(字很全) > gb2312(只有汉字)
重点1:避免乱码
我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码(重点)。
拿 sublime编辑器举例,当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: 文件→ set File Encoding to → Chinese Simplified(GBK)
。VS Code 的道理一样。
重点2:UTF-8和gb2312的比较
保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)
总结:
列出2个使用情形:
1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用 UTF-8;如果用 GB2312 将无法显示日语。 2) 你们公司就是中文网页,极度的追求网页的显示速度,可以使用 GB2312,因为如果使用 UTF-8,那一个汉字每多一个byte,5000 个汉字也就多 5kb。
我们亲测:
我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到 <meta>
标签中的 charset
属性即可。