我正在使用jQuery UI,我注意到输入文件按钮:
<input type="file">
无法像其他按钮一样设置样式。我发现this plugin看起来很酷,显然可以让你放一个图像而不是按钮,但是这些例子没有显示任何按钮样式。
如果没有jQuery将主题样式应用于该按钮,我可以自己在CSS中设置样式吗?
答案 0 :(得分:5)
是的,你可以,只用CSS。
制作<form>
,在其中包含<div>
&amp;将<input type="file">
放入<div>
。
要覆盖<input type="file">
的默认样式,主要优先级是在输入上设置opacity: 0;
,以便样式来自<div>
css。
<强>更新强>
要从<input type="file">
获取文本,您需要一些jQuery。
例如,添加一个段落。然后使用val()
从输入中获取文本并将其设置为段落文本。更新小提琴:
答案 1 :(得分:3)
一个简单的解决方案:
标记:
<div class="fileUpload btn btn-primary">
<span>Upload</span>
<input type="file" class="upload" />
</div>
的CSS:
.fileUpload {
position: relative;
overflow: hidden;
margin: 10px;
}
.fileUpload input.upload {
position: absolute;
top: 0;
right: 0;
margin: 0;
padding: 0;
font-size: 20px;
cursor: pointer;
opacity: 0;
filter: alpha(opacity=0);
}
注意:我使用Bootstrap作为样式按钮(div.file-upload
)。
答案 2 :(得分:3)
可能你想要这样的东西:
<div id='file'>
<label id='text'for="inputFile1">No file selected.</label>
<label for="inputFile1">
<input type="file" id='inputFile1' class='fileInput'/>
</label>
</div>
input[type="file"] {
opacity:0;
}
#file {
background:url('...der_open-add.png') 0 0 no-repeat;
width:100%;
height:32px;
position:relative;
overflow:hidden;
}
#file label {
padding:0 0 0 35px;
color:green;
width:100%;
}
#file #text {
line-height:32px;
width:100%;
position:absolute;
left:0px;
top:0;
color:green;
font-size:11px;
}
$('#file input[type="file"]').on('change', function () {
var o = this.value || 'No file selected.';
$(this).closest('#file').find('#text').text(o);
});
答案 3 :(得分:1)
<div style="position:relative;display:inline-block;left:-4px;bottom:-6px;width:16px; height: 24px;overflow:hidden;">
<img src="/images/attach.jpg" alt="" title="Add Attachment" style="height:24px;width:16px; position: relative;top: 1px; left: 0px;"/>
<input type="file" id="fileupload" name="upload" style=" opacity: 0;font-size: 50px;width:16px; filter:alpha(opacity: 0); position: relative; top: -22px; left: -1px" />
</div>
演示:
答案 4 :(得分:0)
我的简单解决方案: 将输入按钮放在带有css display:none的div中 无论如何都要设置你的按钮并绑定一个触发隐形输入按钮的功能。
<div style="display: none;">
<form id="fileupload">
<input type="file" class="upload" name="newfile"/>
</form>
</div>
<span id="browser">Click this line to browse all your awesome files</span>
JQUERY:
$("#browser").on('click', function(){
$(".upload").click();
});