第3章 表格布局与表单交互

3.1 表格概述

表格是网页中的一个重要容器元素,可包含文字和图像。表格使网页结构紧凑整齐,使网页内容的显示一目了然。表格除了用来显示数据外,还用于搭建网页的结构。几乎所有HTML 页面都或多或少地采用了表格。表格以简洁明了和高效快捷的方式将图片、文本、数据和表单的元素有序地显示在页面上,从而可以呈现出漂亮的页面。表格在网页设计中能将网页分成多个任意的矩形区域。

3.1.1 表格的结构

表格是由行和列组成的二维表,而每行又由一个或多个单元格组成,用于放置数据或其他内容。表格中的单元格是行与列的交叉部分,是组成表格的最基本单元。单元格的内容是数据,也称数据单元格。数据单元格可以包含文本、图片、列表、段落、表单、水平线或求格等元素。表格中的内容按照相应的行或列进行分类和显示。


3.1.2 表格的基本语法

在HTML中,常用表格主要以5个标记来构成:<table>;<caption>;<th>;<tr>;<td>

语法:

<table>

        <caption> 表格标题</caption>

        <tr>

                <th></th>

                <th></th>

                <th></th>

        </tr>

        <tr>

                <td></td>

                <td></td>

                <td></td>

        </tr>

                ......
</table>

(1) table 标记是成对标记,<table>表示表格开始,</table>表示表格结束。
(2) caption标记是成对标记,<caption>表示标题开始,<Jcaption>表示标题结束。使用
caption 标记可以给表格添加标题,该标题应位于 table 标记与r标记之间的位置。
(3) tr (Table Row) 标记是成对标记,<r>表示行开始,<tr>表示行结束。
(4) th (Table Heading 表头)标记是成对标记,<th>表示表头开始,</th>表示表头结束,设计表格时,表头常常作为表格的第1行或者第1列,用来对表格单元格的内行说明表头文字内容一般居中、加粗显示。
(5) td (Table Data) 标记是成对标记,定义单元格或列。以<td>开始,以<td>结束表头可以用山标记定义,也可以用d标记定义,但<td><J/td>两标记之间的内容不自动居
中、不加粗。
在一个表格中,可以插入多个心标记,表示多行,一组<tr></tr>标记表示插入一行,
一行中可以有多个列,列中的内容可以是文字、数据、图像、超链接、表单元素等。


3.2 表格属性的设置

表格是网页文件中布局的重要元素,制作网页的过程中常常需要对网页中的表格做一些设置,实质上是对表格标记属性进行设置。


3.2.1 表格边框属性

                                         表格标记的属性、取值及说明表
属性                                               取值                                                           说明
align                                 left | center | right                       规定表格相对周围元素的对齐方式
bgcolor    #rrggbb | colorname b ( r%, g%, b%) rgb (rr, gg, bb)    规定表格的背景颜色
border                                         pixels                                        规定表格边框的宽度
cellpadding                                pixels | %                             规定单元边沿与其内容之间的空白
cellspacing                                   pixels | %                                 规定单元格之间的空白
frame   above | below | hsides | vsides | lhs | rhs | border | void    规定外侧边框的哪个部分是可见的
rules                              none | all | rows | colslgroups           规定外侧边框的哪个部分是可见的
height                                         % | pixels                                           规定表格的高度
width                                            % | pixels                                         规定表格的宽度


3.2.2 表格的宽度和高度属性

通过设置 width 属性和height,属性可以设置表格的宽度和高度。

语法:

<table width=" height=" ">...</table>

1) width。其单位可以是长度单位或百分比,用于定义表格的宽度。

(2) height。其单位可以是长度单位或百分比,用于定义表格的高度。


3.2.3 表格背景颜色与表格图像属性

设置表格的bgcolor属性可以改变表格的背景颜色,设置表格的background 属性可以为表格增添背景图像效果,使表格更加美观。

<table bgcolor=" " background="">...</title>
(1)bgcolor。可以用rgb函数、十六进制、英文颜色名称来设置背景颜色。

(2) background。设置背景图像,图像的路径可以是绝对路径或相对路径。
(3)同时设置背景颜色和背景图像属性时,背景图像会部分或完全覆盖背景颜色。


3.2.4 表格边框样式属性

设置表格标记中的fame属性可以改变表格边框的样式;设置表格标记中的rules属性可以改变表壳内部边框的样式。

语法:

<table frame=" " rules=" ">......</table>

frame属性值说明rules属性值说明

above

