html标签

web标准

web标准介绍:

  • w3c:万维网联盟组织,用来制定web标准的机构(组织)
  • web标准:制作网页要遵循的规范。
  • web标准
  • 规范的分类:结构标准、表现标准、行为标准。
  • 结构:html。表现:css。行为:JavaScript。

web标准总结:

  • 结构标准:相当于人的身体。html就是用来制作网页的。
  • 表现标准: 相当于人的衣服。css就是对网页进行美化的。
  • 行为标准: 相当于人的动作。JS就是让网页动起来,具有生命力的。

浏览器介绍

浏览器是网页运行的平台,常用的浏览器有IE、火狐(Firefox)、谷歌(Chrome)、猎豹浏览器、Safari和Opera等。如下图所示:

浏览器内核:

浏览器内核
IE trident
chrome / 欧鹏 blink
火狐 gecko
Safari webkit

PS:「浏览器内核」也就是浏览器所采用的「渲染引擎」,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。渲染引擎是兼容性问题出现的根本原因。

Sublime Text 的使用

详情请移步至:Sublime Text使用技巧

一、HTML的介绍

1、HTML的概述:

html全称为HyperText Mackeup Language,译为超文本标记语言,不是一种编程语言,是一种描述性的标记语言,用于描述超文本中内容的显示方式。比如字体什么颜色,大小等。

  • 超文本:音频,视频,图片称为超文本。
  • 标记 :<英文单词或者字母>称为标记,一个HTML页面都是由各种标记组成。

作用:HTML是负责描述文档语义的语言。

注意:HTML语言不是一个编程语言(有编译过程),而是一个标记语言(没有编译过程),HTML页面直接由浏览器解析执行。

HTML是负责描述文档语义的语言

html中,除了语义,其他什么都没有。

html是一个纯本文文件(就是用txt文件改名而成),用一些标签来描述文字的语义,这些标签在浏览器里面是看不到的,所以称为“超文本”,所以就是“超文本标记语言”了。
所以,接下来,我们肯定要学习一堆html中的标签对儿,这些标签对儿能够给文本不同的语义。

比如,面试的时候问你,h1标签有什么作用?

  • 正确答案:给文本增加主标题的语义。
  • 错误答案:给文字加粗、加黑、变大。

2、HTML的历史

html中标签发展趋势.png

我们专门来对XHTML做一个介绍。

XHTML介绍:
XHTML:Extensible Hypertext Markup Language,可扩展超文本标注语言。
XHTML的主要目的是为了取代HTML,也可以理解为HTML的升级版。
HTML的标记书写很不规范,会造成其它的设备(ipad、手机、电视等)无法正常显示。
XHTML与HTML4.0的标记基本上一样。
XHTML是严格的、纯净的HTML。

我们稍后将对XHTML的编写规范进行介绍。

3、HTML的网络术语

  • 网页 :由各种标记组成的一个页面就叫网页。
  • 主页(首页) : 一个网站的起始页面或者导航页面。
  • 标记: <p>称为开始标记 ,</p>称为结束标记,也叫标签。每个标签都规定好了特殊的含义。
  • 元素:<p>内容</p>称为元素.
  • 属性:给每一个标签所做的辅助信息。
  • xhtml: 符合XML语法标准的HTML。
  • dhtml:dynamic,动态的。javascript + css + html合起来的页面就是一个dhtml。
  • http:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP:邮件传输协议,ftp:文件传输协议。

4、HTML的编辑工具

  • NotePad:记事本。
  • EditPlus:语法高亮显示。技巧: 根据颜色判断单词是否出错 (不是100%)。不好的地方:没有代码提示。
  • UltraEdit:根据颜色判断单词是否出错,可以显示2进制数据。
  • Sublime Text:新一代的代码编辑器(用的人很多)。
  • dw(dreamweaver,专业工具) :建立WEB站点和应用程序的专业工具。它将布局功能、开发工具、代码编辑组合在一起。有代码提示。

PS:后缀名不能决定文件格式,只能决定打开文件打开的方式。

5、计算机编码介绍

计算机,不能直接存储文字,存储的是编码。

计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们定义一套规则来表示。假如:A用110表示,B用111表示等。

ASCII码:
美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。
美国的国家语言是英语,只要能表示0-9、a-z、A-Z、特殊符号。

ANSI编码:
每个国家为了显示本国的语言,都对ASCII码进行了扩展。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。例如:
中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。
日本的ANSI编码是JIS编码。
台湾的ANSI编码是BIG5编码(繁体)。

GBK:
对GB2312进行了扩展,用来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码位。K的含义就是“扩展”。

Unicode编码(统一编码):
用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。A的Unicode编码是0000 0000 0000 0000 0000 0000 0100 0000

UTF-8(Unicode Transform Format)编码:
根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用2个字节表示。

毫无疑问,开发中,都用UTF-8编码吧,准没错。

中文能够使用的字符集两种:

  • 第一种:UTF-8。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语……

  • 第二种:GBK(对GB2312进行了扩展)。gb2312 是国标,是中国的字库,里面仅涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。

字库规模: UTF-8(字全) > gb2312(只有汉字)

重点1:避免乱码

我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码!(重点)。

当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: 文件→ set File Encoding to → Chinese Simplified(GBK)。

重点2:UTF-8和gb2312的比较

保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)

总结:

  • UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿;
  • gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。

列出2个使用情形:

1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。
2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。

我们亲测:

  • qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。
  • 新华网藏语频道,使用的是UTF-8,保证字符集的数量。

对了,我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到me标签中的charset属性即可。
那么,我们为什么可以查看网页的源代码呢?因为这个打开的网页已经存到我的临时文件夹里了,临时文件夹里的html是纯文本文件,纯文本文件自然剋以查看网页的源代码了。

6、HTML颜色介绍

颜色表示:

  • 纯单词表示:red、green、blue、orange、gray等
  • 10进制表示:rgb(255,0,0)
  • 16进制表示:#FF0000、#0000FF、#00FF00等

RGB色彩模式:

  • 自然界中所有的颜色都可以用红、绿、蓝(RGB)这三种颜色波长的不同强度组合而得,这就是人们常说的三原色原理。
  • RGB三原色也叫加色模式,这是因为当我们把不同光的波长加到一起的时候,可以得到不同的混合色。例:红+绿=黄色,红+蓝=紫色,绿+蓝=青
  • 在数字视频中,对RGB三基色各进行8位编码就构成了大约1678万种颜色,这就是我们常说的真彩色。所有显示设备都采用的是RGB色彩模式。
  • RGB各有256级(0-255)亮度,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。

二、HTML的规范

  • HTML是一个弱势语言
  • HTML不区分大小写
  • HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符,比如dos系统)
  • HTML的结构:
    • 声明部分:主要作用是用来告诉浏览器这个页面使用的是哪个标准。<!doctype html>是HTML5标准。
    • head部分:将页面的一些额外信息告诉服务器。不会显示在页面上。
    • body部分:我们所写的代码必须放在此标签內。

目前,IE浏览器是完全不支持H5的,支持最好的是Opera浏览器,可以支持95%以上;其次是google,可以支持一部分H5。

1、编写XHTML的规范:

