我和一个工作人员正在为我们的客户开发一个Web应用程序来登录和管理这些细节。其中一个部分要求用户上传那里的公司徽标,但因为我们都知道html browes按钮或标签,因为它也被称为硬cookie。这是我希望它看起来: 使用CSS和上传按钮的功能设计样式
但现实是,如果我把一个普通的旧文件标签在那里它看起来平淡无奇,一般进出的地方,所以我用Google搜索的解决方案和一个之后狩猎我碰到这个代码产生的代码下面的图片(这点我也显示没有设置为零的不透明度文件上传):
#divinputfile
{
height:85px;
width:250px;
margin:0px;
background-image: url(images/upload_file.gif);
background-repeat: no-repeat;
background-position: right bottom;
}
#divinputfile #filepc
{
opacity: 0.0;
-moz-opacity: 0.0;
filter: alpha(opacity=00);
font-size:16px;
cursor: pointer;
}
#filepc
{
margin-top: 12px;
}
#fakeinputfile
{
margin-top:-28px;
}
#fakeinputfile #fakefilepc
{
width:250px;
height:22px;
font-size:18px;
font-family:Arial;
}
<body>
<br />
<div id="divinputfile">
<div id="fakeinputfile">
<br />
<input name="fakefilepc" type="text" id="fakefilepc" />
</div>
<div align="right">
<input name="filepc" type="file" size="1" id="filepc" onchange="document.getElementById('fakefilepc').value = this.value;"/>
</div>
</div>
</body>
这是一个基本的黑客,当我选择样式化的按钮我真的选择了不可见的上传按钮,然后是upl的值oad被传递到上面的测试框中,看起来像是它上传的真正部分。这种方法的两个问题,我希望你能帮助我在这里是
a)只有按钮可以点击上传。在大多数浏览器中(不包括Chrome浏览器),您可以点击文本框以及按钮上传图片。当然,这种方法的文件路径的文本被添加到文本框,但任何改变该框不会改变文件,例如:如果你选择file1.jpg上传,但你真的想file2.jpg,改变文本路径在文本框不会将事情改变为ACTUAL上传元素
b)Chrome和Opera等一些浏览器将\ fakepath \ filepath添加到文本框中,而这只是丑陋的,所以任何if语句都可以删除它,这也会非常有用。
希望你们可以帮助我,如果不通过代码提示,那么如果有人知道一个好的JavaScript插件,节省一天。
谢谢
可以使用CSS3.Go页面:http://w3schools.com/css3/css3_borders.asp会让你看看如何四舍五入你的按钮角落.. – Rares 2012-02-17 09:52:29