显示上边框all显示所有内部边框
below显示下边框none不显示内部边框
hsides显示上下边框rows仅显示边框
vsides显示左右边框cols仅显示边框
Ihs显示左边框groups显示介于行列间边框
rhs显示右边框border显示上下,左右边框
void不显示边框

3.2.5 表格单元格间距、单元格边距属性

设置表格标记中的cellspacing属性可以改变表格单元格之间的间隔,使网页中的表格内容稍微松散一些。设置表格标记中的cellpadding属性可以增加表格单元格的内容与内部边框之间的距离。

语法:

<table cellspacing=" " cellpadding=" "

</table>
(1) cellspacing。值的单位为像素或百分比,默认值为2px。

(2) cellpadding。值的单位为像素或百分比。


3.2.6 表格水平对齐属性

通过设置表格标记的align属性,可以设定表格在水平方向上的对齐方式。对齐方式也是三种:居中(center)、左对齐(left)、右对齐(right)。


3.2.7 设置表格的(tr)标记行的属性

属性值  说明 属性 说明
align            行内容水平对齐 bordercolor 行的边框颜色
valign    行内容垂直对齐 bordercolorlight行的亮边框颜色
bgcolor  行的背景颜色   bordercolordark 行的暗边框颜色


3.2.8 设置单元格的属性

表格的列(td)标记的属性可以设置表格单元格的显示风格。

属性值    说明  属性值 说明
align  单元格内容水平对齐background单元格的背景图像
  valign 单元格内容垂直对齐rowspan 单元格跨行
 width单元格宽度bgcolor单元格的背景颜色
bordercolor单元格的边框颜色bordercolordark  单元格的暗边框颜色
colspan单元格跨列 bordercolorlight单元格的亮边框颜色
height  单元格高度


3.2.9 表格单元格跨行、跨列属性

3.2.9.1 单元格跨行

使用单元格td标记的rowspan属性可以设置单元格跨行合并。

语法:
<tdrspam="行数"></td>
说明:rowspan 属性可以设置单元格跨行。通过rowspan="n”(n是正整数),可以设置某一单元格跨n行,当前行下的n-1行内的单元格数量都需要减少一个,即少定义一个 td标记。


3.2.9.2 单元格跨列

使用单元格td标记的clospan属性可以设置单元格跨合并。

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>设置单元格跨列、跨行属性</title>
	</head>
	<body>
		<h3 align="center">设置单元格跨列、跨行属性</h3>
		<table border="1" width="500px" align="center" bordercolor="#3366ff">
		<caption>专业研讨会日程安排</caption>
		<tr align="center">
			<td colspan="2">上午</td>
			<td colspan="2">下午</td>
		</tr>
		<tr>
			<td>8.00-10.00</td>
			<td>10.00-12.00</td>
			<td>12.00-14.00</td>
			<td>14.00-16.00</td>
		</tr>
		<tr>
			<td rowspan="2">学校领导讲话</td>
			<td>大会主楼报告</td>
			<td>行业企业专题报告</td>
			<td rowspan="2">总结报告</td>
		</tr>
		<tr align="center">
			<td>专家报告</td>
			<td>分组报告</td>
		</tr>
		<tr align="center">
			<td colspan="4">全天参观人工智能实训中心</td>
		</tr>
		</table>
	<p align="center">Copyright &copy;2024 MortalTom</p>
</body>
</html>

运行结果:


3.3 表格嵌套

表格嵌套是一种常见的页面布局方式。利用表格嵌套可以设计比较复杂且美观的页面效果。通常情况下,使用表格嵌套时,表格不宜过多使用,否则会降低网站访问速度。表格嵌套一般采用在单元格内嵌套表格。

语法:<table>
<tr>

......

</tr><tr>
<td>    <!--单元格内嵌表格-->    
<table><tr>

......

<tr>
</table>

</td>

</tr>

<tr>

......

</tr>

</table>

利用嵌套表格布局页面。

代码如下:

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="UTF-8">  
    <title>嵌套表格布局页面</title>  
    <style>  
        body {  
            font-size: 18px; /* 横线下是3号字 */  
        }  
    </style>  
