【问题标题】:Bootstrap 4 File Input Label Oveflows ColumnBootstrap 4 文件输入标签 Oveflows 列
【发布时间】:2019-01-09 14:18:26
【问题描述】:

我正在尝试使用 Bootstrap 4 创建一个表单。但是文件输入的标签溢出了列。我找不到使它适合列的方法。是否有可以实现此目的的引导方式或自定义 css?

编辑:很抱歉我的问题没有得到很好的解释。我所说的标签的意思是文件输入中的标签。那就是“选择文件...”。可以看出,图像中的文件输入在右侧溢出。它与其他输入字段不对齐。

<div class="form-group row">
     <label for="image-upload" class="col-sm-3 col-form-label">Resim Yükle (5:3 Oranlı)</label>

     <div class="custom-file col-sm-9">
           <input type="file" class="custom-file-input" id="image-upload" required>
           <label class="custom-file-label" for="image-upload">Choose file...</label>
           <div class="invalid-feedback">Example invalid custom file feedback</div>
     </div>
              <!--<div id="uploaded-images"></div> id=cover-image-input-->
</div>

【问题讨论】:

  • 你有表单标签吗?
  • @kiranvj 是的,我愿意。

标签: bootstrap-4


【解决方案1】:

您需要将 col-sm-9 和自定义文件 div 分开。

<div class="col-sm-9">
    <div class="custom-file">
        <input type="file" class="custom-file-input form-control" id="image-upload" required>
        <label class="custom-file-label" for="image-upload">Choose file...</label>
        <div class="invalid-feedback">Example invalid custom file feedback</div>
    </div>
</div>

https://jsfiddle.net/qdfy91r5/1/

此外,如果您使用 m-0 解决方案,它会破坏每一行的边距。该答案仅在单行场景中显示,但是您有多行,这会将它们全部挤压在一起,如下面的小提琴所示,它将我的答案与他的答案进行了比较:

https://jsfiddle.net/qdfy91r5/2/

【讨论】:

    【解决方案2】:

    始终将m-0 (margin: 0;) 提供给row,因为它有时会在您的代码中提供水平滚动条。

    您的 .row 类不是 .container 或 .container-fluid 的子级。 Bootstrap 要求 .row 是 .container 或 .container-fluid 的直接子级,因为 .row 具有负左/右边距,适用于 .container 和 .container-fluid 的左/右填充。因此 .row 上的负边距正在创建水平滚动条,为此您需要将 m-0 赋予元素。

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <div class="form-group row m-0">
         <label for="image-upload" class="col-sm-3 col-form-label">Resim Yükle (5:3 Oranlı)</label>
    
         <div class="custom-file col-sm-9">
               <input type="file" class="custom-file-input" id="image-upload" required>
               <label class="custom-file-label" for="image-upload">Choose file...</label>
               <div class="invalid-feedback">Example invalid custom file feedback</div>
         </div>
                  <!--<div id="uploaded-images"></div> id=cover-image-input-->
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

    【讨论】:

    • 我给了它mr-0,这解决了问题,但我不明白它为什么有效,你能解释一下吗?给 mr-0 会导致标签文本“Resim Yükle (5:3 Oranlı)”也缩进,因此它不会与其他标签对齐。我还编辑了您可能想要查看的问题。
    • 不要以这种方式修复它是不合适的,您真正的问题是您无法组合 custom-file 和 col-sm-9 类。很快就会看到我的答案
    • 这是处理行的最佳方式
    • 实际上这只是删除了所有引导程序默认边距信息,这为您提供了漂亮的引导程序外观和间距。只需在默认的 boostrap col-sm-x div 中创建一个自定义文件 div 即可使其在该容器内运行,而不会破坏边距。
    • 你是对的,但如果更小的解决方案比更大的代码解决方案给你相同的结果,我更喜欢小代码解决方案
    猜你喜欢
    • 2017-09-01
    • 2019-02-26
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2018-04-10
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多