[css]自定义input文件上传按钮样式

当我想使用bootstrap中的样式快速渲染我的页面的时候发现,我渲染了button按钮的样式,但没找到input对应的样式,样式不统一

单单渲染一个input组件文件上传按钮样式在bootstrap官方文档中竟然没有,然后我继续搜寻有没有相关的内容,接着我看到了另一个方案,下载插件bootstrap-FlieInput组件来渲染input组件

方案一

Bootstrap File Input,最好用的文件上传组件_bootstrap-fileinput_沉默王二的博客-CSDN博客

但这个方案对我来说有点麻烦,我只是想要选择文件这个样式统一成上传文件一样的按钮样式,于是简单的方法来了

方案二

首先在head引入bootstrap

<head>
     <link rel="stylesheet" href="./css/bootstrap.css"/>
</head>

然后是我们的html样式

<body>
    <div class="box">
        <input class="input-btn" type="file"/>
        <button>id="btnUpload">上传文件</button>
    </div>
</body>

现在是最基本的样式,效果如下:

然后是使用bootstrap文档中的组件给予button按钮样式

bootstrap教程:Bootstrap从入门到精通(全)_bootstrap教程_码农研究僧的博客-CSDN博客

bootstrap文档组件网址:组件 · Bootstrap v3 中文文档 | Bootstrap 中文网 (bootcss.com)

<body>
    <div class="box">      
        <input class="input-btn" type="file"/>
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="btnUpload">上传文件</button>
    </div>
</body>

效果如下:

接下来我们使用button标签去包裹input上传文件,包裹input的button标签我们使用一样的bootstrap按钮组件样式,为的是样式统一

<body>
    <div class="box">             
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="btnUpload">
            选择文件<input class="input-btn" type="file"/>
        </button>
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="btnUpload">上传文件</button>
    </div>
</body>

效果如下:

接下来我们要使input标签所能触发的范围就是选择文件button标签的范围

设置css时间:

将input标签的position设置为absolute,这样设置top,left等位置时才是相对于父元素button的,而不是相对于窗口。设置width: 100% height: 100%,让input的宽度和长度相等于父元素button。设置opacity是为了让input的默认样式隐藏起来,更换了样式的同时依旧能触发。

input{
    position: absolute;
    opacity: 0;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

将input标签所在的父元素button标签的设置

button{
    position: relative;
}

用absolute定位时,要把其上一级的元素样式属性position设置为relative,这是必须的。

设置完,效果如下:

大功告成!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值