</head>  
<body>  
    <h4 align="center">嵌套表格布局页面</h4>  
    <table width="660px" border="1" align="center" bordercolor="#3333ff">  
        <tr>  
            <td height="100">  
                <table width="100%" border="1" bordercolor="red">  
                    <tr height="50" align="center">  
                        <td rowspan="2" width="100">Logo</td>  
                        <td>广告条</td>  
                    </tr>  
                    <tr height="50" align="center">  
                        <td>导航</td>  
                    </tr>  
                </table>  
            </td>  
        </tr>  
        <tr>  
            <td height="300">  
                <table width="100%" border="1" bordercolor="#33ff99">  
                    <tr align="center">  
                        <td height="300" width="30%">左栏目</td>  
                        <td height="300" width="70%">正文内容</td>  
                    </tr>
                </table>  
            </td>  
        </tr>
		  <tr align="center">
			  <td height="100">版权信息</td>
		  </tr>
    </table>  
	<p align="center">Copyright &copy;2024 MortalTom</p>
</body>
</html>

运行结果:


3.4 表单

HTML 中的表单是网页中最常用的元素,是网站服务器端与客户端之间沟通的桥梁。一个完整的交互表单由两部分组成:一是客户端包含的表单页面,用于填写浏览者进行交互的信息;另一个是服务端的应用程序,用于处理浏览者提交的信息,浏览者在表单中输入信息,然后将这些信息提交给服务器;服务器中的应用程序会对这些信息进行处理响应,这样就完成了浏览者和服务器之间的交互。


3.4.1 表单标记

表单form 标记为成对标记,以<form>开始和</form>结束。表单定义了采集数据的范围,其所包含的数据内容将被完整地提交给服务器。


3.4.2 定义域和域标题

利用fieldset标记可以在网页上定义域,在表单中使用可以将表单的相关元素进行分组,fieldset标记将表单内容的一部分打包,生成一组相关表单的字段。当一组表单元素放到fieldset标记内时,浏览器会以特殊方式来显示它们,它们可能有特殊的边界、3D效果,或者可创建一个子表单来处理这些元素。legend标记为fieldset标记定义域标题。


3.4.3 表单信息输入

表单的主要功能是为用户提供输入信息的接口,将输入信息发送到服务器并等待服务器响应。表单中输入信息的标记是input标记,可以输入一行信息。input标记是单个标记。


3.4.3.1 单行文本输入框

设置 input 标记的 type 属性值为 text,可以实现向表单中插入一个单行文本框。在单行文本框中可以输人任意类型的数据,但是输入的数据只能单行显示,不能换行。

语法:

<input name= " " type= " text" maxlength=" " size=" " value=" " readonly/>

说明:单行文本输人框的主要属性有name,maxlength,size,value和readonly。


3.4.3.2 密码输入框

设置 input 标记的type 属性值为password,可以实现向表单中插入一个密码输入框。密码输人框中可以输人任意类型的数据,与单行文本输人框有所不同,这些数据不是实时地显示在页面上,而是被显示字符“·”所取代,这样设计可以保障用户输入的密码不被泄露。
语法:

<input name= " " type=" password" maxlength= " " size = " "/>

说明:密码输人框的主要属性有name,maxlenth和size,取值及说明与单行文本输入框相同。


3.4.3.3 复选框

设置input标记的type属性值为checkbox,可以实现向表单中插入一个复选框,用户利用复选框在网页上设置多项选择。

语法:

<inoput name="" type="checkbox" value="" checked/>

说明:复选框的主要属性有name,value 和 checked,其中checked属性用于设置初始预选项。


3.4.3.4 单选按钮

设置input标记的type 属性值为radio,可以实现向表单中插入一个单选按钮,用户可利用单选按钮在网页上为某一选择设置多个单选项。

语法:

<input name=" " type = " radio" value=" " checked/>
说明:单选按钮的属性有name,vale和checked等,其属性、取值及说明与复选框相同。由于单选按钮必须是唯一的,在一组单选按钮中,只能选择一个单选按钮,所以一组单选按钮的所有name属性值必须相同,value 属性取值应该不同。


3.4.3.5 图像按钮

置input标记的属性值为image,可以实现向表单中插入一个图像按钮,用户可以利用图像按钮在网页上插入一张图像,通过src属性加载图像。

语法:

<input name="" type="image" src="" width="" height=""/>

说明:图像按钮主要属性有name,src,width和height。


3.4.3.6 提交按钮

设置input标记的属性值为submit,可以实现向表单中插入一个提交按钮,提交按钮用于将表单的信息提交至服务器进行处理。

语法:

<input name="" type="submit" value="提交"/>

说明:提交按钮属性主要有name和value。


3.4.3.7 重置按钮

设置input标记的属性值为reset,可以实现向表单中插入一个重置按钮,重置按钮用于将表单中所有的输入信息清空,然后让用户重写。

语法:

<input name="" type="reset" value=""/>

说明:普通按钮属性有name和value。


