HTML5表单为file文件类型的样式修改
2018-03-16 16:46
555 查看
问题:
觉得表单中自带的file很难看,可以自己去设置样式。
解决方法:
在input元素添加一个前元素,例如Button ,然后把input元素和button元素位置都设置成position:absolute;然后把top和left样式调整在一个位置上,width和height设置一致,我这里设置成position:relative;直接上代码:
结构:
CSS 样式(top和left值自己慢慢修改):#table tr td .my-button{
position: relative;
top: 13px;
height: 50px;
width:150px;
}
#table tr td input[type="file"]{
position: relative;
width:150px;
height: 50px;
opacity: 0;/* 最关键的地方 把input设置成透明,这样只能看到按钮 */
cursor: pointer;
top: -36px;
}
.my-button-hover{
background-color: lightgray!important;/*鼠标划过input通过JS添加样式*/
}结果图:
没设置opacity样式前:
![](//img-blog.csdn.net/20180316164402182?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L3FxOTQ0NDg0NTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
设置opacity样式后:
![](//img-blog.csdn.net/20180316164429777?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L3FxOTQ0NDg0NTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
再加上JS代码,更加完美:<script>
function alterButtonValue(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.innerText = obj.files[0].name;
}
function alterButtonBgColor(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.classList.add("my-button-hover");
}
function alterButtonBgColor2(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.classList.remove("my-button-hover");
}
</script>
每天进步一点点,相信自己也可以用代码来改变世界
觉得表单中自带的file很难看,可以自己去设置样式。
解决方法:
在input元素添加一个前元素,例如Button ,然后把input元素和button元素位置都设置成position:absolute;然后把top和left样式调整在一个位置上,width和height设置一致,我这里设置成position:relative;直接上代码:
结构:
<table id="table"> <tr> <td>商品详情图:</td> <td> <button class="btn btn-default my-button">修改图片</button> <input type="file" name="file" onchange="alterButtonValue(this)" onmouseenter="alterButtonBgColor(this)" onmouseout="alterButtonBgColor2(this)" accept="image/*"/> </td> </tr> </table>
CSS 样式(top和left值自己慢慢修改):#table tr td .my-button{
position: relative;
top: 13px;
height: 50px;
width:150px;
}
#table tr td input[type="file"]{
position: relative;
width:150px;
height: 50px;
opacity: 0;/* 最关键的地方 把input设置成透明,这样只能看到按钮 */
cursor: pointer;
top: -36px;
}
.my-button-hover{
background-color: lightgray!important;/*鼠标划过input通过JS添加样式*/
}结果图:
没设置opacity样式前:
设置opacity样式后:
再加上JS代码,更加完美:<script>
function alterButtonValue(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.innerText = obj.files[0].name;
}
function alterButtonBgColor(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.classList.add("my-button-hover");
}
function alterButtonBgColor2(obj){
var btn = obj.previousElementSibling;//获取上一个节点元素
btn.classList.remove("my-button-hover");
}
</script>
每天进步一点点,相信自己也可以用代码来改变世界
相关文章推荐
- 修改提交文件的input类型为file控件的样式
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- js 获取input type="file" 选择的文件大小、文件名称、上次修改时间、类型等信息
- HTML5表单required验证修改文字和样式
- HTML5的 input:file上传类型控制 与上传多文件
- 利用Javascript来修改file类型input标签的样式
- 如何客户端控制file表单的文件类型
- file类型的输入框,样式不可修改的解决方法
- 修改input file文件上传的默认样式 兼容ie8
- s 获取input type="file" 选择的文件大小、文件名称、上次修改时间、类型等信息
- type=file导入文件按钮样式修改的jsp代码-完美好
- HTML5表单required验证修改文字和样式
- 【HTML】统一file提交样式 input type=file浏览修改,不清空file值,提交表单
- html5实现表单内的上传文件框,建立一个可存取到该file的url。
- HTML5 input file类型,accept(文件类型控制)
- 分享一个jsp页面获取form表单中input框类型为file的文件名称
- 上传文件控制input type="file"样式修改记
- HTML5:input file控件限制上传文件类型
- HTML5的 input:file上传 样式美化及表单异步提交
- html5移动端图片剪切上传 以及修改file标签样式