DivCSS实例教程:Form表单内textarea背景图片设置
网站开发的过程不可避免的会遇到表单元素的应用。表单form元素是网页里面一种相对特殊的元素,它用来搜集信息。表单一般有多个元素组成,最常见的有,文本框、单选或复选、下拉菜单、文本域和按钮等。
为了美化页面,常常将表单元素设计在不同的外观样式。可以给文本框设置不同的背景色、边框和文字颜色等,文本域一般是一个较大的区域,可以加入背景图片予以美化。前几日,有一位朋友在进行文本域textarea背景图片设置的时候遇到了一点问题。背景图片并不是静止的,会随着文本域内的内容增加而出现位置上的变化。下面开始一步一步加以说明。
首先来看一下本实例的效果。
这是一个简单的表单,由两个元素组成。上部是文本域textarea,下部是一个提交按钮input。编写XHTML代码如下。
Example Source Code [www.52css.com]
<form action="http://www.52css.com/" method="post" id="MrJin" name="MrJin">
<textarea name="MrJin_52CSS" id="MrJin_52CSS" cols="" rows=""></textarea>
<input name="Submit" type="submit" value="Submit" />
</form>
<p>
DivCSS实例教程:Form表单内textarea背景图片设置 -
<a href="http://www.52CSS.com/" target="_blank">www.52CSS.com</a>
</p>
建立一个表单form,并赋予其id为MrJin。在其内部建立一个文本域textarea元素,赋予id为MrJin_52CSS。最后放置一个提交按钮。
下面开始CSS样式定义,编码如下。
Example Source Code [www.52css.com]
#MrJin_52CSS {
display:block;
width:350px;
height:240px;
background:url(bg.jpg) no-repeat 10px 30px;
border:1px solid #06f;
padding:5px;
}
将textarea元素转换为块元素,设置其宽度和高度,定义背景图片为bg.jpg,不重复,
定位于x轴10px、y轴30px。设置边框为1像素的实线,颜色为#06f。为了使输入文本与边框之间有一定的距离,设置内边距为5px。
下面是本案例所用到的背景图片:
看此时表单的运行效果。
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DivCSS实例教程:Form表单内textarea背景图片设置 - www.52CSS.com</title><br />
<style type="text/css">
#MrJin_52CSS {
display:block;
width:350px;
height:240px;
background:url(http://www.52css.com/attachments/month_0804/c20084189415.jpg) no-repeat 10px 30px;
border:1px solid #06f;
padding:5px;
}
</style>
</head>
<body>
<form action="http://www.52css.com/" method="post" id="MrJin" name="MrJin">
<textarea name="MrJin_52CSS" id="MrJin_52CSS" cols="" rows=""></textarea>
<input name="Submit" type="submit" value="Submit" />
</form>
<p>DivCSS实例教程:Form表单内textarea背景图片设置 - <a href="http://www.52CSS.com/" target="_blank">www.52CSS.com</a></p>
</body>
</html>
运行上面的代码,试着在文本域textarea内输入文字,多敲几个换行回车的时候发现,背景图产生了移动,跑到上面去了。这是因为文本域的面积发生着变化。在IE6和IE7中,都是这样理解的。FF除外。
在背景图片的CSS定义中,有这样一个属性。
background-attachment : scroll | fixed
设置或检索背景图像是随对象内容滚动还是固定。
scroll: 背景图像是随对象内容滚动
fixed:背景图像固定
在本案例中,希望背景图像是固定的,所以是:
background-attachment:fixed;
将此属性的定义加入到上面的代码中,再查看运行效果。
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DivCSS实例教程:Form表单内textarea背景图片设置 - www.52CSS.com</title><br />
<style type="text/css">
#MrJin_52CSS {
display:block;
width:350px;
height:240px;
background:url(http://www.52css.com/attachments/month_0804/c20084189415.jpg) no-repeat 10px 30px;
background-attachment:fixed;
border:1px solid #06f;
padding:5px;
}
</style>
</head>
<body>
<form action="http://www.52css.com/" method="post" id="MrJin" name="MrJin">
<textarea name="MrJin_52CSS" id="MrJin_52CSS" cols="" rows=""></textarea>
<input name="Submit" type="submit" value="Submit" />
</form>
<p>DivCSS实例教程:Form表单内textarea背景图片设置 - <a href="http://www.52CSS.com/" target="_blank">www.52CSS.com</a></p>
</body>
</html>
现在问题得到了解决,在IE6、IE7和FF中得到了基本一致的效果。输入很多文字也不会出现背景图片位移的情况了。
虽然在个别浏览器中存在着一定的差异,但不影响正常使用了。