3.4.3.8 普通按钮

设置input标记的属性值为button,可以实现向表单中插入一个普通按钮,普通按钮在网页设计中非常有用,如果不能通过表单按钮来处理事件,则可以给普通按钮绑定事件代码来实现所需的功能。

语法:

<input name="" type="button" value="" οnclick=""/>

说明:普通按钮属性有name,value和onclick。


3.4.3.9 文件选择框

设置 imput 标记的type属性值为fle,可以实现向表单中插人一个文件选择框。

语法:

<input name=" " type=" file" value=" "/>

说明:  name,定义input标记的名称。页面上会自动添加一个文本输入框和一个“浏览…按钮。单击“浏览…”按钮可以从“选择要加载的文件”对话框选择某一个文件,然后自动将文件名称回填到文本输人框中。


3.4.3.10 隐藏框

设置 input 标记的type 属性值为 hidden,可以实现向表单中插入一个隐藏框,用户提交表单时,隐藏框的信息也会一起提交到服务器,但隐藏框在网页中是不可见的。
语法:

<input name = " " type = " hidden" value= " "/>

说明:隐藏框属性有name和value。


3.4.4 多行文本输入框

textarea 标记可以向表单中插入多行文本输入框。多行文本输入框可以用来输入较多的文字信息,而且可以换行,并将这些信息提交到服务器。

语法:

<textarea name="" rows="" cols="" wrap=""/>初始内容信息</textarea>

说明:多行文本输入框textarea标记是成对标记,其主要属性有name,rows,cols 和 wrap等,其属性、取值及说明如表3-15所示。默认情况下,当用户在文本区域中输入文本后,浏览器会将它们按照输入时的状态发送给服务器。只有在用户按下Enter键的地方生成换行。


3.4.5 下拉列表框

下拉列表通常需要同时使用select和option标记来在表单中插入下拉菜单和列表项。

语法:

<select name=" " size=" " multiple>
<option value="" selected>文字信息1</ option>
<option value="">文字信息2</option>
 
....
</select>

说明:select标记是成对标记,option标记是单个标记,但应该把它补成成对标记,结构更为清晰。select 标记有name,size 和 multiple 等属性。option 标记有 value 和 selected 等属性。select标记与 option 标记必须配合使用。每一选项必须指定一个显示的文本和一个 value值,显示文本通常附在 option 标记后面。


3.5 综合案例——表格与表单

案例1 采用嵌套表格制作达维工作室的“联系我们”子页。

代码如下:

<!DOCTYPE html>
<html lang="zh">
<head> 
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>达维工作室——联系我们</title>
	<style type="text/css">
		.chu {
			font-weight:bold;
		}
		.zi1 {
			font-family: "微软雅黑";
			font-size: 20px;
			font-weight: bold;
			color:#ED630A;
		}
		.zi2 {
			font-family: "微软雅黑";
			font-weight: bold;
			color: #f60;
			text-decoration: underline;
		}
		.zibai {
			font-family: "微软雅黑";
			color: #FFF;
		}
		body {
			background-image: url(img/bj.jpg);
		}
	</style>
	<head>
