本站首页    管理页面    写新日志    退出

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

  如果你忍了,欺负你的人将来可能就进监狱了。如果你反击,欺负你的人将来可能就获选十大杰出青年了。

        QQ: 3159671

http://greenboy.javaeye.com/

http://blog.sina.com.cn/u/1278341164 小鸟吹烟


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:小鸟吹烟
日志总数:157
评论数量:424
留言数量:-1
访问次数:1257144
建立时间:2006年10月23日




[J2SE]轻松玩转花样表单(转) 
文章收藏,  网上资源

tone 发表于 2007/3/11 15:42:42

http://www.blueidea.com/tech/web/2003/377_2.asp 二、表单外观的美化  很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无生气,本专题尝试着来改变这一现象,试图赋予表单一个丰富多彩的面貌。表单的外观,也是最为直接的花样,可以通过改变它来实现特效,本文分两个出发点来讲述:CSS魔法和图像魔法。  1、CSS魔法CSS,就是大家知道的层叠样式单,它可以定义页面元素的外观,包括字体样式、背景颜色和图像样式、边框样式、补白样式、边界样式等等,下面就从这几个方面出发,讨论怎样将CSS应用到表单中,彻底美化它!  1.1 字体样式的应用  字体样式包括:字体族科(font-family)、字体风格(font-style)、字体变形(font-variant)、字体加粗(font-weight)、字体大小(font-size)、字体(font),具体的定义方法,在这里不详细讲述,可以参考它的资料。  也许你已经注意到,按钮上的文字不漂亮,其实可以通过CSS字体样式来解决,同样地,其它的几个涉及到文字的表单项,例如,文本框、多行文本框、口令框、下拉选择框都可以应用字体样式。  为了充分展示这些应用,下例特别设计了几种样式,在实际应用中,不必这么凌乱,灵活运用: 样例12:表单元素的字体样式展示 yesky.com redidea.net underline css style   分析: 文本框里的文字是加粗的,大小是9pt,字体是宋体,代码:<input type="text" name="formExam" size="10" maxlength="10" style="font-family:宋体; font-size: 12px; font-weight: bold" value="加粗"> 口令框文字是红色的,代码:<input type="password" name="formExam3" style="font-size: 9pt; color: #FF0000" size="8" maxlength="8"> 下拉框文字颜色是红色的,字体是Verdana,大小是9pt,代码:<select name="select" size="1" style="font-family:Verdana,Arial; font-size: 9pt; color: #FF0000"><option value="2" selected>yesky.com</option><option value="1">redidea.net</option></select> 多行文本框了的字体是Verdana,有下划线,大小是9pt,代码:<TEXTAREA name="formExam2" cols="30" rows="3" style="font-family:Verdana, Arial; font-size: 9pt; color: #000099; text-decoration: underline" align=right>underline css style</TEXTAREA> 发送1和发送2按钮的文字不同,是因为发送1按钮使用了9pt的宋体文字,所以比较美观,发送1按钮的代码:<input type="submit" name="Submit" value="发送1" style="font-family:宋体; font-size: 9pt;">   小结:只要我们对字体的样式熟悉了,就可以灵活多变,不一定要在标签里面使用style来定义,完全可以在<head>里定义,或者外部引用CSS文件,用到的时候引用一下就能达到预期的效果。 1.2 背景颜色和图像样式的应用  有很多时候,网页由于颜色的搭配,不得不对表单的背景颜色和图像样式进行设计,背景颜色利用background-color属性,背景图像利用background-image属性,颜色和图像同样能够得到意想不到的效果。 样例13: 表单元素的背景展示 复选 单选 yesky.com redidea.com chinabyte.com sina.com sohu.com   分析: 文本框背景是黑色的,字体是白色的,代码:<input type="text" name="RedFld" size="10" maxlength="10" style="color: #FFFFFF; background-color: #000000"> 口令框背景是灰色的,代码:<input type="password" name="RedFld3" size="10" maxlength="10" style="background-color: #999999"> 单选和复选按钮的背景是红色的,代码:<input type="checkbox" name="checkbox" value="checkbox" style="background-color: #FF0000"><input type="radio" name="radiobutton" value="radiobutton" style="background-color: #FF0000"> 下拉选择框的选项是丰富多彩的背景,代码:<select name="select2" size="1"><option selected style="background-color: #FF0000">yesky.com</option><option style="background-color: #0000CC">redidea.com</option><option style="background-color: #009900">chinabyte.com</option><option style="background-color: #ff33cc">sina.com</option><option style="background-color: #999999">sohu.com</option></select> 多行文本框的背景是一个图像,代码:<TEXTAREA name="RedFld2" cols="25" rows="3" wrap="VIRTUAL" style="background-image: url(back.gif)"></TEXTAREA> submit1按钮的背景是黄色的,代码:<input type="submit" name="Submit3" value="Submit1" style="background-color: #FF9900"> submit2按钮的背景是一个图像,代码:<input type="submit" name="Submit22" value="Submit2" style="background-image: url(back.gif)">   小结:用好background-color属性和background-image属性,就可以设计很出“色”表单了。1.3 边框样式的应用   也许你觉得表单的边框过于死板,我们能否设计单线条,或者其它的边框样式呢?当然可以!  和边框有关的属性有:边框式样border-style、上边框border-top、右边框border-right、下边框border-bottom、左边框border-left、边框颜色border-colr、边框宽度 border-width、上边框宽度border-top-width、右边框宽度border-right-width、下边框宽度border-bottom-width、左边框宽度border-left-width、边框 border,这里不作详细的讲述,请参考有关资料。 样例14: 8种边框形式的展示 复选 单选   分析: 文本框有8种类型边框样式,即border-style,分别展示在本例中,边框宽度的设置有一个规律:border-width: [ thin | medium | thick | <长度> ]{1,4}边框宽度用一到四个值来设置元素的边框宽度,它们分别被应用于上、右、下和左边框宽度。如果只给出一个值,它被应用于所有边框宽度。如果两个或三个值给出了,省略了的值与对边相等例如:<input type="text" name="RedF" style="border-color: #006600; border-style: dotted; border-width: 1px">边框颜色的设置有一个规律:border-colr: <颜色>{1,4}边框颜色用一到四个值来设置元素的边框颜色。如果四个值都给出了,它们分别被应用于上、右、下和左边框颜色。如果只给出一个值,它被应用于所有边框颜色。如果两个或三个值给出了,省略了的值与对边相等。 对于多行文本框以及按钮,设置边框的方法和文本框一样,不再陈述; 由于下拉选择框Select不支持边框的设置,所以对它设置是徒劳的; 单选按钮和复选按钮的边框,设置的效果不十分协调,所以建议不要对它们设置,不然有“画蛇添足”之感;  样例15:边框的特殊设计展示  聪明的读者一定会想到,如果设计单边框,一定更加漂亮,对!下面我们来尝试以下部分边框的设置效果,本例仅仅以Solid和dotted两种类型的边框作演示,其它类型的边框原理相同: 代码:style="background-color: #FFFFFF; border-color: #000099; border-style: solid; border-width: 0px 0px 1px" 代码:style="background-color: #FFFFFF; border-color: #CCCCCC black #FF0000; border-style: solid; border-width: 1px 0px" 代码:style="background-color: #FFFFFF;border-left: 1px dotted #ff0000; border-right: 1px dotted #ff0000; border-top: 1px dotted #ff0000; border-bottom:1px solid #000000" 注意:边框类型的外观如下: none :无边框。与任何指定的border-width值无关; dotted :点线; dashed :虚线; solid :实线边框; double :双线边框。两条单线与其间隔的和等于指定的border-width值; groove :3D凹槽; ridge :边框突起; inset :3D凹边; outset :3D凸边;   2、图像魔法  图像,是网页的重要元素,能否应用到表单中呢?接下来,我们用图像来改造死板的表单,分两个部分来探讨:用图像代替按钮、用背景图美化表单元素。  2.1 用图像代替按钮由于默认的表单按钮太丑陋,绝大多数的网站采用了图像按钮,那么,我们通过两个实例来看看怎样实现的:样例16:用图像代替提交按钮:  当只有一个提交按钮的时候,可以简单地实现,不用加事件函数,代码是:<input type="image" name="..." src="url" width="" height="..." border="...">  除了标签改为input type="image"以外,其它的属性和<img>标签的属性是一样的,例如:   是不是只要用图片就可以代替所有的按钮呢?是的,不过,不是上面这么简单了,必须加上事件函数,不然的话,图片都是提交按钮,不能完成复位等功能,看看下面的例子就知道了:样例17:用图片代替所有的表单按钮: 注意: 代替submit按钮的图片代码格式是<input type="image" name="..." src="..." onClick="document.formName.submit()"> 代替reset按钮的代码图片格式是<a href="javascript :document.formName.reset();"><img border=0 src="..."></a>注:这里的formName是表单的name属性值。   2.2 用背景图美化表单元素  其实,前面已经提到过,用background-image:url()属性来定义表单元素的背景图,这里仅举一例,可以看到,除了select没有效果以外,其它的都可以配合网页的背景来设置它们。样例18:背景图的设置 www.yesky.com redidea.com www.chinabyte.com   三、表单的提交  既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以后,还要保证用户的数据提交到特定的程序。  1.数据的检验  数据的检验,通常有两种程序:客户端检验和服务器端检验。客户端检验,比较快,服务器端检验,相对来说比较慢,为了确保安全,通常同时采用,这样就可以避免用户刻意破坏。  不管采用什么方式,数据检验的原理都是一样的,一旦用户输入的数据不符合规定,就报错,要求用户重新输入,客户端检验常使用Javascrip脚本,服务器端的视系统而定,本文不对数据检验的具体程序设计进行探讨,仅仅列举几个例子来说明。 样例19:必填项,以及简单的数据类型检验 Chinabyte Sina netease   分析:实际上,这里用到了一个函数,用于向选择的地址跳转,<script language="JavaScript">function FormMenu(targ,selObj,restore){ eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");if (restore) selObj.selectedIndex=0;}</script>   然后,给下拉选择框赋予一个事件onChange="FormMenu('parent',this,0)",就可以了。  2.表单内容的聚焦  内容聚焦,常用在Copy&Paste类网站上,用的好的话,可以方便用户。 样例23:内容自动聚焦 把你的鼠标移上来,看看 这里的内容自动选择了   分析: 上面分别使用了两个事件,Email的是onFocus="this.value=''",自动选择的是onMouseOver="this.select()"   3.去掉表格和表单间的空隙 样例24:表格和表单的空隙处理  表格,我们常用来构架页面,可是,表格里的表单总是和表格的内容有一个空隙,对照一下: 这里有空隙 这里没有空隙   分析:为什么右边没有空隙呢,看看右边的代码就知道了。<table width="100%" border="1" cellspacing="1" cellpadding="1"><tr><form name="form3" method="post" action=""> <td> <input type="text" name="textfield2"><br><input type="submit" name="Submit22" value="Submit">这里没有空隙 </td></form></tr></table>   也就是说,把<form>标签放到<tr>和<td>中间,对应的</form>放在</td>和</tr>中间!  4.用Email提交表单(只适合Outlook用户,不适合Foxmail用户)  样例25:Email提交表单 主题: 内容:     分析:看看我们的表单<form>标签就知道了,格式如下:<form name="..." action="mailto:xxxxx@xxx.xxx?Subject=表单反馈" enctype="text/plain" method="post">...</form> 这里的mailto:后面加上要接受信息的地址,?Subject是设置默认的Email标题,enctype="text/plain"是必要的,表示信息以文本方式提交,没有任何加密,所以这种方法常用于没有Asp/Php/cgi支持的空间,也只是一个代用的方法,用户必须安装Outlook,并且是默认的邮件程序,才能顺利执行提交,据说TheBat!也可以,大家可以试验一下。


阅读全文(1831) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144768003 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号