【问题标题】:bootstrap grid with border between columns具有列之间边界的引导网格
【发布时间】:2018-01-19 01:19:05
【问题描述】:

我怎样才能制作一个包含一行和两列内的引导网格。第一列大小为 9 col-md-9 和第二列大小为 3 col-md-3,无论内容在列内多长时间,行和列都会很好并且它们之间有边界。我该怎么做?它应该是这样的:

不是这样的:

这是jsfiddle

.row > div {
  background: lightgrey;
  border: 1px solid grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class='row'>
  <div class="col-xs-9">
      <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>  <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>  <br>Hifgdfgsdfg
 
  </div>
  <div class="col-xs-3">Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>Hifgdfgsdfg
    <br>
  </div>
</div>

【问题讨论】:

    标签: html css twitter-bootstrap-3 bootstrap-grid


    【解决方案1】:

    一个通用的解决方案是使用 flexbox。

    这将使您的列始终具有相同的高度。

    这是一个小提琴:https://jsfiddle.net/Gt25L/1280/
    (我想你必须添加特定的类,因为 rowscols 太笼统了,但我相信你明白了)

    .row {
      display: flex;
    }
    
    .row > div {
      flex: 1;
      background: lightgrey;
      border: 1px solid grey;
    }
    <div class='row'>
      <div class="col-xs-9">
          <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>  <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>  <br>Hifgdfgsdfg
     
      </div>
      <div class="col-xs-3">Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>
      </div>
    </div>

    【讨论】:

    • 但是如果我们在没有指定行的情况下再指定两列,则显示效果不佳;喜欢jsfiddle.net/wnqb1L23/1;有什么办法一样吗
    【解决方案2】:

    有点贫民窟,但您可以在行上使用背景色,而不是在列上,并仅在其中一列上添加边框(假设您总是在左列上有更多内容)

    https://jsfiddle.net/Gt25L/1277/

    <div class="container">
    <div class='row'>
      <div class="col-xs-9 border">
          <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br> Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>  <br>Hifgdfgsdfg
    
      </div>
      <div class="col-xs-3">Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>Hifgdfgsdfg
        <br>
      </div>
    </div>
    </div>
    .row {
      background: lightgrey;
      border: 1px solid grey;
    }
    
    .border {
      border-right: 1px solid black;
    }
    

    【讨论】:

      【解决方案3】:

      如果您不介意指定其中一个元素的宽度,可以使用负边距,然后按边距量增加宽度。

      .row > div {
        background: lightgrey;
        border: 1px solid grey;
      }
      
      .row > div:last-child {
        margin-left: -1px;
        width: calc(25% + 1px);
      }
      <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
      <div class="container">
        <div class='row'>
          <div class="col-xs-9">
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>
            <br>Hifgdfgsdfg
      
          </div>
          <div class="col-xs-3">Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
      
            <br>
            <br>Hifgdfgsdfg
          </div>
        </div>

      【讨论】:

        【解决方案4】:

        您可以使用 boostrap4 (flexbox) 或使用 box-shadow 来绘制边框并将背景设置到父容器中:

        绘制插图和起点阴影会使它们重叠,因此您不会注意到最高的盒子。

        .row {
          background: lightgrey;
          border-top: 2px solid grey;
          box-shadow: 0 2px grey, inset 2px 0 gray, inset -2px 0 grey;
          overflow: hidden;
        }
        
        .row>div {
          box-shadow: 2px 0 grey, inset 2px 0 grey
        }
        
        
        /* demo purpose*/
        
        .row {
          margin: auto!important;
          max-width: 80%;
        }
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
        
        <div class='row'>
          <div class="col-xs-9">
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br> <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br> <br>Hifgdfgsdfg
        
          </div>
          <div class="col-xs-3">Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>
          </div>
        </div>
        <div class='row'>
          <div class="col-xs-3">Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>
          </div>
          <div class="col-xs-9">
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br> <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br>Hifgdfgsdfg
            <br> <br>Hifgdfgsdfg
        
          </div>
        </div>

        关于bootsrap 4https://v4-alpha.getbootstrap.com/

        .row>div {
          background: lightgrey;
          border: 1px solid grey;
        }
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />
        
        <div class="container">
          <div class='row'>
            <div class="col-9 col-xs-9">
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br> <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br> <br>Hifgdfgsdfg
        
            </div>
            <div class="col-3 col-xs-3">Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>
            </div>
          </div>
          <div class='row d-flex'>
            <div class="col-3 col-xs-3">Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>
            </div>
            <div class="col-9 col-xs-9">
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br> <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br> <br>Hifgdfgsdfg
        
            </div>
          </div>
        </div>

        【讨论】:

          【解决方案5】:

          您可以使用 &lt;div class="col-xs-offset-1"&gt; 包裹文本来抵消它,避免任何额外的 CSS。请参阅下面的 sn-p:

          .row > div {
            background: lightgrey;
            border: 1px solid grey;
          }
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
          <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
          <div class='row'>
            <div class="col-xs-9">
               <div class="col-xs-offset-1">
                <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>  <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>  <br>Hifgdfgsdfg
            </div>
            </div>
            <div class="col-xs-3">
               <div class="col-xs-offset-1">
                  Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>Hifgdfgsdfg
              <br>
            </div>
            </div>
          </div>

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-11
            • 1970-01-01
            • 1970-01-01
            • 2021-11-20
            • 2017-10-13
            • 1970-01-01
            相关资源
            最近更新 更多