How can I add a line between two columns using Twitter Bootstraps grid system

前端 未结 7 2026
梦如初夏
梦如初夏 2020-12-23 17:07

Two column layout with a line in the middle.

[                      ] | [                      ]
[                      ] | [                      ]
[               


        
相关标签:
7条回答
  • 2020-12-23 17:42

    Bootstrap 4 now comes with border utility classes. So if you are using Bootstrap 4, you can just use these classes on the columns that need them. For example, If you want a border between column A and column B, you would add the border-right class on column A.

    Here is a demo:

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
    
    <div class="container">
      <div class="row text-center">
        <div class="col border-right">
          Column A
        </div>
        <div class="col">
          Column B
          <br>
          <br>
          <br>
          Additional content demonstrating that the border stretches to accommodate the height of both columns.
        </div>
      </div>
    </div>

    0 讨论(0)
  • 2020-12-23 17:47

    I think you can set the left column is 48% width, right is 48% width and the center 2% div with repeated background. You must yourself handle it

    0 讨论(0)
  • Expanding on the CSS provided by user2136179, you can also do bottom borders. It requires using matchHeight but can get your Bootstrap Grid looking like a table grid. Check it out

    // See the rest on codepen.io
    $(".border-bottom").children("div").matchHeight();
    
    0 讨论(0)
  • 2020-12-23 17:50

    I think I got your question right... this the below codes. The inline style below is just for illustration. You apply your styling in the css file.

    <div class="container">
        <div class="row-fluid">
            <div class="span6" style="padding-right:20px; border-right: 1px solid #ccc;">
                <p>Some Contents Here...</p>
            </div>
    
            <div class="span6">
                <p>Some Contents Here...</p>
            </div>
        </div>
    </div>
    

    The above code shall output this image.

    enter image description here

    0 讨论(0)
  • My solution uses the :before pseudo-element to put a positioned element between the columns. This doesn't require any more HTML elements and will just be applied to immediate child .col-* elements of the .border-between class. This should be applied to the same element as the .row.

    HTML

    <div class="row border-between">
      <p class="col-sm-6">This column does not have a border, because it's a first child.</p>
      <p class="col-sm-6">This column has a border to the left</p>
    </div>
    

    CSS

    .border-between > [class*='col-']:before {
       background: #e3e3e3;
       bottom: 0;
       content: " ";
       left: 0;
       position: absolute;
       width: 1px;
       top: 0;
    }
    
    .border-between > [class*='col-']:first-child:before {
       display: none;
    }
    
    0 讨论(0)
  • 2020-12-23 17:55

    Based on @Ross Angus solution I found a way to adapt height. Just placing on top of each others borders of each columns.

    .grid--borderBetween > [class*='col-']:before,
    .grid--borderBetween > [class*='col-']:after {
        background: #b2b2b2;
        bottom: 0;
        content: " ";
        position: absolute;
        width: 1px;
        top: 0;
    }
    .grid--borderBetween > [class*='col-']:before {
        left: 0;
    }
    .grid--borderBetween > [class*='col-']:after {
        right: -1px;
    }
    .grid--borderBetween > [class*='col-']:first-child:before,
    .grid--borderBetween > [class*='col-']:last-child:after {
        display: none;
    }
    
    0 讨论(0)
提交回复
热议问题