【问题标题】:How to make this column ignore the vertical space如何使该列忽略垂直空间
【发布时间】:2019-03-20 20:54:00
【问题描述】:

在桌面模式下,图像会在“全名”和“表格编号”之间产生间隙。如何使全名列在表格编号列的正下方开始?我知道我可以将全名放在表格编号列 div 中,但是否可以在单独的列中使用全名。

https://jsfiddle.net/xv56d1ez/

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

    <title>Print Form</title>
    <style type="text/css">
      .line{
        border-bottom: 1px solid black;
      }
    </style>
  </head>
  <body>


    <div class ="row">

    <div class="col-sm-4" >
    Form Number: <span class="line">21129012</span>
  </div>
  <div class="col-sm-4">
    Hostel: <span class="line">(Yes / No)</span>
  </div>
  <div class="col-sm-4">
    <img src="https://i.imgur.com/rC8Btb0.jpg" height="200px" width="200px" alt="image">
  </div>
   <div class="col-sm-4">
    Full Name: <span class="line">(Yes / No)</span>
  </div>

  </div>

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
  </body>
</html>

【问题讨论】:

    标签: css bootstrap-4


    【解决方案1】:

    问题在于 Bootstrap 4 使用 flexbox,因此每一行都是最高列的高度。如果您有单独的列,使其工作的唯一方法是使用浮动覆盖弹性框并重新排列列...

    <div class="container-fluid">
        <div class="row d-sm-block d-flex">
            <div class="col-sm-4 float-right order-last">
                <img src="https://i.imgur.com/rC8Btb0.jpg" height="200px" width="200px" alt="image">
            </div>
            <div class="col-sm-4 float-left">
                Form Number: <span class="line">21129012</span>
            </div>
            <div class="col-sm-4 float-left">
                Hostel: <span class="line">(Yes / No)</span>
            </div>
            <div class="col-sm-4">
                Full Name: <span class="line">(Yes / No)</span>
            </div>
        </div>
    </div>
    

    演示:https://www.codeply.com/go/Vb9StioKGq


    相关:Empty vertical space between columns in Bootstrap 4

    【讨论】:

    • float: right 在该行内不起作用,因此您使用 d-sm-block 在所有设备上隐藏该行。
    【解决方案2】:

    检查我的朋友

    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    
        <title>Print Form</title>
        <style type="text/css">
          .line{
            border-bottom: 1px solid black;
          }
        </style>
      </head>
      <body>
      
        
    
        <div class ="row">
          <div class="col-sm-4">
        <img src="https://i.imgur.com/rC8Btb0.jpg" height="200px" width="200px" alt="image">
        </div>
    
        <div class="col-sm-4" >
        <div class="row">
        <div class="col-sm-12" >
         Form Number: <span class="line">21129012</span>
        </div>
        
        </div>
        <div class="row">
        <div class="col-12" >
         Full Name: <span class="line">(Yes / No)</span>
        </div>
        
        </div>
        
            <div class="row">
        <div class="col-12" >
        Hostel: <span class="line">(Yes / No)</span>
        </div>
        
        </div>
       
      </div>
    
    
      </div>
    
      </div>
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
      </body>
    </html>

    【讨论】:

    • 请说明您为修复代码所做的工作
    【解决方案3】:

    通过设置 200px 图像的内联样式,您可以设置整个引导行的高度。 Bootstrap 行基于 flexbox,这就是为什么您的全名 div 不在您想要的位置的原因。您应该将全名放在表格编号后面或以其他方式重组您的html。

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2011-05-25
      • 1970-01-01
      • 2018-08-16
      • 2011-12-05
      • 2015-02-18
      相关资源
      最近更新 更多