HTML
HTML介绍
html全程Hyper Text Mackeup Language, 翻译为超文本标记语言,他不是一种编程语言,是一种描述性的标记语言,用于描述超文本内容的显示方式.比如: 字体,颜色,大小等
超文本: 音频,视频,图片称为超文本
标记: <英文单词或者字母>称为标记,一个HTML页面都是由各种标记组成
作用: HTML事负责描述文档语义的语言
注意: HTML语言不是一个编程语言,而是一个标记语言(没有编译过程),HTML页面直接由浏览器解析执行.
HTML是负责描述文档语义的语言
html是一个纯本文文件(就是用txt文件改名而成),用一些标签来描述文字的语义,这些标签在浏览器里面是看不到的,所以称为“超文本”,所以就是“超文本标记语言”了。
所以,接下来,我们肯定要学习一堆html中的标签对儿,这些标签对儿能够给文本不同的语义。
比如,面试的时候问你,h1标签有什么作用?
- 正确答案:给文本增加主标题的语义。
- 错误答案:给文字加粗、加黑、变大。
2、HTML的网络术语
- 网页 :由各种标记组成的一个页面就叫网页。
- 主页(首页) : 一个网站的起始页面或者导航页面。
- 标记:
<p>
称为开始标记 ,</p>
称为结束标记,也叫标签。每个标签都规定好了特殊的含义。 - 元素:
<p>内容</p>
称为元素. - 属性:给每一个标签所做的辅助信息。
HTML颜色介绍
颜色表示:
- 纯单词表示:red、green、blue、orange、gray等
- 10进制表示:rgb(255,0,0)
- 16进制表示:#FF0000、#0000FF、#00FF00等
我们大家先记住几个纯单词的颜色,css课程中会详细讲10进制和16进制。
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的结构:
- 声明部分:主要作用是用来告诉浏览器这个页面使用的是哪个标准。是HTML5标准。
- head部分:将页面的一些额外信息告诉服务器。不会显示在页面上。
- body部分:我们所写的代码必须放在此标签內。
(1)编写HTML的规范
1)所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:<h1><font></font></h1>
(2)所有的标记都必须小写。
(3)所有的标记都必须关闭。
- 双边标记:
<span></span>
- 单边标记:
<br>
转成<br />
<hr>
转成<hr />
,还有<img src=“URL” />
(4)所有的属性值必须加引号。<h1 id="head"></h1>
(5)所有的属性必须有值。<input type="radio" checked="checked" />
HTML的基础语法特征
(1) HTML对换行不敏感,对tab不敏感
HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。
也就是说,HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系。但是,我们发现有良好的缩进,代码更易读。要求大家都正确缩进标签。
(2)空白折叠现象
HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。
(3)标签要严格封闭
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规范
ps:
XHTML:Extensible Hypertext Markup Language,可扩展超文本标注语言。
XHTML的主要目的是为了取代HTML,也可以理解为HTML的升级版。
HTML的标记书写很不规范,会造成其它的设备(ipad、手机、电视等)无法正常显示。
XHTML与HTML4.0的标记基本上一样。
XHTML是严格的、纯净的HTML
重点来了:
头标签(head)
head标签都放在头部分之间,这里包含了: <title>, <meta>, <link>, <style>
<title>: 指定整个网页的标题,在浏览器最上方显示
<meta>:提供有关页面的基本元素
<link>: 定义文档与外部资源的关系
<style>: 定义内部样式表与网页的关系
Meta标签介绍:
元素可提供有关页面的源信息(mata-information),针对搜索引擎和更新频繁度的描述和关键词
标签位于文档的头部,不包含任何内容
提供的信息是用户不可见的,meta标签的组成: meta标签共有两个属性,他们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能.
常用的meta标签
http-equiv属性
它用来向浏览器传达一些有用的信息,帮助浏览器正确的显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值
# 重定向 2秒后跳转到对应的网址,注意分号 <meta http-equiv="refresh" content="2; URL=http://www.baidu.com"> # 指定文档的内容类型和编码类型 <meta http-equiv="Content-Type" content="text/html; chatset=utf-8" /> # 告诉IE浏览器以最高级模式渲染当前网页 <meta http-equiv="x-ua-compatible" content="IE=edge">
name属性
主要用于页面的关键字和描述,是写给搜索引擎看的,关键字可以有多个用","隔开,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的
<meta name="Description" content="内容介绍" />
<meta name=viewport content="width=device-width, initial-scale=1">
上面这个标签,是让我们网页支持移动端,移动设备优先(了解即可)
title标签
主要用来告诉用户和搜索引擎这个网页的主要内容是什么,搜索引擎可以通过网页标题,迅速的判断出当前网页的主题
字体标签:
h1-h6, <font>, <u>, <b>, <strong><em>, <sup>, <sub>
标题使用<h1>至<h6>标签进行定义.<h1>定义最大的标题,<h6>定义最小的标题.具有align属性,属性可以是: left, center, right
color="红色"
或color="#ff00cc"
或color="new rgb(0,0,255)"
:设置字体颜色。设置方式:单词 #ff00cc rgb(0,0,255)
size
:设置字体大小。 取值范围只能是:1至7。取值时,如果取值大于7那就按照7来算,如果取值小于1那就按照1来算。如果想要更大的字体,那就只能通过css样式来解决-
face="微软雅黑"
:设置字体类型。注意在写字体时,“微软雅黑”这个字不能写错。
实例:
<font face="微软雅黑" color="green" size="8">字体</font>
粗体标签<b>或<strong>(已放弃)
实例:
陈润
<b>陈润</b>
<strong>陈润</strong>
下划线标记<u>中划线标记<s>(已废弃)
实例
<u>陈润</u> <s>陈润</s>
斜体标记<i>或<em>(已废弃)
实例:
陈润
<i>陈润</i>
<em>陈润</em>
上标<sup>下标<sub>
5<sup>2</sup> 8<sub>2</sub>
特殊字符
:空格 (non-breaking spacing,不断打空格)<
:小于号(less than)>
:大于号(greater than)&
:符号&
"
:双引号'
:单引号©
:版权©
™
:商标™
要求大家背过的特殊字符: 、<、>、©
比如说,你想把<p>
作为一个文本在页面上显示,直接写<p>
是肯定不行的,因为这代表的是一个段落标签,所以这里需要用到转义字符。应该这么写:
这是一个HTML语言的<p>标签
排版标签
<div>, <span>, <br>, <hr>, <center>, <pre>
段落标签<p>
段落: 是英文paragraph的缩写
属性:
align="属性值": 对齐方式. 属性值包括: left, center, right
HTML标签是分等级的.HTML将所有的标签分为两种:
文本级标签: p, span, a, b, i, u, em.文本标签里只能放文字,图片,表单元素
容器级标签:div, h系列,li,dt,dd.容器级标签里可以方任何东西
谨记: p标签是一个文本标签,p里面只能放文字图片,表单元素,其他的一律不能方
块级标签<div>和<span>
div和span是非常重要的标签,div的语义是division“分割”; span的语义就是span“范围、跨度”。CSS课程中你将知道,这两个东西,都是最最重要的“盒子”。
div标签的属性
align="属性值": 设置快的位置.属性值可选择: left, right, center
<span>和<div>唯一的区别在于: <span>是不换行的,而<div>是换行的.
如果单独再网页中插入这两个元素,不会对页面产生任何的影响.这两个元素是专门为定义css样式而生的.或者说,DIV+CSS来实现各种样式.
实例:
<body> <div> 导航栏 </div> <div> 中心banner </div> <span>路飞</span> <span>alex</span> </body>
div再浏览器中,默认是不会增加任何的效果的,但是语义变了,div中的所有元素是一个小区域
div标签是一个容器级标签,里面什么都能方,甚至可以方div自己
就是说,span里面只能放置文字,图片,表单元素.span里面不能方p,h,ul,dl,ol,div
<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="shop"></div> </div> <div class="footer"></div>
所以,我们亲切的称呼这种模式叫做“div+css”。div标签负责布局,负责结构,负责分块。css负责样式。
ps:这个class属性名就与css有很大关联,讲到css模块会详细讲这块内容。
<br>标签都会产生一个强制的换行
<hr>(horizontal rule)可以再视觉上将文档分割成各个部分
<center>内容剧中标签
此时再center代表是一个标签,而不是一个属性值了.只要是再这个标签里面的内容,都会居于浏览器的中间.
实例:
<center> <p>陈润</p> </center>
到了H5里面,center标签不建议使用
预定义(预格式化)标签<pre>
含义: 将保留其中的所有的空白字符(空格,换行符),原封不动的输出结果(告诉浏览器不要忽略空格和空行)
说明: 真正排网页过程中,<pre>标签几乎用不着
超链接
超链接有三种形式:
1,外部连接: 链接到外部文件.举例
<a href="new.html">点击进入到新网页</a>
a是英语anchor"锚"的意思,就好像这个页面往另一个页面扔出一个锚.是一个文本级的标签.
<a href="http://www.baidu.com" target="_blank">进入百度</a>
2,锚链接:
指给超链接起一个名字,作用是再本页面或者其他页面的不容位置进行跳转.比如说,再网页底部有一个向上箭头,典济箭头回到顶部,这个就是利用了锚链接.
首先我们要创建一个锚点,也就是说,使用name属性或者id属性给那个特定的位置起个名字.
3,邮件连接:
代码举例:
<a href="mailto: zhaoxu@tedu.cn">联系我们</a>
效果: 点击之后,会弹出outlook,作用不大.
特殊几个链接:
返回页面顶部的位置
<a href="#">跳转到顶部</a>
与js有关
<a href="javascript:alert(1)">内容</a>
<a href="javascript:;">内容</a>
1,JavaScript:;表示什么都不执行,这样点击<a>时就没有任何反应 例如:
<a href="javascript:;">内容</a>
2,JavaScript: 是表示再触发<a>默认动作时,执行一段JavaScript代码,例如:
<ahref="JavaScript: alter()">内容</a>
超链接的属性
href: 目标URL
title: 悬停文本
name: 主要用于设置一个锚点的名称
target: 告诉浏览器用什么方式来打开目标页面. target属性有一下几个值:
_self: 在同一个网页中显示(默认值)
_blank: 在新的窗口中打开
_parent: 在父窗口中显示
_top: 在顶级窗口中显示
blank就是"空白"的意思,就表示新建一个空白窗口,为啥有一个_, 就是规定,内啥好解释的.
也就是说,如果不写成target="_blank"那么就是在相同的标签中打开.
a是一个文本级的标签
比如一个段落中的所有文字都能够被点击,那么应该就是p包含a
a的语义要小于p,a就是可以当作文本来处理,所以p里面相当于放的就是纯文字
图片标签<img />
img: 代表就是一张图片,是单边标记
img是自封闭标签,也称为单标签
相对路径的好处:站点不管拷贝到哪里,文件和图片的相对路径关系都是不变的。
相对路径使用有一个前提,就是网页文件和你的图片,必须在一个服务器上。
问题:我的网页在C盘,图片却在D盘,能不能插入呢?
答案: 用相对路径不能,用绝对路径也不能。
注意:可以使用file://来插入,但是这种方法,没有任何意义!因为服务器上没有所谓c盘、d盘。
img标签的其他属性
width
:宽度height
:高度title
:提示性文本。公有属性。也就是鼠标悬停时出现的文本。align
:指图片的水平对齐方式,属性值可以是:left、center、right-
alt
:当图片显示不出来的时候,代替图片显示的内容。alt是英语 alternate “替代”的意思。(有的浏览器不支持)
文本级的标签显示在浏览器上时,不管你的图片多高,它总会底边对齐,这是一种现象,“高矮不齐,底边对齐”。
此时大家可以给图片设置align属性,来查看效果吧!
注意事项:
(1)如果要想保证图片等比例缩放,请只设置width和height中其中一个。
(2)如果想实现图文混排的效果,请使用align属性,取值为left或right
列表标签<ul>, <ol>, <dl>
无序列表<ul>, 无序列表中的每一项是<li>
ul:unordered list, "无序列表"的意思
li: list item, "列表项"的意思
实例:
<ul> <li>张三</li> <li>李四</li> <li>王五</li> </ul>
注意:
li不能单独存在,必须包裹在ul里面;反过来说,ul的"儿子"不能是别的东西,只能有li
我们这里再次强调,ul的作用,并不是给文字增加小圆点,而是增加无序列表的语义的
属性:
type="属性值".属性值可以选: disc(实心圆点, 默认), square(实心方点), circle(空心圆)
列表之间是可以嵌套的.
2,有序列表<ol>,里面的每一项<li>
<ol> <li>******</li> <li>******</li> <li>******</li> </ol>
type="属性值"
。属性值可以是:1(阿拉伯数字,默认)、a、A、i、I。结合start
属性表示从几开始
。
3, 定义列表<dl>
定义列表的作用非常大
dl的子元素只能是dl和dd
<dt>: definition title 列表的标题,这个标签是必须的
<dd>: definition description 列表的列表项,如果不需要它,可以不加
- (1)是一个列表,列出了几个dd项目
- (2)每一个词儿都有自己的描述项。
备注:dd是描述dt的。
dt、dd都是容器级标签,想放什么都可以。所以,现在就应该更加清晰的知道:用什么标签,不是根据样子来决定,而是语义(语义本质上是结构)。
表格标签<table>
表格标签<table>表示
一个表格<table>是由每行<tr>组成,每行是由<td>组成的.
所以我们记住,一个表格是有行组成的(行是由列组成的),而不是由行和列组成的.在以前,要想固定标签的位置,唯一的方法就是表格.现在可以通过css行为的功能来实现.但是现在做的时候,表格作用还是有一些的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>my world</title> </head> <body> <table> <tr> <td>陈润</td> <td>18</td> <td>男</td> <td>山西</td> </tr> <tr> <td>小岳岳</td> <td>45</td> <td>男</td> <td>河南</td> </tr> </table> </body> </html>
上图的代码没有边框
接下来看看<title>标签的属性
<table>的属性
border: 边框,像素为单位
style="border-collapse:collapse;": 单元格的线和表格的边框合并
width: 宽度,像素为单位
height: 高度,像素为单位
bordercolor: 表格的边框颜色
align: 表格的水平对齐方式,属性值可以填:left right center.
注意: 这里不是设置表格里内容的对其方式,如果像设置内容的对其方式,要对单元格标签<td>进行设置
cellpadding: 单元格内容到边的举例,像素为单位.默认情况下,文字是紧挨着左边那条线的,即默认情况下的值为0.
注意不是单元格内容到四条边的距离,而是一条边的距离,默认是左边那条线的距离.如果设置属性dir='rtl',那就指的是内容到右边那条线的距离
cellspacing: 单元格和单元之间的距离,像素为单位,默认情况下的值为0
bgcolor="#99cc66": 表格的背景颜色
background="路径src/...": 背景图片
背景图片的优先级大于背景颜色
备注: 表格中很细表格线的制作
css的写法:
style="borer-collapse:collapse;"
<tr>: 行
一个表格就是一行一行组成
属性:
dir: 共有属性,设置这一行单元格内容的排列方式.可以取值: ltr: 从左到右(left to right), rtl: 从右到左
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>
<caption>: 表格的标题.使用时和tr标签并列
表格的<thead>标签, <tbody>标签, <tfoot>标签
这三个标签有与没有的区别:
- 1、如果写了,那么这三个部分的代码顺序可以任意,浏览器显示的时候还是按照thead、tbody、tfoot的顺序依次来显示内容。如果不写thead、tbody、tfoot,那么浏览器解析并显示表格内容的时候是从按照代码的从上到下的顺序来显示。
- 2、当表格非常大内容非常多的时候,如果用thead、tbody、tfoot标签的话,那么数据可以边获取边显示。如果不写,则必须等表格的内容全部从服务器获取完成才能显示出来。
表单标签
表单标签用<form>
表示,用于与服务器的交互。表单就是收集用户信息的,就是让用户填写的、选择的。
属性:
name: 表单的名称,用于js来操作或控制表单时使用
id: 表单的名称,用于js来操作或者控制表单时使用
action: 指定表单数据的处理程序,一般是php,
method: 表单数据提交方式,一般取值: get(默认)和post
form标签里面的action属性和method属性,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
:文本框只读,不能编辑,光标点不进去。属性值可以不写。
<select>: 下拉列表标签
<select>标签里面的每一项用<option>表示.select就是"选择", option选项.
select标签和ul, ol, dl一样,都是组标签
<select>标签的属性:
multiple: 可以对下拉列表的现象进行多选.没有属性值
size="3": 如果属性值大于1, 则列表为滚动试图.默认属性值为1,即下拉试图.
<option>标签的属性
selected: 预选中.没有属性值
<textare>标签: 多行文本输入框
text就是文本, area就是区域
属性:
value: 提交给服务器的值
rows="4": 指定文本区域的行数
cols="20": 指定文本区域的列数
readonly: 只读
表单的语义化
比如,我们在注册一个网站的信息的时候,有一部分是必填信息,有一部分是选填信息,这个时候可以利用表单的语义化。
<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>
ok,基本上HTML标签就给大家介绍到这里,基本上呢,标准的div+css布局,我们常用的的标签如下:
div p h1 span a img ul ol dl input