<body>
   <table width="1190" border="0" cellpadding="0" cellspacing="0">
	   <tr>
		   <td>
			   <table width="1190" border="0" align="center" cellpadding="0" cellspacing="5">
				   <tr>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF">
						   <img src='../img/logo.jpg' alt="" width="100" height="63"/>
					   </td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">网站首页</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">关于我们</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">团队合作</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">相关做品</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">设计理念</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">人物介绍</td>
					   <td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="zi1">联系我们</td>
				   </tr>
			   </table>
		   </td>
	   </tr>
	   <tr>
		   <td>
			   <table width="100%" border="0" cellspacing="20" cellpadding="0">
			   <tr>
				   <td height="318">&nbsp;</td>
				   
				   <td width="280" valign="top">
					   <table width="100%" border="0" cellspacing="0" cellpadding="20">
						   <tr>
							   <td height="30" align="center" bgcolor="#FFFFFF" class="zi1">联系我们</td>
						   </tr>
						   <tr>
							   <td height="196" bgcolor="#FFAF03">
								   <p class="zibai">地址:广东省江门市XXXXXXXXX<br/>
								   电话:0750-XXXXXX<br/>
								   传真:0750-XXXXXX<br/>
								   QQ:12345678<br/>
								   电子邮箱:<br/>
								   123@163.com<br/>
								   工作室网站<br/>
								   www.XXXX.com</p>
							   </td>
						   </tr>
					   </table>
				   </td>
				   
				   <td width="280" valign="top">
					   <table width="100%" border="0" cellspacing="0" cellpadding="20">
						   <tr>
							   <td height="30" align="center" bgcolor="#FFFFFF" class="zi1">关于我们</td>
						   </tr>
						   <tr>
							   <td height="278" valign="top" bgcolor="#FC880D"><p class="zibai">达维工作室是专业从事互联网相关开发的公司。<br/>
								专门提供全方们的优质服务和最专业的网站建设方案为企业打造全新电子商务平台。<br/>
								达维工作室成立于2014年,已经成为国内著名的网站建设提供商。多年的风雨历程……</p>
							   <p class="zibai">&nbsp;</p>
							   <p class="zibai chu"><a href="#">更多&gt;&gt;</a></p>
							 </td>
						   </tr>
					   </table>
				   </td>
				   
					 <td width="280" >
						<table width="100%" border="0" cellspacing="0" cellpadding="20">
						   <tr>
							   <td height="30" align="center" bgcolor="#FFFFFF" class="zi1">团队合作</td>
						   </tr>
							<tr>
							   <td height="332" valign="top" bgcolor="#66A00E"><p class="zi2">我们的团队:</p>
							   <p class="zibai">成员都具有多年的实际设计工作经验,满足客户的国际化需求。设计师创意的思维模式,提供最合适的设计放案。</p>
							   <p class="zi2">我们的承若:</p>
							   <p class="zibai">本工作室设计与制作的网站均属原创、不套用网上的任何模板。根据每个公司的特点,设计出属于客户……</p>
							   <p class="zibai">&nbsp;</p>
							   <p class="zibai chu"><a href="#">更多&gt;&gt;</a></p>
							   </td>
						   </tr>
					   </table>
				   </td>
			   </tr>
			  </table>
		   </td>
	   </tr>
   </table>
	<p align="center">Copyright &copy;2024 MortalTom</p>
</body>
</html>

运行结果:

案例2 利用表单制作一个“用户注册信息”表。

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width,initial-scale=1.0">
		<title>用户注册信息</title>
		<style type="text/css">
			fieldset{
				width: 700px;
			}
		</style>
		</head>
		<body>
			<form action="" method="post" enctype="multipart/form-data" name="form" id="form">  
			    <fieldset> <legend>用户信息</legend>  
			        <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">  
			            <tr>  
			                <td width="200" align="right">用户名:</td>  
			                <td><input type="text" name="textfield" id="textfield" /></td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">性别:</td>  
			                <td>  
			                    <input type="radio" name="radio" id="radio1" value="radio" checked="checked" />  
			                    男<img src="../img/Male.gif" width="22" height="21" align="absmiddle"/> 
			                    <input type="radio" name="radio" id="radio2" value="radio" />  
			                    女<img src="../img/Female.gif" width="23" height="21" align="absmiddle"/>
			                </td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">密码:</td>  
			                <td><input type="password" name="textfield2" id="textfield2" /></td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">出生年月:</td>  
			                <td><input name="textfield4" type="text" id="textfield4" size="12" />年
							<select name="select" id="select">
								<option>1</option>
								<option>2</option>
								<option>3</option>
								<option>4</option>
								<option>5</option>
								<option>6</option>
								<option>7</option>
								<option>8</option>
								<option>9</option>
								<option>10</option>
								<option>11</option>
								<option>12</option>
							</select>
									月</td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">业余爱好:</td>  
			                <td>  
			                    <input type="checkbox" name="checkbox" id="checkbox" />  
			                    <label for="checkbox">看书</label>  
			                    <input type="checkbox" name="checkbox2" id="checkbox2" />  
			                    <label for="checkbox2">上网</label>  
			                    <input type="checkbox" name="checkbox3" id="checkbox3" />  
			                    <label for="checkbox3">打球</label>  
			                </td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">相片:</td>  
			                <td><input type="file" name="filefield" id="filefield" /></td>  
			            </tr>  
			            <tr>  
			                <td width="200" align="right">意见或建议:</td>  
			                <td><textarea name="textarea" id="textarea" cols="45" rows="5"></textarea></td>  
			            </tr>  
			            <tr>  
			                <td colspan="2" align="center">  
			                    <input type="submit" name="button" id="button" value="提交" />  
			                    <input type="reset" name="button2" id="button2" value="重置" />  
			                </td>  
			            </tr>  
			        </table>  
			    </fieldset>  
			</form>
		<p>Copyright &copy;2024 MortalTom</p>
	</body>
</html>

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值