一、安全基础之HTML
目录
1、web的相关知识
1.1、web概念解读
web:即全球广域网,也称万维网,我们常说的web端就是网页端。
网页:网页时构成网站的基本元素,网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。我们在浏览器上输入网址后,打开的任何一个页面都属于网页。
浏览器:浏览器是网页运行的平台,常见的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、 Opera等。
1.2、web标准
1.2.1、为什么要制定并遵循web标准呢
因为很多浏览器的浏览器内核不同,导致页面解析出来的效果可能会有差 异,给开发者增加无谓的工作量。因此需要指定统一的标准。W3C组织(万维网联盟组织)是一个制定web标准的组织,是国际最著名的标准化组织。1994年成立后,至今已发布近百项相关万维网的标准, 对万维网发展做出了杰出的贡献。
1.2.2、web标准的三个方面
Web标准:简单理解为制作网页要遵循的规范。
Web标准不是某一个标准,而是由W3C组织和其他标准化组织制定的一系列标准的集合。
web标准的三个方面:
- 结构标准(HTML):用于对网页元素进行整理和分类。
- 表现标准(CSS):用于设置网页元素的版式、颜色、大小等外观样式。
- 行为标准(JavaScript):用于定义网页的交互和行为。
1.3、浏览器的组成
浏览器由两部分组成:
- 渲染引擎(即:浏览器内核)
- JS 引擎
1.3.1、渲染引擎
浏览器所采用的「渲染引擎」也称之为「浏览器内核」,用来解析 HTML与CSS。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。渲染引擎是浏览器兼容性问题出现的根本原因。通俗来说,它的作用就是:读取网页内容,计算网页的显示方式并显示在页面上。
常见的浏览器内核如下:
备注:360的浏览器,以前使用的IE浏览器的Trident内核,但是现在已经改为使用 chrome 浏览器的Blink内核。
1.3.2、JS引擎
JS引擎也称为JS解释器,用来解析网页中的Javascript代码,对其处理后再运行。
浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器)来执行 JS 代码 。JS 引擎执行代码时会逐行解释每一句源码(转换为机器语言),然后由计算机去执行。所以 JavaScript 语言归为脚本语言,会逐行解释执行。
常见的浏览器的JS引擎如下:
2、HTML 概述
2.1、概念解读
HTML的概念:
- HTML 全称为 HyperText Markup Language,译为超文本标记语言。
- HTML 不是一种编程语言,是一种描述性的标记语言。
- 作用:HTML是负责描述文档语义的语言。
超文本的概念:
- 图片、音频、视频、动画、多媒体等内容,成为超文本,因为它们超出了文本的限制。
- 不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件进行连接。即:超级链接文本。
标记语言的概念:
- 标记语言是一套标记标签。比如:标签 <a> 表示超链接、标签 <img> 表示图片、标签 <h1> 表示一级标题等等,它们都是属于 HTML 标签。
- 编程语言是有编译过程的,而标记语言没有编译过程,HTML标签是直接由浏览器解析执行。
2.2、HTML的专有名词
- 网页 :由各种标记组成的一个页面就叫网页。
- 主页(首页) : 一个网站的起始页面或者导航页面。 index
- 标记: 比如 <p> 称为开始标记 , </p> 称为结束标记,也叫标签。每个标签都规定好了特殊的含义。
- 元素:比如 <p>内容</p> 称为元素.
- 属性:给每一个标签所做的辅助信息。
- XHTML:符合XML语法标准的HTML。
- DHTML:dynamic,动态的。 javascript + css + html 合起来的页面就是一个 DHTML。
- HTTP:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。
- SMTP:邮件传输协议。
- FTP:文件传输协议。
3、计算机编码
计算机不能直接存储文字,存储的是编码,只能处理二进制的数据。
3.1、常用的编码
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个字节表示,造成了空间的极大浪费。
UTF-8(Unicode Transform Format)编码: 根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用3-4个字节表示。毫无疑问,开发中,都用UTF-8编码吧,准没错。
提问:中文网站适合采用什么编码?
3.2、编码的常见问题
① 避免乱码
- 我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码(重点)。
② UTF-8和gb2312的比较
- UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿;
- gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。
3.3、情节案例
1)某公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8,如果用gb2312将无法显示日语。
2)某公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。
我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到meta标签中的charset属性即可。
4、VS Code的介绍
VS Code 的全称是 Visual Studio Code,是一款开源的、免费的、跨平台的、高性能的、轻量级的代码编辑器。它在性能、语言支持、开源社区方面,都做得很不错。
4.1、IDE 与 编辑器的对比
IDE 和编辑器是有区别的:
- IDE(Integrated Development Environment,集成开发环境):对代码有较好的智能提示和相互跳转,同时侧重于工程项目,对项目的开发、调试工作有较好的图像化界面的支持,因此比较笨重。比如 Eclipse 的定位就是 IDE。
- 编辑器:要相对轻量许多,侧重于文本的编辑。比如 Sublime Text 的定位就是编辑器。再比如Windows 系统自带的「记事本」就是最简单的编辑器。
需要注意的是,VS Code 的定位是编辑器,而非 IDE ,但 VS Code 又比一般的编辑器的功能要丰富许多。可以这样理解:VS Code 的体量是介于编辑器和 IDE 之间。
4.2、VS Code的特点
- VS Code 的使命,是让开发者在编辑器里拥有 IDE 那样的开发体验,比如代码的智能提示、语法检查、图形化的调试工具、插件扩展、版本管理等。
- 跨平台支持 MacOS、Windows 和 Linux 等多个平台。
- VS Code 的源代码以 MIT 协议开源。
- 支持第三方插件,功能强大,生态系统完善。
- VS Code 自带了 JavaScript、TypeScript 和 Node.js 的支持。也就是说,你在书写 JS 和 TS 时,是自带智能提示的。当然,其他的语言,你可以安装相应的扩展包插件,也会有智能提示。
4.3、VS Code的安装
VS Code 官网:https://code.visualstudio.com
VS Code 的安装很简单,直接去官网下载安装包,然后双击下一步下一步安装即可。
4.4、VS Code插件推荐
- ① 汉化插件:Chinese (Simplified) Language Pack for Visual Studio Code
- ② Live Server
在本地启动一个服务器,代码写完后可以实现「热更新」,实时地在网页中看到运行效果。就不需要每次都得手动刷新页面了。使用方式:安装插件后,开始写代码;代码写完后,右键选择「Open with Live Server」。
③ PHP环境(后面学习PHP时会使用)
④ indent-rainbow:突出显示代码缩进
⑤ Code Spell Checker:单词拼写错误检查
这是我安装的插件,可以根据自己的喜好习惯前往插件商店进行安装
5、书写第一个HTML页面
5.1、书写第一个HTML页面
VS Code 执行代码需要代码在一个文件夹中。
我们打开 VS Code 软件,新建一个文件,名叫 index.html (注意,文件名是 index ,后缀名是
html ),保存到本地。
紧接着,在文件里,输入 html:5 ,然后按一下键盘上的 Tab 键,就可以自动生成如下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
上面的内容就是HTML页面的骨架,我们在此基础上新增几个标签,完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h3>我是三级标题</h3>
<a href="https://www.baidu.com">我是超链接,可以点击一下</a>
</body>
</html>
标签写完之后,我们用右键(Open With Live Server)通过默认浏览器打开上面这个 test.html 文件,看看页面效果:
5.2、HTML结构详解
HTML标签通常是成对出现的(双边标记),比如 <div> 和 </div> ;也有少部分单标签(单边标
记),如: <br /> 、 <hr /> 和 <img src="images/1.jpg" /> 等。
属性与标记之间、各属性之间需要以空格隔开。属性值以双引号括起来。
HTML骨架标签分类
5.2.1、文档声明头
任何一个标准的HTML页面,第一行一定是一个以 <!DOCTYPE ……> 开头的语句。这一行,就是文档声明头,即 DocType Declaration,简称DTD。
DTD可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
在HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了。
HTML5的DTD(文档声明头)如下:
<!DOCTYPE html>
5.2.2、页面语言lang
下面这行标签,用于指定页面的语言类型:
<html lang="en">
5.2.3、头标签head
html5 的比较完整的骨架:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta name="Keywords" content="你只需要记住,我叫叶良辰。" />
<meta name="Description" content="呵呵,良辰最喜欢对那些自认为能力出众的人出手。" />
<title>Document</title>
</head>
<body>
</body>
</html>
头标签内部的常见标签如下:
- <title> :指定整个网页的标题,在浏览器最上方显示。
- <base> :为页面上的所有链接规定默认地址或默认目标。
- <meta> :提供有关页面的基本信息。
- <link> :定义文档与外部资源的关系。
面试题:
问:网页的head标签里面,表示的是页面的配置,有什么配置?
答:字符集、关键词、页面描述、页面标题、IE适配、视口、iPhone小图标等等。
5.2.3.1、meta标签
meta表示“元”。“元”配置,就是表示基本的配置项目。
常见的几种 meta 标签如下:
(1)字符集 charset:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- 字符集用meta标签中的 charset 定义,charset就是character set(即“字符集”),即网页的编码方式。
- 字符集(Character set)是多个字符的集合。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
- 上面这行代码非常关键, 是必须要写的代码,否则可能导致乱码。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就会出现乱码。
- utf-8是目前最常用的字符集编码方式,常用的字符集编码方式还有gbk和gb2312等。
(2)视图窗口 viewport:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- width=device-width :表示视口宽度等于屏幕宽度。
(3)定义“关键词”:
<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />
- 这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。
(4)定义“页面描述”:
<meta name="Description" content="呵呵,良辰最喜欢对那些自认为能力出众的人出手。" />
- meta除了可以设置字符集,还可以设置关键字和页面描述。
- 只要设置Description页面描述,那么百度搜索结果,就能够显示这些语句,这个技术叫做SEO(searchengine optimization,搜索引擎优化)。
上面的几种 <meta> 标签都不用记,但是另外还有一个 <meta> 标签是需要记住的:这个标签的意思是说,3秒之后,自动跳转到百度页面。
<meta http-equiv="refresh" content="3;https://www.baidu.com">
5.2.3.2、title标签和base标签
(1)title 标签:
用于设置网页标题:
<title>叶良辰语录</title>
title标签也是有助于SEO搜索引擎优化的。
(2)base标签:
<base href="/">
base 标签用于指定基础的路径。指定之后,所有的 a 链接都是以这个路径为基准。
5.2.3.3、body 标签
<body> :用于定义HTML文档所要显示的内容,也称为主体标签。我们所写的代码必须放在此标签內。
<body> 标签的属性有:
- bgcolor :设置整个网页的背景颜色。
- background :设置整个网页的背景图片。
- text :设置网页中的文本颜色。
- leftmargin :网页的左边距。IE浏览器默认是8个像素。
- topmargin :网页的上边距。
- rightmargin :网页的右边距。
- bottommargin :网页的下边距。
6、HTML标签之排版标签
6.1、标题标签
标题使用 <h1> 至 <h6> 标签进行定义。 <h1> 定义最大的标题, <h6> 定义最小的标题。具有align属性,属性值可以是:left、center、right。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>标题一</h1>
<h2>标题二</h2>
<h3>标题三</h3>
<h4>标题四</h4>
<h5>标题五</h5>
<h6>标题六</h6>
</body>
</html>
6.2、HTML注释
HTML 注释的格式如下:
<!-- 我是 html 注释 -->
注释快捷键:Ctrl + /
6.3、段落标签
作用:可以把 HTML 文档分割为若干段落。在网页中如果要把文字有条理地显示出来,离不开段落标签。就如同我们平常写文章一样,整个网页也可以分为若干个段落。
<p>This is a paragraph</p>
<p>This is another paragraph</p>
属性:
- align="属性值" :对齐方式。属性值包括left、center、right。
HTML标签是分等级的,HTML将所有的标签分为两种:
- 文本级标签:p、span、a、b、i、u、em。文本级标签里只能放文字、图片、表单元素。(a标签里不能放a和input)
- 容器级标签:div、h系列、li、dt、dd。容器级标签里可以放置任何东西。
从学习p标签开始,就要牢牢记住:p标签是一个文本级标签,里面只能放文字、图片、表单元素,其他的一律不能放。
6.4、水平线标签
水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分。在网页中常常看到一些水平线将段落与段落之间隔开,使得文档结构清晰,层次分明。
代码举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>网络安全</p>
<hr />
<p>渗透测试</p>
</body>
</html>
效果如下:
6.5、换行标签
如果希望某段文本强制换行显示,就需要使用换行标签。
代码举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
This <br/> is a para<br/>graph with line breaks
</body>
</html>
效果如下:
6.6、容器标签div和span
div和span是非常重要的标签,div的语义是division“分割”; span的语义就是span“范围、跨度”
div和span的介绍:
- div标签:可以把标签中的内容分割为独立的区块,必须单独占据一行。
- span标签:和div的作用一致,但不换行。
代码举例:
<body>
<div>
div标签1
</div>
<div>
div标签2
</div>
<div>
<span>
span标签1
</span>
<span>
span标签2
</span>
</div>
</body>
效果如下:
div标签的属性:
- align="属性值" :设置块儿的位置。属性值可选择:left、right、 center。
<span> 和 <div> 唯一的区别在于: <span> 是不换行的,而 <div> 是换行的。
说明:
- 如果单独在网页中插入这两个元素,不会对页面产生任何的影响。这两个元素是专门为定义CSS样式而生的。或者说,DIV+CSS来实现各种样式。
- div在浏览器中,默认是不会增加任何的效果的,但是语义变了,div中的所有元素是一个小区域。 div标签是一个容器级标签,里面什么都能放,甚至可以放div自己。
- span也是表达“小区域、小跨度”的标签,但只是一个文本级的标签。 就是说,span里面只能放置文字、图片、表单元素。
span标签举例:
div标签举例:
我们称这种模式叫做“div+css”:div标签负责布局、结构、分块,css负责样式。
7、字体标签和超链接
7.1、字体标签
特殊字符(转义字符)
常见的特殊字符
- :空格
- < :小于号< <>
- > :大于号>
- & :符号 &
- " :双引号
- ' :单引号
- © :版权 ©
- ™ :商标 ™
- 绐 :文字 绐 。其实, #32464 是汉字 绐 的unicode编码
我们通常所说的HTML实体编码就是将特殊字符进行编码,它可以有效地防范XSS(跨站脚本攻击),如果不使用HTML实体编码:
- 前端页面没有办法显示
- HTML和JS代码出现符号混用,可能会造成安全漏洞
比如说,你想把 <p> 作为一个文本在页面上显示,直接写 <p> 是肯定不行的,因为这代表的是一个段落标签,所以这里需要用到转义字符。应该这么写:
这是一个HTML语言的<p>标签
常见特殊字符的HTML实体编码表:
7.2、超链接
代码举例:
<a href="XX页面.html">点击进入另外一个文件</a>
<a href="https://www.baidu.com" target="_blank">点我点我</a>
a是英语 anchor “锚”的意思,就好像这个页面往另一个页面扔出了一个锚。是一个文本级的标签。当然,我们也可以直接点进链接,访问一个网址。
超链接的属性:
- href :目标URL
- title :悬停文本。
- name :主要用于设置一个锚点的名称。
- target :告诉浏览器用什么方式来打开目标页面。 target 属性有以下几个值:
- _self :在同一个网页中显示(默认值)
- _blank :在新的窗口中打开
- _parent :在父窗口中显示
- _top :在顶级窗口中显示
属性都是以键值对的形式,举例:
<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,而不是a包裹p。
8、图片标签和列表标签
8.1、图片标签
8.1.1、img标签介绍
img:英文全称 image(图像),代表的是图片。
如果要想在网页中显示图像,就可以使用 img 标签,它是一个单标签。语法如下:
<img src="图片的URL" />
能插入的图片类型:
- 能够插入的图片类型是:jpg(jpeg)、gif、png、bmp等。
- HTML页面不是直接插入图片,而是插入图片的引用地址,所以要先把图片上传到服务器上。
8.1.2、img标签的属性
(1)src属性:
- 指图片的路径,英文名称 source。
- 在写图片的路径时,有两种写法:相对路径、绝对路径
写法一:图片的相对路径
相对当前页面所在的路径。两个标记 . 和 .. 分表代表当前目录和上一层目录。
<!-- 当前目录中的图片 -->
<img src="1.jpg">
<img src=".\1.jpg">
<!-- 上一级目录中的图片 -->
<img src="..\2.jpg">
<!-- 当前html页面有一个并列的文件夹 images ,在文件夹 images 中存放了一张图片 3.jpg -->
<img src="image/3.jpg">
说明:../ 要么不写,要么就写在开头。
写法二:图片的绝对路径
<img src="https://img0.baidu.com/it/u=2069094534,1629570942&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=776">
(2)width、height 属性
- width :图像的宽度。
- height :图像的高度。
width和height,在 HTML5 中的单位是 CSS 像素,在 HTML 4 中既可以是像素,也可以是百分比。可以只指定 width 和 height 中的一个值,浏览器会根据原始图像进行缩放。
重要提示:如果要想保证图片等比例缩放,请只设置width和height中其中一个。
(3)Alt 属性
- alt :当图片不可用(无法显示)的时候,代替图片显示的内容。alt是英语 alternate “替代”的意思,代表替换资源。
(4)title 属性
- title :提示性文本。鼠标悬停时出现的文本。
举例:
<img src="https://img0.baidu.com/it/u=2069094534,1629570942&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=776" width="255" height="300" title="My wife">
title 属性不该被用作一幅图片在 alt 之外的补充说明信息。如果一幅图片需要小标题,使用 figure 或figcaption 元素。
title 元素的值一般作为提示条(tooltip)呈现给用户,在光标悬停在图片上然后显示出来。尽管这确实能给用户提供更多的信息,但是不能保证用户真的能看到:用户可能只有键盘或触摸屏。如果要把特别重要的信息提供给用户,可以选择上面提供的一种方法将其内联显示,而不是使用 title。
8.2、列表标签
8.2.1、无序列表 ul,里面的每一项是 li
举例:
<ul>
<li>默认1</li>
<li>默认2</li>
<li>默认3</li>
</ul>
<ul>
<li><b>北京市</b>
<ul>
<li>海淀区</li>
<li>朝阳区</li>
<li>东城区</li>
</ul>
</li>
<li><b>广州市</b>
<ul>
<li>天河区</li>
<li>越秀区</li>
</ul>
</li>
</ul>
8.2.2、有序列表 ol ,里面的每一项是 li
举例:
<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是容器级。
8.2.3、定义列表dl
定义列表的作用非常大。
<dl> 英文单词:definition list,没有属性。dl的子元素只能是dt和dd。
- <dt> :definition title 列表的标题,这个标签是必须的
- <dd> :definition description 列表的列表项,如果不需要它,可以不加
备注:dt、dd只能在dl里面;dl里面只能有dt、dd;dd是描述dt的。
举例:
<dl>
<dt>第一条</dt>
<dd>你若是觉得你有实力和我玩,良辰不介意奉陪到底</dd>
<dd>我会让你明白,我从不说空话</dd>
<dd>我是本地的,我有一百种方式让你呆不下去;而你,无可奈何</dd>
<dt>第二条</dt>
<dd>良辰最喜欢对那些自认能力出众的人出手</dd>
<dd>你可以继续我行我素,不过,你的日子不会很舒心</dd>
<dd>你只要记住,我叫叶良辰</dd>
<dd>不介意陪你玩玩</dd>
<dd>良辰必有重谢</dd>
</dl>
8.2.4、表格标签
表格标签用 <table> 表示。 一个表格 <table> 是由每行 <tr> 组成的,每行是由每个单元格 <td> 组成的。 所以我们要记住,一个表格是由行组成的(行是由列组成的),而不是由行和列组成的。在以前,要想固定标签的位置,唯一的方法就是表格。现在可以通过CSS定位的功能来实现。但是在做页面的时候,表格作用还是有一些的。
例子: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的属性:
- 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 toright,默认), rtl :从右到左(right to left) 既然说 dir 是共有属性,如果把这个属性放在任意标签中,那表明这个标签的位置可能会从右开始排列。
8.2.5、表单标签
表单标签用 <form> 表示,用于与服务器的交互。表单就是收集用户信息的,就是让用户填写的、选择的。
属性:
- name :表单的名称,用于JS来操作或控制表单时使用;
- id :表单的唯一标识,方便对表单进行操作;
- action :指定表单数据的处理程序,一般是PHP,如:action=“login.php”
- method :表单数据的提交方式,一般取值:get(默认)和post
注意:表单和表格嵌套时,是在 <form> 标记中套 <table> 标记。
form标签里面的action属性和method属性:action属性表示表单将提交到哪里;method属性表示用什么HTTP方法提交,有get、post两种。
get提交和post提交的区别:
- GET方式: 将表单数据以"name=value"形式追加到action指定的处理程序的后面,两者间用"?"隔开,每一个表单的"name=value"间用"&"号隔开。
- POST方式: 将表单数据直接发送(隐藏)到action指定的处理程序。POST发送的数据不可见(在body标签中)。Action指定的处理程序可以获取到表单数据。
8.2.6、input 输入标签(文本框)
用于接收用户输入。
举例:
<input type="text" />
还有很多属性,可以自行下去查询
8.2.7、textarea 多行文本输入框
先来看下面的一段代码:
<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>
上方代码中,让 label 标签的for 属性值,和 input 标签的 id 属性值相同,那么这个label和input就有绑定关系了。
当然了,复选框也有label:(任何表单元素都有label)
<input type="checkbox" id="kk" />
<label for="kk">10天内免登陆</label>