Bootstrap 4自定义文件上传和调整大小

时间:2018-07-29 08:11:55

标签: twitter-bootstrap forms file input bootstrap-4

如何通过使用input-group-smform-control-sm等类向Bootstrap 4添加自定义文件输入大小?我想将此自定义文件输入字段设置为较小。有人有解决方案吗?

使用课程form-control-sm

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

    <div class="form-group">
      <input class="form-control form-control-sm" value="Small input field">
    </div>

使用课程input-group-sm

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="input-group input-group-sm">
  <div class="input-group-prepend">
    <span class="input-group-text">Go</span>
  </div>
  <input type="text" class="form-control" id="basic-url" aria-describedby="basic-addon3" value="Small input group">
</div>

两者都不在这里工作。如何使输入字段变小

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="input-group input-group-sm">
  <div class="custom-file">
    <input type="file" class="custom-file-input form-control-sm">
    <label class="custom-file-label">Choose file</label>
  </div>
</div>

3 个答案:

答案 0 :(得分:1)

对于像素精确解决方案,您仍然需要一些额外的CSS(在2019年)。如果需要仅使用Bootstrap的解决方案,请将.col-form-label类添加到<label>标记中,并使用Bootstrap版本4.3。高度仍然需要额外的0.25 rem,但是您可以使用与其他.form-Control-sm元素相同的方式来使用此片段。

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>


<div class="form-group">
  <div class="custom-file">
    <input type="file" class="custom-file-input">
    <label class="custom-file-label">Choose file</label>
  </div>
</div>
<div class="form-group">
  <div class="custom-file">
    <input type="file" id="customFile" class="custom-file-input form-control-sm">
    <label class="custom-file-label col-form-label-sm" for="custmFile">Choose file</label>
  </div>
</div>

答案 1 :(得分:0)

使用p-0将填充减少到0

还添加以下样式

#abc.custom-file-label,
#abc.custom-file-label::after {
  height: auto;
  padding-top: 0;
  padding-bottom: 0;
}

#abc.custom-file-label,
#abc.custom-file-label::after {
  height: auto;
  padding-top: 0;
  padding-bottom: 0;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />

<div class="input-group input-group-sm  p-0">
  <div class="custom-file p-0">
    <input type="file" class="custom-file-input form-control-sm  p-0">
    <label id="abc" class="custom-file-label py-0">Choose file</label>
  </div>
</div>

答案 2 :(得分:0)

Solucion:se peutede optimizar aun mas ..

<form action="" method="POST">
        <div class="input-group input-group-sm mb-3">
                <div class="input-group-prepend">
                        <span class="input-group-text font-italic" id="inputGroup-sizing-sm">Foto</span>
                </div>
                <input type="text" class="form-control" id="foto" name="foto"  aria-label="Sizing example input" onClick="ftt()" value="No se ha seleccionado ningún archivo." aria-describedby="inputGroup-sizing-sm">
        </div>
        <input type="file" onchange="on()" hidden="true" id="file">
        <div class="col-md-6 offset-md-4">
                <button name="btn-" type="button"  onClick="crearEmp()" class="btn btn-n btn-outline-success btn-sm">Guardar</button>
        </div>
</form>

jQuery:

function ftt(){
    $('#file').click();
}
function on(){
    var ft = $('#file').val();
    $('#foto').val(ft);
}