用CSS美化input file按钮的方法-css设计

王朝数码·作者佚名  2008-11-19
窄屏简体版  字體: |||超大  

我们在做表单的情况下,input、textarea、button的样式比较容易定义,select和input file的样式难以定义。

input file在系统默认下的外观:

我们最多通过定义input的border来改变系统默认的外观:

如果要让浏览按钮更漂亮一点,我们想定义它的背景颜色,甚至想用背景图片来代替,通过css定义input flie还真是办不到的。偶然看到一篇文章:input file 文件选择框美化 作者是把系统默认的按钮设置透明度为0,再定义一个label标签样式,来覆盖透明掉的按钮。

按照作者的方法,我也试验了一下,代码如下:

<!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" /

<titleinput file的另类做法</title

<style type="text/css"

<!--

* { font-size:12px}

body { margin:0}

.line { position:relative; float:left; padding:8px 0}

.line span { float:left}

input { border:1px solid #888; vertical-align:middle}

.file { position:absolute; left:90px; top:8px; display:none;filter:alpha(opacity=0);opacity:0}

.file1 { padding:2px 10px; display:block; float:left; background:#FF66CC; color:#fff; z-index:1; margin-left:5px; vertical-align:middle; cursor: pointer}

.inputstyle { width:150px; border:1px solid #888; z-index:99}

--

</style

</head

<body

<div class="line" <span

<label上传文件:</label

<input name="" type="text" id="viewfile" onmouseout="document.getElementById('upload').style.display='none';" class="inputstyle" /

</span

<label for="unload" onmouseover="document.getElementById('upload').style.display='block';" class="file1"浏览...</label

<input type="file" onchange="document.getElementById('viewfile').value=this.value;this.style.display='none';" class="file" id="upload" /

</div

</body

</html

效果:

虽然多了很多标签,但这种偷梁换柱的做法还是值得研究。有没有更好、更科学的作法还有待发掘。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航