(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文档类型定义

2、HTML的基本语法特性

(1)HTML对换行不敏感,对tab不敏感

HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。

也就是说,HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系。但是,我们发现有良好的缩进,代码更易读。要求大家都正确缩进标签。

百度为了追求极致的显示速度,所以HTML标签都没有换行、都没有缩进(tab),HTML和换不换行无关,标签的层次依然清晰,只不过程序员不可读了。如下图所示:

(2)空白折叠现象

HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。

举例如下:

(3)标签要严格封闭

标签不封闭是灾难性的。

标签不封闭的举例如下:

三、HTML结构详解

备注:

  • 所有的浏览器默认情况下都会忽略空格和空行
  • 每个标签都有私有属性。也都有公有属性。
  • html中表示长度的单位都是像素。HTML只有一种单位就是像素。

HTML标签通常是成对出现的(双边标记),比如 <div> 和 </div>,也有单独呈现的标签(单边标记),如:<br />、<hr />和<img src=“images/1.jpg” />等。

属性与标记之间、各属性之间需要以空格隔开。属性值以双引号括起来。

使用Emmet插件快速生成html的骨架

在Sublime Text中安装Emmet插件。

新建html文件,输入html:xt,按Tab键后(或者按Ctrl+E),自动生成的代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

新建html,输入html:5后,按 Tab键后,自动生成的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

1、文档声明头

任何一个标准的HTML页面,第一行一定是一个以

<!DOCTYPE ……

开头的语句。
这一行,就是文档声明头,DocType Declaration,简称DTD。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。

HTML4.01有哪些规范呢?

首先我们先确定一件事儿,我们现在学习的是HTML4.01这个版本,这个版本是IE6开始兼容的。HTML5是IE9开开始兼容的。但是IE6、7、8这些浏览器还不能过早的淘汰,所以这几年网页还是应该用HTML4.01来制作。如今,手机、移动端的网页,就可以使用HTML5了,因为其兼容性更高。

说个题外话,html1 至 html3 是美国军方以及高等研究所用的,并未对外公开。

HTML4.01里面有两大种规范,每大种规范里面又各有3种小规范。所以一共6种规范(见下面):

HTML4.01里面规定了普通和XHTML两大种规范。

HTML觉得自己有一些规定不严谨,比如,标签是否可以用大写字母呢?<H1></H1>

所以,HTML就觉得,把一些规范严格的标准,又制定了一个XHTML1.0。在XHTML中的字母X,表示“严格的”。

总结一下,HTML4.01一共有6种DTD,说白了,HTML第一行语句一共有6种:

下面对上图中的三种小规范进行解释:

  • strict:表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。
    比如,u标签,就是给一个本文加下划线,但是这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。
    那怎么给文本增加下划线呢?今后的css将使用css属性来解决。
    那么,XHTML1.0更为严格,因为这个体系本身规定比如标签必须是小写字母、必须严格闭合标签、必须使用引号引起属性等等。

  • Transitional:表示“普通的”,这种模式就是没有一些别的规范。

  • Frameset:表示“框架”,在框架的页面使用。

在sublime输入的html:xt,x表示XHTML,t表示transitional。
HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了(W3C自己打脸了):

<!DOCTYPE html>

2、头标签

头标签都放在头部分之间。包括:<title>、<base>、<meta>、<link>

  • <title>:指定整个网页的标题,在浏览器最上方显示。
  • <base>:为页面上的所有链接规标题栏显示的内容定默认地址或默认目标。
  • <meta>:提供有关页面的基本信息
  • <body>:用于定义HTML文档所要显示的内容,也称为主体标签。我们所写的代码必须放在此标签內。
  • <link>:定义文档与外部资源的关系。

我们打开EditPlus软件,新建一个html文件,自动生成的代码如下:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  
 </body>
</html>

上面的<meta>标签都不用记,但是另外还有一个<meta>标签是需要记住的:

<meta http-equiv="refresh" content="3;http://www.baidu.com">

上面这个标签的意思是说,3秒之后,自动跳转到百度页面。

我们接下来对各个头标签进行介绍。

(1)字符集 charset

我们发现,在头标签中,有下面这种标签:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

字符集用meta标签中的charset定义,meta表示“元”。“元”配置,就是表示基本的配置项目。

charset就是charactor set(即“字符集”),这里采用的是。这个meta不用背,用sublime生成就行。

浏览器就是通过meta来看网页是什么字符集的。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就是乱码。

(2)定义“关键词”

举例如下:

<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />

这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。

(3)定义“页面描述”

meta除了可以设置字符集,还可以设置关键字和页面描述。

我们把含有meta标签的这一行代码抽象一下:

<meta name=" " content=" ">

name即“名字”,content即“内容”。

只要设置Description页面描述,那么百度搜索结果,就能够显示这些语句,这个技术叫做SEO(search engine optimization,搜索引擎优化)。

设置页面描述的举例:

<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />

效果如下:

(4)title标签

        <title>网页的标题</title>

title也是有助于SEO搜索引擎优化的。

html的完整骨架:

综上所述,html的比较完整的骨架是这样:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        <meta name="Keywords" content="牛逼,很牛逼,特别牛逼" />
        <meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />
        <title>Document</title>
    </head>
    <body>
        
    </body>
    </html>

面试题:

  • 问:网页的head标签里面,表示的是页面的配置,有什么配置?
  • 答:字符集、关键词、页面描述、页面标题。(今后我们还能看见一些其他的配置:IE适配、视口、iPhone小图标等等)

3、<body>标签的属性

其属性有:

  • bgcolor:设置整个网页的背景颜色。
  • background:设置整个网页的背景图片。
  • text:设置网页中的文本颜色。
  • leftmargin:网页的左边距。IE浏览器默认是8个像素。
  • topmargin:网页的上边距。
  • rightmargin:网页的右边距。
  • bottommargin:网页的下边距。

<body>标签另外还有一些属性,这里用个例子来解释:

上方代码中,当我们对点我点我这几个字使用超链时,link属性表示默认显示的颜色、alink属性表示鼠标点击但是还没有松开时的颜色、vlink属性表示点击完成之后显示的颜色。效果如下:

接下来,我们讲一下<body>里的各种标签的属性。

一、排版标签

注释标签

<!-- 注释  -->

段落标签<p>

<p>This is a paragraph</p>
<p>This is another paragraph</p>

属性:

  • align="属性值":对齐方式。属性值包括left center right。
    举例:

Paste_Image.png

 

段落,是英语paragraph“段落”缩写。

HTML标签是分等级的,HTML将所有的标签分为两种:

  • 文本级标签:p、span、a、b、i、u、em。文本级标签里只能放文字、图片、表单元素。

  • 容器级标签:div、h系列、li、dt、dd。容器级标签里可以放置任何东西。

从学习p的第一天开始,就要死死记住:p标签是一个文本级标签,p里面只能放文字、图片、表单元素。其他的一律不能放。

错误写法:(尝试把 h 放到 p 里)

    <p>
        我是一个小段落
        <h1>我是一级标题</h1>
    </p>

网页效果如下:

上图显示,浏览器不允许你这么做,我们使用Chrome的F12审查元素发现,浏览器自己把p封闭掉了,不让你去包裹h1。

PS:Chrome浏览器是世界上HTML5支持最好的浏览器。提供了非常好的开发工具,非常适合我们开发人员使用。审查元素功能的快捷键是F12。

块级标签 <div>和<span>

div和span是非常重要的标签,div的语义是division“分割”; span的语义就是span“范围、跨度”。

CSS课程中你将知道,这两个东西,都是最最重要的“盒子”。

div:把标签中的内容作为一个块儿来对待(division)。必须单独占据一行。

div标签的属性:

  • align="属性值":设置块儿的位置。属性值可选择:left、right、 center。

 

<span>和<div>唯一的区别在于:<span>是不换行的,而<div>是换行的。

如果单独在网页中插入这两个元素,不会对页面产生任何的影响。这两个元素是专门为定义CSS样式而生的。或者说,DIV+CSS来实现各种样式。

效果举例:

Paste_Image.png

div在浏览器中,默认是不会增加任何的效果的,但是语义变了,div中的所有元素是一个小区域。
div标签是一个容器级标签,里面什么都能放,甚至可以放div自己。

span也是表达“小区域、小跨度”的标签,但是是一个文本级的标签。
就是说,span里面只能放置文字、图片、表单元素。 span里面不能放p、h、ul、dl、ol、div。

span里面是放置小元素的,div里面放置大东西的。举例如下:

span举例:

            <p>
                简介简介简介简介简介简介简介简介
                <span>
                    <a href="">详细信息</a>
                    <a href="">购买</a>
                </span>
            </p>

div举例:

    <div class="header">
        <div class="logo"></div>
        <div class="nav"></div>
    </div>
    <div class="content">
        <div class="guanggao"></div>
        <div class="dongxi"></div>
    </div>
    <div class="footer"></div>

所以,我们亲切的称呼这种模式叫做“div+css”。div标签负责布局,负责结构,负责分块。css负责样式。

换行标签<br>(已废弃)

当你打算结束一行,而又不想开始一个新段落时,<br>标签就派上用场了。无论你将它置于何处,<br>标签都会产生一个强制的换行。

This <br> is a para<br>graph with line breaks

效果如下:

上图显示,<p>标签和<br>标签的区别在于:<p>标签会在段落的前后自动插入一个空行,而<br>标签没有空行;而且<br>标签没有属性。

注意<br> 没有结束标签,把<br>标签写为 <br/> 是经得起未来考验的做法,XHTML 和 XML 都接受在打开的标签内部来关闭标签的做法。

 

水平线标签<hr>(已废弃)

水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分。
效果如下:

Paste_Image.png

属性:

  • align="属性值":设定线条置放位置。属性值可选择:left right center。
  • size="2":设定线条粗细。以像素为单位,内定为2。
  • width="500"或width="70%":设定线条长度。可以是绝对值(单位是像素)或相对值。如果设置为相对值的话,内定为100%。
  • color="#0000FF":设置线条颜色。
  • noshade:不要阴影,即设定线条为平面显示。若没有这个属性则表明线条具阴影或立体,这是内定值。
    属性效果演示:

Paste_Image.png

 

内容居中标签 <center>

此时center代表是一个标签,而不是一个属性值了。只要是在这个标签里面的内容,都会居于浏览器的中间。
效果演示:

Paste_Image.png

到了H5里面,center标签不建议使用。

 

预定义(预格式化)标签:<pre>

含义:将保留其中的所有的空白字符(空格、换行符),原封不动的输出结果(告诉浏览器不要忽略空格和空行)
说明:真正排网页过程中,<pre>标签几乎用不着。但在PHP中用于打印一个数组时使用。

效果演示:

Paste_Image.png

上图中,好像红框部分的字体变小了,而且还出现了缩进,好吧, 这个其实是浏览器搞的鬼。
为什么要有<pre>这个标签呢?答案是:

所有的浏览器默认情况下都会忽略空格和空行。

好吧,其实这个标签也用的比较少。

二、字体标签

标题

标题使用<h1>至<h6>标签进行定义。<h1>定义最大的标题,<h6>定义最小的标题。具有align属性,属性值可以是:left、center、right。
效果演示:

Paste_Image.png

字体标签<font>(已废弃)

属性:

  • color="红色"或color="#ff00cc"或color="new rgb(0,0,255)":设置字体颜色。
    设置方式:单词   #ff00cc   rgb(0,0,255)
  • size:设置字体大小。 取值范围只能是:1至7。取值时,如果取值大于7那就按照7来算,如果取值小于1那就按照1来算。如果想要更大的字体,那就只能通过css样式来解决。
    设置:用’+2’代表值是5 或直接给值
  • face="微软雅黑":设置字体类型。注意在写字体时,“微软雅黑”这个字不能写错。
    举例:
<font face="微软雅黑" color="#FF0000" size="10">vae</font>

效果:

Paste_Image.png

特殊字符

  • &nbsp;:空格 (non-breaking spacing,不断打空格)
  • &lt;:小于号(less than)
  • &gt;:大于号(greater than)
  • &amp;:符号&
  • &quot;:双引号
  • &apos;:单引号
  • &copy;:版权©
  • &trade;:商标™
  • &#32464;:文字绐。其实,#32464是汉字绐的unicode编码。

要求背诵的特殊字符有:&nbsp;、&lt;、&gt;、&copy;。

比如说,你想把<p>作为一个文本在页面上显示,直接写<p>是肯定不行的,因为这代表的是一个段落标签,所以这里需要用到转义字符。应该这么写:

这是一个HTML语言的&lt;p&gt;标签

正确的效果如下:

Paste_Image.png

错误的效果如下:

Paste_Image.png

其实我们只要记住前三个符号就行了,其他的在需要的时候查一下就行了。而且,EditPlus软件中是可以直接点击这些符号进行选择的:

Paste_Image.png

来一张表格,方便需要的时候查询:

特殊字符描述字符的代码
  空格符 &nbsp;
< 小于号 &lt;
>  大于号 &gt;
& 和号 &amp;
¥ 人民币 &yen;
© 版权 &copy;
® 注册商标 &reg;
° 摄氏度 &deg;
± 正负号 &plusmn;
× 乘号 &times;
÷ 除号 &divide;
² 平方2(上标2) &sup2;
³ 立方3(上标3) &sup3;

 

粗体标签<b>或<strong>(已废弃)

效果:

Paste_Image.png

下划线标记 <u> 中划线标记<s>(已废弃)

 

斜体标记 <i>或<em>(已废弃)

效果:

Paste_Image.png

 

上标<sup> 下标<sub>

上小标这两个标签容易混淆,怎么记呢?这样记:b的意思是bottom:底部
举例:

O<sup>2</sup>    5<sub>3</sub>

效果:

Paste_Image.png

三、超链接

超链接有三种形式:

1、外部链接:链接到外部文件。举例:

<a href="02页面.html">点击进入另外一个文件</a>

a是英语anchor“锚”的意思,就好像这个页面往另一个页面扔出了一个锚。是一个文本级的标签。

href是英语hypertext reference超文本地址的缩写。读作“喝瑞夫”,不要读作“喝夫”。

效果:

Paste_Image.png

当然,我们也可以直接点进链接,访问一个网址。举例如下;

    <a href="http://www.baidu.com" target="_blank">点我点我</a>

2、锚链接:
指给超链接起一个名字,作用是在本页面或者其他页面的的不同位置进行跳转。比如说,在网页底部有一个向上箭头,点击箭头后回到顶部,这个就是利用到了锚链接。
首先我们要创建一个锚点,也就是说,使用name属性或者id属性给那个特定的位置起个名字。效果如下:

Paste_Image.png

上图中解释:

11行代码表示,顶部这个锚的名字叫做name1。
然后在底部设置超链接,点击时将回到顶部(此时,网页中的url的末尾也出现了#name1)。注意上图中红框部分的#号不要忘记了,表示跳到名为name1的特定位置,这是规定。如果少了#号,点击之后,就会跳到name1这个文件或者name1这个文件夹中去。

如果我们将上图中的第28行代码写成:

<a href="a.hhml#name1">回到顶部</a>

那就表示,点击之后,跳转到a.html页面的name1锚点中去。

说明:name属性是HTML4.0以前使用的,id属性是HTML4.0后才开始使用。为了向前兼容,因此,name和id这两个属性都要写上,并且值是一样的。

3、邮件链接:
代码举例:

<a href="mailto:smyhvae@163.com">点击进入我的邮箱</a>

效果:点击之后,会弹出outlook,作用不大。

超链接的属性

  • href:目标URL
  • title:悬停文本。
  • name:主要用于设置一个锚点的名称。
  • target:告诉浏览器用什么方式来打开目标页面。target属性有以下几个值:
    • _self:在同一个网页中显示(默认值)
    • _blank:在新的窗口中打开。
    • _parent:在父窗口中显示
    • _top:在顶级窗口中显示

title属性举例:

<a href="09_img.html" title="很好看哦">结婚照</a>

效果如下:

target属性举例:

<a href="1.html" title="悬停文本" target="_blank">链接的内容</a>

blank就是“空白”的意思,就表示新建一个空白窗口。为啥有一个_ ,就是规定,没啥好解释的。
也就是说,如果不写target=”_blank”那么就是在相同的标签页打开,如果写了target=”_blank”,就是在新的空白标签页中打开。

备注1:分清楚img和a标签的各自的属性

区别如下:

<img src="1.jpg" />
<a href="1.html"></a>

备注2:a是一个文本级的标签

比如一个段落中的所有文字都能够被点击,那么应该是p包裹a:

<p>
    <a href="">段落段落段落段落段落段落</a>
</p>

而不是a包裹p:

<a href="">
    <p>
        段落段落段落段落段落段落
    </p>
</a>

a的语义要小于p,a就是可以当做文本来处理,所以p里面相当于放的就是纯文字。

四、图片标签

img: 代表的就是一张图片。是单边标记。

img是自封闭标签,也称为单标签。

能插入的图片类型:

  • 能够插入的图片类型是:jpg(jpeg)、gif、png、bmp。类型和类型之间有什么区别,css课上讲。

  • 不能往网页中插入的图片格式是:psd、ai

HTML页面不是直接插入图片,而是插入图片的引用地址,所以也要把图片上传到服务器上。

src属性:图片的相对路径和绝对路径

这里涉及到图片的一个属性:

  • src属性:指图片的路径。

在写图片的路径时,有两种写法:相对路径、绝对路径

1、写法一:相对路径

相对当前页面所在的路径。两个标记 . 和 .. 分表代表当前目录和父路径。

举例1:

<!-- 当前目录中的图片 -->
<img src="2.jpg">
<img src=".\2.jpg"> 
<!-- 上一级目录中的图片 -->
<img src="..\2.jpg">

img 是image“图片”的简写,src 是英语source“资源”的缩写。

相对路径不会出现这种情况:

aaa/../bbb/1.jpg

../要么不写,要么就写在开头。

举例2:

<img src="images/1.jpg">

上方代码的意思是说,当前页面有一个并列的文件夹images,在文件夹images中存放了一张图片1.jpg
效果:

Paste_Image.png

相对路径的面试题。现有如下文件层级图:

问题:如果想在index.html中插入1.png,那么对应的img语句是?

分析:

现在document是最大的文件夹,里面有两个文件夹work和photo。work中又有一个文件夹叫做myweb。myweb文件夹里面有index.html。 所以index.html在myweb文件夹里面,上一级就是work文件夹,上两级就是document文件夹。通过document文件夹当做一个中转站,进入photo文件夹,看到了1.png。

答案:

<img src="../../photo/1.png" />

2、写法二:绝对路径

绝对路径包括以下两种:

(1)以盘符开始的绝对路径。举例:

<img src="C:\Users\smyhvae\Desktop\html\images\1.jpg">

(2)网络路径。举例:

<img src="http://img.smyhvae.com/2016040102.jpg">

大家打开上面的img中的链接,扫一扫,可能有惊喜哦。

相对路径和绝对路径的总结

相对路径的好处:站点不管拷贝到哪里,文件和图片的相对路径关系都是不变的。
相对路径使用有一个前提,就是网页文件和你的图片,必须在一个服务器上。

问题:我的网页在C盘,图片却在D盘,能不能插入呢?

答案: 用相对路径不能,用绝对路径也不能。

注意:可以使用file://来插入,但是这种方法,没有任何意义!因为服务器上没有所谓c盘、d盘。

下面的方法是行的,但是没有任何工程上的意义,这是因为服务器没有盘符,linux系统没有盘符:

<img src="file://C:\Users\Danny\Pictures\明星\1.jpg" alt="" />

总结一下:

  • 我们现在无论是在a标签、img标签,如果要用路径。只有两种路径能用,就是相对路径和绝对路径。

  • 相对路径,就是../ image/ 这种路径。从自己出发,找到别人;

  • 绝对路径,就是http://开头的路径。

  • 绝对不允许使用file://开头的东西,这个是完全错误的!

img标签的其他属性

  • width:宽度
  • height:高度
  • Align:指图片的水平对齐方式,属性值可以是:left、center、right
  • title:提示性文本。公有属性。也就是鼠标悬停时出现的文本。
  • border:给图片加边框(描边),单位是像素,边框的颜色是黑色
  • Hspace:指图片左右的边距
  • Vspace:指图片上下的边距

  • Alt:当图片显示不出来的时候,代替图片显示的内容。alt是英语 alternate “替代”的意思。(有的浏览器不支持)

举例:

<img src="images/1.jpg" width="300" height="`188" title="这是美女">

效果:

Paste_Image.png

Alt属性效果演示:

Paste_Image.png

  • 图片的align属性:图片和周围文字的相对位置。属性取值可以是:bottom(默认)、center、top、left、right。
    我们来分别看一下这align属性的这几个属性值的区别。
    1、align="",图片和文字低端对齐。即默认情况下的显示效果:

2、align="center":图片和文字水平方向上居中对齐。显示效果:

3、align="top":图片与文字顶端对齐。显示效果:

4、align="left":图片在文字的左边。显示效果:

5、align="right":图片在文字的右边。显示效果:

注意事项:
(1)如果要想保证图片等比例缩放,请只设置width和height中其中一个。
(2)如果想实现图文混排的效果,请使用align属性,取值为left或right。

 

热点问题

指的是对图片的局部区域加超链接。
我们知道,如果给图片加一个超链接,那个点击这个图片的任意区域,都会跳转到新的位置。举例:

<a href="网页2.html"><img src="2.jpg"></a>

上方代码表明:给图片加一个超链接,那个点击这个图片的任意区域,都会跳转到新的位置。
现在,我只想对图片的局部区域加超链接,该怎么做呢?这里的难点在于坐标的确定,此时需要用到Dreamweaver。

Paste_Image.png

上图中,切换到“设计”标签,然后:

Paste_Image.png

上图中,点击菜单栏插入-图像,导入图片:

Paste_Image.png

,在图片上点击右键,选择属性,弹出属性面板:

Paste_Image.png

上图中,我们可以利用红框部分的地图绘制需要添加超链接的区域。箭头处表示的是要链接到的文件。蓝框部分表示打开新页面的方式,蓝狂部分的new是没有下划线的,它和_blank的含义是一样的。

Paste_Image.png
局部区域的热点设置完毕后,上图显示,红框部分就是多出的代码,也正是我们需要的代码。多出的代码如下:

<img src="file:///C|/Users/smyhvae/Desktop/html/1.jpg" alt="" width="488" height="730" usemap="#Map"/>
<map name="Map">
  <area shape="circle" coords="227,374,63" href="file:///C|/Users/smyhvae/Desktop/html/网页2.html" target="_blank">
</map>

上方代码中,第一行的usemap="#Map"表示我要引用名为Map的地图。
然后第02至第04行就给出了地图的定义。
效果演示:

3.gif

最后,送上妹子的近照一张。楼主已经仁至义尽了。

列表标签

列表标签分为三种。

1、无序列表<ul>,无序列表中的每一项是<li>

英文单词解释如下:

  • ul:unordered list,“无序列表”的意思。
  • li:list item,“列表项”的意思。

例如:

<ul>
    <li>默认1</li>
    <li>默认2</li>
    <li>默认3</li>
</ul>

效果:

注意:

  • li不能单独存在,必须包裹在ul里面;反过来说,ul的“儿子”不能是别的东西,只能有li。
  • 我们这里再次强调,ul的作用,并不是给文字增加小圆点的,而是增加无序列表的“语义”的。

属性:

  • type="属性值"。属性值可以选: disc(实心原点,默认),square(实心方点),circle(空心圆)。
    效果如下:

不光是<ul>标签有type属性,<ul>里面的<li>标签也有type属性(虽然说这种写法很少见)。效果如下:

注意:项目符号可以是图片,但是通过CSS设置

  • 标记的背景图片来实现(CSS中讲)。

     

    当然了,列表之间是可以嵌套的。我们来举个例子:
    代码:

      <ul>
        <li><b>北京市</b>
            <ul>
                <li>海淀区</li>
                <li>朝阳区</li>
                <li>东城区</li>
    
            </ul>
        </li>
    
        <li><b>广州市</b>
            <ul>
                <li>天河区</li>
                <li>越秀区</li>
            </ul>
        </li>
      </ul>

    效果:

    ul标签实际应用场景

    场景1 —— 导航条:

    场景2 —— li里面放置的内容可能很多:

    声明:ul的儿子,只能是li。但是li是一个容器级标签,li里面什么都能放。甚至可以再放一个ul。

    2、有序列表<OL>,里面的每一项是<li>

    英文单词:Ordered List。

    例如:

    <ol >   
        <li>呵呵哒1</li>
        <li>呵呵哒2</li>
        <li>呵呵哒3</li>
    </ol>

    效果:

    属性:

    • type="属性值"。属性值可以是:1(阿拉伯数字,默认)、a、A、i、I。结合start属性表示从几开始。

    举例:

    <ol type="1">   
        <li>呵呵</li>
        <li>呵呵</li>
        <li>呵呵</li>
    </ol>
    
    <ol type="a">   
        <li>嘿嘿</li>
        <li>嘿嘿</li>
        <li>呵呵</li>
    </ol>
    
    <ol type="i" start="4"> 
        <li>哈哈</li>
        <li>哈哈</li>
        <li>哈哈</li>
    </ol>
    
    <ol type="I" start="10">    
        <li>么么</li>
        <li>么么</li>
        <li>么么</li>
    </ol>

    效果如下:

    和无序列表一样,有序列表也是可以嵌套的哦,这里就不举类似的例子了。

    ol和ul就是语义不一样,怎么使用都是一样的。
    ol里面只能有li,li必须被ol包裹。li是容器级。

    ol这个东西用的不多,如果想表达顺序,大家一般也用ul。举例如下:

    <ul>
        <li>1. 小苹果</li>
        <li>2. 月亮之上</li>
        <li>3. 最炫民族风</li>
    </ul>

    3、定义列表<dl>

    定义列表的作用非常大。

    <dl>英文单词:definition list,没有属性。dl的子元素只能是dt和dd。

    • <dt>:definition title 列表的标题,这个标签是必须的
    • <dd>:definition description 列表的列表项,如果不需要它,可以不加

    备注:dt、dd只能在dl里面;dl里面只能有dt、dd。

    举例:

    <dl>
        <dt>第一条</dt>
        <dd>你若是觉得你有实力和我玩,良辰不介意奉陪到底</dd>
        <dd>我会让你明白,我从不说空话</dd>
        <dd>我是本地的,我有一百种方式让你呆不下去;而你,无可奈何</dd>
    
        <dt>第二条</dt>
        <dd>良辰最喜欢对那些自认能力出众的人出手</dd>
        <dd>你可以继续我行我素,不过,你的日子不会很舒心</dd>
        <dd>你只要记住,我叫叶良辰</dd>
        <dd>不介意陪你玩玩</dd>
        <dd>良辰必有重谢</dd>
    
    </dl>

    效果:

    上图可以看出,定义列表表达的语义是两层:

    • (1)是一个列表,列出了几个dd项目
    • (2)每一个词儿都有自己的描述项。

    备注:dd是描述dt的。

    定义列表用法非常灵活,可以一个dt配很多dd:

        <dl>
            <dt>北京</dt>
            <dd>国家首都,政治文化中心</dd>
            <dd>污染很严重,PM2.0天天报表</dd>
            <dt>上海</dt>
            <dd>魔都,有外滩、东方明珠塔、黄浦江</dd>
            <dt>广州</dt>
            <dd>中国南大门,有珠江、小蛮腰</dd>
        </dl>

    还可以拆开,让每一个dl里面只有一个dt和dd,这样子感觉清晰一些:

        <dl>
            <dt>北京</dt>
            <dd>国家首都,政治文化中心</dd>
            <dd>污染很严重,PM2.0天天报表</dd>
        </dl>
    
        <dl>
            <dt>上海</dt>
            <dd>魔都,有外滩、东方明珠塔、黄浦江</dd>
        </dl>
    
        <dl>
            <dt>广州</dt>
            <dd>中国南大门,有珠江、小蛮腰</dd>
        </dl>

    真实案例:(京东最下方)

    上图中的结构如下:

    <dl>
        <dt>购物指南</dt>
        <dd>
            <a href="#">购物流程</a>
            <a href="#">会员介绍</a>
            <a href="#">生活旅行/团购</a>
            <a href="#">常见问题</a>
            <a href="#">大家电</a>
            <a href="#">联系客服</a>
        </dd>
    </dl>
    <dl>
        <dt>配送方式</dt>
        <dd>
            <a href="#">上门自提</a>
            <a href="#">211限时达</a>
            <a href="#">配送服务查询</a>
            <a href="#">配送费收取标准</a>
            <a href="#">海外配送</a>
        </dd>
    </dl>
    

    京东举例:

    dt、dd都是容器级标签,想放什么都可以。所以,现在就应该更加清晰的知道:用什么标签,不是根据样子来决定,而是语义(语义本质上是结构)。

    表格标签

    表格标签用<table>表示。
    一个表格<table>是由每行<tr>组成的,每行是由<td>组成的。
    所以我们要记住,一个表格是由行组成的(行是由列组成的),而不是由行和列组成的。
    在以前,要想固定标签的位置,唯一的方法就是表格。现在可以通过CSS定位的功能来实现。但是现在在做页面的时候,表格作用还是有一些的。

    例如,一行的单元格:

        <table>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </table>

    上面的表格中没有加文字,所以在生成的网页中什么都看不到。
    例如,3行4列的单元格:

        <table>
            <tr>
                <td>生命壹号</td>
                <td>23</td>
                <td>男</td>
                <td>黄冈</td>
            </tr>
    
            <tr>
                <td>许嵩</td>
                <td>29</td>
                <td>男</td>
                <td>安徽</td>
            </tr>
    
            <tr>
                <td>邓紫棋</td>
                <td>23</td>
                <td>女</td>
                <td>香港</td>
            </tr>
    
        </table>

    效果:

    上图中的表格好像没看到边框呀,不急,接下来看看<table>标签的属性。

    <table>的属性:

    • border:边框。像素为单位。
    • style="border-collapse:collapse;":单元格的线和表格的边框线合并
    • width:宽度。像素为单位。
    • height:高度。像素为单位。
    • bordercolor:表格的边框颜色。
    • align:表格的水平对齐方式。属性值可以填:left right center。
      注意:这里不是设置表格里内容的对齐方式,如果想设置内容的对齐方式,要对单元格标签<td>进行设置)
    • cellpadding:单元格内容到边的距离,像素为单位。默认情况下,文字是紧挨着左边那条线的,即默认情况下的值为0。
      注意不是单元格内容到四条边的距离哈,而是到一条边的距离,默认是与左边那条线的距离。如果设置属性dir="rtl",那就指的是内容到右边那条线的距离。
    • cellspacing:单元格和单元格之间的距离(外边距),像素为单位。默认情况下的值为0
    • bgcolor="#99cc66":表格的背景颜色。
    • background="路径src/...":背景图片。
      背景图片的优先级大于背景颜色。
    • bordercolorlight:表格的上、左边框,以及单元格的右、下边框的颜色
    • bordercolordark:表格的右、下边框,以及单元格的上、左的边框的颜色
      这两个属性的目的是为了设置3D的效果。
    • dir:公有属性,单元格内容的排列方式(direction)。 可以 取值:ltr:从左到右(left to right,默认),rtl:从右到左(right to left)
      既然说dir是共有属性,如果把这个属性放在任意标签中,那表明这个标签的位置可能会从右开始排列。

    单元格带边框的效果:

    备注:表格中很细表格边线的制作:
    CSS的写法:

    style="border-collapse:collapse;"

    int leixing de bianliang guocheng shi yizhon

    <tr>:行

    一个表格就是一行一行组成的嘛。
    属性:

    • dir:公有属性,设置这一行单元格内容的排列方式。可以取值:ltr:从左到右(left to right,默认),rtl:从右到左(right to left)
    • bgcolor:设置这一行的单元格的背景色。
      注:没有background属性,即:无法设置这一行的背景图片,如果非要设置,可以用css实现。
    • height:一行的高度
    • align="center":一行的内容水平居中显示,取值:left、center、right
    • valign="center":一行的内容垂直居中,取值:top、middle、bottom

     

    <td>:单元格

    属性:

    • align:内容的横向对齐方式。属性值可以填:left right center。
      如果想让每个单元格的内容都居中,这个属性太麻烦了,以后用css来解决。
    • valign:内容的纵向对齐方式。属性值可以填:top middle bottom
    • width:绝对值或者相对值(%)
    • height:单元格的高度
    • bgcolor:设置这个单元格的背景色。
    • background:设置这个单元格的背景图片。

     

    单元格的合并

    如果要将两个单元格合并,那肯定就要删掉一个单元格。
    单元格的属性:

    • colspan:横向合并。例如colspan="2"表示当前单元格在水平方向上要占据两个单元格的位置。
    • rowspan:纵向合并。例如rowspan="2"表示当前单元格在垂直方向上要占据两个单元格的位置。
      效果举例:(横向合并)

    效果举例:(纵向合并)

    <th>:加粗的单元格。相当于<td> + <b>

    • 属性同<td>标签。

     

    <caption>:表格的标题。使用时和tr标签并列

    • 属性:align,表示标题相对于表格的位置。属性取值可以是:left、center、right、top、bottom
      效果:

    表格的<thead>标签、<tbody>标签、<tfoot>标签

    这三个标签有与没有的区别:

    • 1、如果写了,那么这三个部分的代码顺序可以任意,浏览器显示的时候还是按照thead、tbody、tfoot的顺序依次来显示内容。如果不写thead、tbody、tfoot,那么浏览器解析并显示表格内容的时候是从按照代码的从上到下的顺序来显示。
    • 2、当表格非常大内容非常多的时候,如果用thead、tbody、tfoot标签的话,那么数据可以边获取边显示。如果不写,则必须等表格的内容全部从服务器获取完成才能显示出来。

    举例:

     <body>
    
        <table border="1">
    
            <tbody>
            <tr>
                <td>生命壹号</td>
                <td>23</td>
                <td>男</td>
                <td>黄冈</td>
            </tr>
            </tbody>
    
            <tfoot>
            <tr>
                <td>许嵩</td>
                <td>29</td>
                <td>男</td>
                <td>安徽</td>
            </tr>
            </tfoot>
    
            <thead>
            <tr>
                <td>邓紫棋</td>
                <td>23</td>
                <td>女</td>
                <td>香港</td>
            </tr>
            </thead>
    
        </table>
    
     </body>

    效果:

    框架标签

    如果我们希望在一个网页中显示多个页面,那框架标签就派上用场了。

    • 注意,框架标签不能放在<body>标签里面,因为<body>标签代表的只是一个页面,而框架标签代表的是多个页面。于是:<frameset>和<body>只能二选一。
    • 框架的集合用<frameset>表示,然后在<frameset>集合里放入一个一个的框架<frame>

    <frameset>:框架的集合

    一个框架的集合可以包含多个框架或框架的集合。
    属性:

    • rows:水平分割,将框架分为上下部分。写法有两种:
      1、绝对值写法:rows="200,*" 其中*代表剩余的。这里其实包含了两个框架:上面的框架占200个像素,下面的框架占剩下的部分。
      2、相对值写法:rows="30%,*" 其中*代表剩余的。这里其实包含了两个框架:上面的框架占30%,下面的框架占70%。
      注:如果你想将框架分成很多行,在属性值里用逗号隔开就行了。

    • cols:垂直分割,将框架分为左右部分。写法有两种:
      1、绝对值写法:cols="200,*" 其中*代表剩余的。这里其实包含了两个框架:左边的框架占200个像素,右边的框架占剩下的部分。
      2、相对值写法:cols="30%,*" 其中*代表剩余的。这里其实包含了两个框架:左边的框架占30%,右边的框架占70%。
      注:如果你想将框架分成很多列,在属性值里用逗号隔开就行了。

    效果:

    上图中,如果删掉页面right.html,显示效果如下:

    <frame>:框架

    一个框架显示一个页面。
    属性:

    • scrolling="no":是否需要滚动条。默认值是true。
    • noresize:不可以改变框架大小。默认情况下,单个框架的边界是可以拖动的,这样的话,框架大小就不固定了。如果用了这个属性值,框架大小将固定。

    举例:

    <frame src="top.html" noresize></frame>
    • bordercolor="#00FF00":给框架的边框定义颜色。这个属性在框架集合<frameset>中同样适用。
      颜色这个属性在IE浏览器中生效,但是在google浏览器中无效,不知道为啥。
    • frameborder="0"或frameborder="1":隐藏或显示边框(框架线)。

    • name:给框架起一个名字。
      利用name这个属性,我们可以在框架里进行超链。
      举例:

    效果:

    内嵌框架

    内嵌框架用<iframe>表示。<iframe>是<body>的子标记。
    内嵌框架inner frame:嵌入在一个页面上的框架(仅仅IE、新版google浏览器支持,可能有其他浏览器也支持,暂时我不清楚)。
    属性:

    • src="subframe/the_second.html":内嵌的那个页面
    • width=800:宽度
    • height=“150:高度
    • scrolling="no":是否需要滚动条。默认值是true。
    • name="mainFrame":窗口名称。公有属性。

    效果:

    内嵌框架举例:(在内嵌页面中切换显示不同的压面)

     <body>
    
        <a href="文字页面.html" target="myframe">默认显示文字页面</a><br>
        <a href="图片页面.html" target="myframe">点击进入图片页面</a><br>
        <a href="表格页面.html" target="myframe">点击进入表格页面</a><br>
    
        <iframe src="文字页面.html" width="400" height="400" name="myframe"></iframe>
        <br>
        嘿嘿
    
     </body>
    

    效果演示:

    表单标签

    表单标签用<form>表示,用于与服务器的交互。表单就是收集用户信息的,就是让用户填写的、选择的。

    属性:

    • name:表单的名称,用于JS来操作或控制表单时使用;
    • id:表单的名称,用于JS来操作或控制表单时使用;
    • action:指定表单数据的处理程序,一般是PHP,如:action=“login.php”
    • method:表单数据的提交方式,一般取值:get(默认)和post

    注意:表单和表格嵌套时,是在

    标记中套标记。

     

    form标签里面的action属性和method属性,在《Ajax》课程上给大家讲解。稍微说一下:action属性就是表示,表单将提交到哪里。 method属性表示用什么HTTP方法提交,有get、post两种。

    get提交和post提交的区别:
    GET方式:
    将表单数据,以"name=value"形式追加到action指定的处理程序的后面,两者间用"?"隔开,每一个表单的"name=value"间用"&"号隔开。
    特点:只适合提交少量信息,并且不太安全(不要提交敏感数据)、提交的数据类型只限于ASCII字符。

    POST方式:
    将表单数据直接发送(隐藏)到action指定的处理程序。POST发送的数据不可见。Action指定的处理程序可以获取到表单数据。
    特点:可以提交海量信息,相对来说安全一些,提交的数据格式是多样的(Word、Excel、rar、img)。

    Enctype:
    表单数据的编码方式(加密方式),取值可以是:application/x-www-form-urlencoded、multipart/form-data。Enctype只能在POST方式下使用。

    • Application/x-www-form-urlencoded:默认加密方式,除了上传文件之外的数据都可以
    • Multipart/form-data:上传附件时,必须使用这种编码方式。

    <input>:输入标签(文本框)

    用于接收用户输入。

    <input type="text" />

    属性:

    • type="属性值":文本类型。属性值可以是:
      • text(默认)
      • password:密码类型
      • radio:单选按钮,名字相同的按钮作为一组进行单选(单选按钮,天生是不能互斥的,如果想互斥,必须要有相同的name属性。name就是“名字”。
        )。非常像以前的收音机,按下去一个按钮,其他的就抬起来了。所以叫做radio。
      • checkbox:多选按钮,名字相同的按钮作为一组进行选择。
      • checked:将单选按钮或多选按钮默认处于选中状态。当<input>标签的type="radio"时,可以用这个属性。属性值也是checked,可以省略。
      • hidden:隐藏框,在表单中包含不希望用户看见的信息
      • button:普通按钮,结合js代码进行使用。
      • submit:提交按钮,传送当前表单的数据给服务器或其他程序处理。这个按钮不需要写value自动就会有“提交”文字。这个按钮真的有提交功能。点击按钮后,这个表单就会被提交到form标签的action属性中指定的那个页面中去。
      • reset:重置按钮,清空当前表单的内容,并设置为最初的默认值
      • image:图片按钮,和提交按钮的功能完全一致,只不过图片按钮可以显示图片。
      • file:文件选择框。
        提示:如果要限制上传文件的类型,需要配合JS来实现验证。对上传文件的安全检查:一是扩展名的检查,二是文件数据内容的检查。
    • value="内容":文本框里的默认内容(已经被填好了的)
    • size="50":表示文本框内可以显示五十个字符。一个英文或一个中文都算一个字符。
      注意size属性值的单位不是像素哦。
    • readonly:文本框只读,不能编辑。因为它的属性值也是readonly,所以属性值可以不写。
      用了这个属性之后,在google浏览器中,光标点不进去;在IE浏览器中,光标可以点进去,但是文字不能编辑。
    • disabled:文本框只读,不能编辑,光标点不进去。属性值可以不写。

    备注:HTML5中,input的类型又增加了很多(比如date、color,但是都不兼容,所以我们是在专门的HTML5课程中学)。

    举例:

        <form>
            姓名:<input value="呵呵" >逗比<br>
            昵称:<input value="哈哈" readonly=""><br>
            名字:<input type="text" value="name" disabled=""><br>
            密码:<input type="password" value="pwd" size="50"><br>
            性别:<input type="radio" name="gender" value="male" checked="">男 
                  <input type="radio" name="gender" value="female" >女<br>
            爱好:<input type="checkbox" name="love" value="eat">吃饭
                  <input type="checkbox" name="love" value="sleep">睡觉
                  <input type="checkbox" name="love" value="bat">打豆豆
        </form>

    效果:

    四种按钮的举例:

        <form>
            <input type="button" value="普通按钮"><br>
            <input type="submit"  value="提交按钮"><br>
            <input type="reset" value="重置按钮"><br>
            <input type="image" value="图片按钮1"><br>
            <input type="image" src="1.jpg" width="800" value="图片按钮2"><br>
            <input type="file" value="文件选择框">
        </form>

    前端开发工程师,只需要关心页面的美、样式、板式、交互。至于数据的保存、读取,都是后台工程师做的事情。

    Node.js就是后台语言,到时候我们就知道怎么把表单存储到数据库中了。在Ajax课中会有PHP内容,涉及MySQL,Ajax课你就知道表单怎么真的被提交了。

    效果:

    <select>:下拉列表标签

    <select>标签里面的每一项用<option>表示。select就是“选择”,option“选项”。

    select标签和ul、ol、dl一样,都是组标签。

    <select>标签的属性:

    • multiple:可以对下拉列表中的选项进行多选。没有属性值。
    • size="3":如果属性值大于1,则列表为滚动视图。默认属性值为1,即下拉视图。

    <option>标签的属性:

    • selected:预选中。没有属性值。

    举例:

        <form>
            <select>
                <option>小学</option>
                <option>初中</option>
                <option>高中</option>
                <option>大学</option>
                <option selected="">研究生</option>
            </select>
            <br><br><br>
    
            <select size="3">
                <option>小学</option>
                <option>初中</option>
                <option>高中</option>
                <option>大学</option>
                <option>研究生</option>
            </select>
            <br><br><br>
    
            <select multiple="">
                <option>小学</option>
                <option>初中</option>
                <option selected="">高中</option>
                <option selected="">大学</option>
                <option>研究生</option>
            </select>
            <br><br><br>
    
        </form>

    效果:

    <textare>标签:多行文本输入框

    text就是“文本”,area就是“区域”。

    属性:

    • value:提交给服务器的值。
    • rows="4":指定文本区域的行数。
    • cols="20":指定文本区域的列数。
    • readonly:只读。

    举例:

        <form>
            <textarea name="txtInfo" rows="4" cols="20">1、不爱摄影不懂设计的程序猿不是一个好的产品经理。</textarea>
        </form>

    上方代码解释:textarea这个标签,是个标签对儿。对儿里面不用写东西。如果写的话,就是这个框的默认文字。

    效果:

    上图的红框部分表示,我在文本区域进行了换行,所以显示的效果也出现了空白。

    表单的语义化

    比如,我们在注册一个网站的信息的时候,有一部分是必填信息,有一部分是选填信息,这个时候可以利用表单的语义化。
    举例:

        <form>
    
            <fieldset>
            <legend>账号信息</legend>
            姓名:<input value="呵呵" >逗比<br>
            密码:<input type="password" value="pwd" size="50"><br>
            </fieldset>
    
            <fieldset>
            <legend>其他信息</legend>
            性别:<input type="radio" name="gender" value="male" checked="">男 
                  <input type="radio" name="gender" value="female" >女<br>
            爱好:<input type="checkbox" name="love" value="eat">吃饭
                  <input type="checkbox" name="love" value="sleep">睡觉
                  <input type="checkbox" name="love" value="bat">打豆豆
            </fieldset>
    
        </form>

    效果:

    <label>标签

    我们先来看下面一段代码:

    <input type="radio" name="sex" /> 男
    <input type="radio" name="sex" /> 女
    

    对于上面这样的单选框,我们只有点击那个单选框(小圆圈)才可以选中,点击“男”、“女”这两个文字时是无法选中的;于是,label标签派上了用场。

    本质上来讲,“男”、“女”这两个文字和input标签时没有关系的,而label就是解决这个问题的。我们可以通过label把input和汉字包裹起来作为整体。

    解决方法如下:

    <input type="radio" name="sex" id="nan" /> <label for="nan">男</label>
    <input type="radio" name="sex" id="nv"  /> <label for="nv">女</label>

    上方代码中,input元素要有一个id,然后label标签有一个for属性,和id相同,那么这个label和input就有绑定关系了。

    当然了,复选框也有label:(任何表单元素都有label)

    <input type="checkbox" id="kk" />
    <label for="kk">10天内免登陆</label>  

    多媒体标签

    声明:
    多媒体包含:音频、视频、Flash。网页上的多媒体基本都是Flash格式的。
    .wmv、.dat、.mob、.rmvb等视频格式,在网页上不能直接播放,需要安装第三方的插件,才可以播放。不同的浏览器,播客上述视频格式,所使用插件参数又不一样。
    上述格式视频一般文件较大,不利于网络下载播放。
    一般情况下,是将其它的视频格式,转成Flash来在网页上播放。转换软件:格式工厂等。
    Flash格式的视频兼容性非常好,Flash格式的文件很小。

    <bgsound>标签:播放背景音乐

    属性:

    • src="音乐文件的路径"
    • loop="-1":属性值代表播放次数,-1代表循环播放。

    举例:

     <body>
        <bgsound src="王菲 - 清风徐来.mp3"></bgsound>
     </body>
    

    运行效果:
    打开网页后,在IE 8中播放正常,播放时网页上显示一片空白。在google浏览器中无法播放。

    <embed>标签:播放多媒体文件(音频、视频等)

    主要应用Netscape浏览器,它不是W3C规范。

    备注:视频格式可以支持 mp4、wav等,但不是所有视频格式都支持。

    属性:

    • src="多媒体文件的路径"
    • loop="-1":属性值代表播放次数,-1代表循环播放。
    • autostart="false":打开网页时,禁止自动播放。默认值是true。
    • volume="100":设置默认的音量大小,测试发现这个值好像不起作用哦。
    • width:指Flash文件的宽度
    • height:指Flash文件的高度
    • quality:指Flash的播放质量,质量有高有低 hight low
    • pluginspage:如果指定的Flash插件不存在,则从pluginspage指定的地方进行下载。
    • type:指定Flash的文件格式类型
    • wmode:指Flash的背景是否可以透明,取值:transparent是透明的

    <embed>标签播放音频举例:

     <body>
        <embed src="王菲 - 清风徐来.mp3"></embed>
     </body>
    

    IE 8中的运行效果:

    google浏览器中的运行效果:

    注:在HTML5中新增了<video>标签播放视频。

    <object>标签:播放多媒体文件(音频、视频等)

    主要应用IE浏览器,它是W3C规范。

    属性:

    • classid:指定Flash插件的ID号,一般存在于注册表中。
    • codebase:如果Flash插件不存在,则从codebase指定的地址下载。
    • <param>标签的主要作用:设置具体的详细参数。

    总结:在网页中插入Flash时,为了同时兼容多种浏览器,需要将<object>标签和<embed>标签标记一起使用,但使用的顺序是:<object>中嵌套<embed>标记。
    举例:

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="778" height="202">
      <param name="movie" value="images/banner.swf">
      <param name="quality" value="high">
      <param name="wmode" value="transparent">
      <embed src="images/banner.swf" width="778" height="202" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed>
    </object>

    <marquee>:滚动字幕标签

    如果在这个标签里设置了内容,那么,打开网页时,内容会像弹幕一样自动移动。
    属性:

    • direction="right":移动的目标方向。属性值可以是:left(从右向左移动,默认值)、right(从左向右移动)、up(从下向上移动)、down(从上向下移动)。

    • behavior="slide":行为方式。属性值可以是:slide(只移动一次)、scroll(循环移动,默认值)、alternate(循环移动)、。
      alternate和scroll属性值都是循环移动,区别在于:假设在direction="right"的情况下,behavior="scroll"表示从左到右、从左到右、从左到右···behavior="alternate"表示从左到右、从右到左、从左到右···

    • scrollamount="30":移动的速度
    • loop="3": 循环多少圈。负值表示无限循环
    • scrolldelay="1000":移动一次休息多长时间。单位是毫秒。

    举例:

        <marquee behavior="alternate" direction="down"  width="300" height="200" bgcolor="#8c5dc1">我来了</marquee>

    效果:

    html废弃标签介绍

    HTML现在只负责语义,而不负责样式。但是HTML一开始,连样式也包办了。这些样式的标签,都已经被废弃。

    2004年之前的东西:

    <font size="9" color="red">哈哈</font>

    下面这些标签都是css钩子,而不是原意:

        <b>加粗</b>
        <u>下划线</u>
        <i>倾斜</i>
        <del>删除线</del>
        <em>强调</em>
        <strong>强调</strong>
    

    这些标签,是有着浓厚的样式的作用,干涉了css的作用,所以HTML抛弃了他们。

    类似的还有水平线标签:

    <hr />

    换行标签:

    <br />

    但是,网页中99.9999%需要换行的时候,是因为另起了一个段落,所以要用p,而不要用<br />。不到万不得已,不要用br标签。

    标准的div+css页面,只会用到种类很少的标签:

    div  p  h1  span   a   img   ul   ol    dl    input

    知道每个标签的特殊用法、属性。比如a标签,img的属性。

 

 
posted @ 2018-08-08 23:45  冬季的袜子  阅读(244)  评论(0)    收藏  举报