html基础课(2)
二、HTML骨架
标准的骨架
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3<head>
4<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
5<title>Document</title>
6</head>
7<body>
8
9</body>
10</html>
我们一部分一部分学习。
2.1 文档声明头任何一个标准的HTML页面,第一行一定是一个以
1<!DOCTYPE ……
开头的语句。
这一行,就是文档声明头,DocType Declaration。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
到底有哪些规范呢?
首先我们先确定一件事儿,我们现在学习的是HTML4.01这个版本,这个版本是IE6开始兼容的。HTML5是IE9开开始兼容的。但是IE6、7、8这些浏览器还不能过早的淘汰,所以这几年网页还是应该用HTML4.01来制作。后面将知道手机、移动端的网页,就可以使用HTML5了。
HTML4.01里面有两大种规范,每大种规范里面又各有3种小规范。所以一共6种规范(见下面):
HTML4.01里面规定了普通、XHTML两大种规范。
HTML觉得自己有一些规定不严谨,比如,标签是否可以用大写字母呢?
1<H1></H1>
所以,HTML就觉得,把一些规范严格的标准,又制定了一个XHTML1.0。在XHTML中的字母X,表示“严格的”。
总结一下,一共有6种DTD,说白了,HTML第一行语句一共有6种:
大规范
里面的小规范
HTML4.01
Strict严格的,体现在一些标签不能使用,比如u
Transitional普通的
Frameset带有框架的页面
XHTML1.0
严格体现在小写标签、闭合、引号
Strict严格的,体现在一些标签不能使用,比如u
Transitional普通的(我们学习的版本)
Frameset带有框架的页面
strict表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。
比如,u标签,就是可以让一个本文加上下划线,但是这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。
1<u>嘻嘻嘻嘻嘻</u>
怎么给文本增加下划线呢?今后的css将使用css属性来解决。
Transitional表示“普通的”,这种模式就是没有一些别的规范。
Frameset表示“框架”,在框架的页面使用。
我们学习的就是XHTML1.0中的transitional版本。因为我们的页面中偶尔要使用一些类似u这种标签(当做CSS钩子)。
sublime输入的html:xt x表示XHTML,t表示transitional
HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了(W3C自己打脸了):
1<!DOCTYPE html>
2.2 字符集
1<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
字符集用meta标签定义,meta表示“元”。“元”配置,就是表示基本的配置项目。
charset就是charactor set“字符集”的意思。这个meta不用背,谁背谁傻,用sublime生成就行。
中文能够使用的字符集两种:
第一种:UTF-8
1<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
第二种:gb2312
1<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
也可以写成gbk
2<meta http-equiv="Content-Type" content="text/html;charset=gbk">
什么是字符集?活字印刷术,所有的汉字都有一个个小印章,需要哪个字,就取哪个字。
但是,有两个人都发明了字库。老王发明了一个,老李也发明了一个。
比如同一个汉字,“传”字在老王的字库里面是第2个大盘子第4行第43列的。
而这个汉字“传”在老李的字库里面是第5个大盘子第6行第13列的。
计算机,不能直接存储汉字,而是存储的是编码,所以,计算机记录“传”这个字,就是这么记录的:
老王:
120443
老李
150613
有两个字库UTF-8和gb2312。
UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语……
gb2312 是国标,是中国的字库,里面仅涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。
字库规模: UTF-8(字全) > gb2312(只有汉字)
我们用meta标签可以声明当前这个html文档的字库,但是一定要和保存的类型一样,否则乱码!(重点)
当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: 文件→ set File Encoding to → Chinese Simplified(GBK)
记住两者匹配:
注意,由于UTF-8里面保存了世界上所有人类语言,所以描述一个汉字需要的码更多。
UTF-8里面存储一个汉字3个字节。而gb2312中存储一个汉字2个字节。
保存大小: UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)
总结:
UTF-8 字多,有各种国家的语言,但是保存尺寸大,文件臃肿;
gb2312字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。
列出2个使用情形:
1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。
2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。
我们亲测:
● qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。
● 新华网藏语频道,使用的是UTF-8,保证字符集的数量。
我们的课程,一律使用UTF-8,因为我们懒,懒得改了。
浏览器就是通过meta来看你是什么字符集的,比如你保存的时候meta写的,和声明的不匹配,那么浏览器就是乱码。
2.3 关键字和页面描述meta除了可以设置字符集,还可以设置关键字和页面描述。
设置页面描述:
1<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />
只要设置的Description页面面熟,那么百度搜索结果,就能够显示这些语句,这个技术叫做SEO,search engine optimization,搜索引擎优化。
抽象一下:
1<meta name=””content=””/>
name就是“名字”的意思,content是“内容”的意思。
也就是说,我们定义了一个名字是“Description”(描述)的meta。内容是网易是中国领先……
定义关键词:
1<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />
这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。
Keywords就是“关键词”的意思。
所以,一个比较完整的骨架是这样:
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3<head>
4<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
5<meta name="Keywords" content="牛逼,很牛逼,特别牛逼" />
6<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />
7<title>Document</title>
8</head>
9<body>
10
11</body>
12</html>
第4行 : 字符集设置
第5行:关键词
第6行:描述
2.4 title标签1<title>网页的标题</title>
title也是有助于SEO搜索引擎优化的:
1<title>提供java培训、web前端培训、php培训、C/C++培训、iOS培训、网页设计培训、平面设计培训、UI设计培训、游戏开发培训、网络营销培训服务</title>
网页的head标签里面,表示的是页面的配置,有什么配置?
字符集、关键词、页面描述、页面标题。
今后我们还能看见一些配置:IE适配、视口、iPhone小图标等等……
三、HTML的基本语法特性3.1 HTML对换行不敏感,对tab不敏感
HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。
换不换行、tab不tab,都不影响页面的结构。
所以:
1<div>
2<h4></h4>
3<p></p>
4</div>
完全等价于:
1<div>
2<h4></h4>
3<p></p>
4</div>
也就是说,HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系。但是,我们发现有良好的缩进,代码更易读。要求大家都正确缩进标签。
百度为了追求极致的显示速度,所以HTML标签都没有换行、都没有缩进(tab),HTML和换不换行无关,标签的层次依然清晰,只不过程序员不可读了:
3.2 空白折叠现象HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。
代码:里面有空格、缩进、换行
1<p>我爱
2
3
4陈伟</p>
显示的时候,折叠了:
3.3 标签要严格封闭标签不封闭是灾难的:
1<title>欢迎<title>
多说一嘴,HTML、CSS就是写代码,不能算“编程”,因为这里面没有业务逻辑,加减乘除,与或非。
说白了,就是用代码画画。
<h2> 到 <h7> 都是标签:
<h2></h2> 一级标题
<h3></h3> 二级标题
……
<h7></h7> 六级标题
h标签没有嵌套关系的。由于h4跟着一个h3,所以,我们自己就知道了这个h4是h3子标题。
1<h2>今日学习内容</h2>
2<h3>一、复习上节课的内容</h3>
3<h3>二、HTML骨架</h3>
4<h4>2.1 文档声明头</h4>
5<h4>2.2 字符集</h4>
6<h4>2.3 关键字和页面描述</h4>
7<h4>2.4 title标签</h4>
8<h3>三、HTML的基本语法特性</h3>
9<h4>3.1 HTML对换行不敏感,对tab不敏感</h4>
10<h4>3.2 空白折叠现象</h4>
11<h4>3.3 标签要严格封闭</h4>
12<h3>四、h和p标签</h3>
13<h4>4.1 h系列</h4>
h是容器级的标签。理论上里面可以放置p、ul,只是法律上的允许,在语义上,不要这么写。
4.2 p标签段落,是英语paragraph“段落”缩写。
HTML标签是分等级的,HTML将所有的标签分为两种:容器级、文本级。
顾名思义,容器级的标签,里面可以放置任何东西;文本级的标签里面,只能放置文字、图片、表单元素。
p标签是一个文本级标签。从学习p的第一天开始,就要死死记住:p里面只能放文字、图片、表单元素。其他的一律不能放。
Chrome浏览器是世界上HTML5支持最好的浏览器。提供了非常好的开发工具,非常适合我们开发人员使用。审查元素功能的快捷键是F12。
Chrome的英语原意“硅”,是谷歌公司的产品,所以也叫作谷歌浏览器。
审查元素功能:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。