如何将Bootstrap col-md div垂直分为两半?

5
我正在尝试使用Bootstrap网格布局来制作下面的布局。有一个包含两个半宽度div(<div1><div2>)的容器<div class="row"><div1>的高度将根据内容大小而更改。并且再次,<div2>应该有两个子div(<div2-1>、<div2-2>),每个子div高度为<div1>的一半。我如何使用Bootstrap网格系统制作此布局?

enter image description here

我尝试过那样做,但不起作用。
<div class="row">
    <div class="col-md-6" id="div1">
        Some content...
    </div>
    <div class="col-md-6" id="div2">

        <div id="div2-1" style="height:50%;">

        </div>
        <div id="div2-2" style="height:50%;">

        </div>
    </div>
</div>
7个回答

5

试试这个...

div {
  border: 1px solid black;
}
#div2-1,
#div2-2 {
  height: 50%;
  border: 1px solid red !important;
}
#div1,#div2{
  height:50px;
  
  }
#div2.col-xs-6
{
  padding:0px !important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
  <div class="row">
    <div class="col-xs-6" id="div1">
      Some content...
    </div>
    <div class="col-xs-6" id="div2">

      <div id="div2-1">

      </div>
      <div id="div2-2">

      </div>
    </div>
  </div>
</div>


这是通过保持列高度固定来实现的...如果高度是自动的呢? - Jones Joseph
他要求使用Bootstrap,而你正在创建一个扩展。 - Christian

3

使用Bootstrap 4

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />

<div class="row">
  <div class="col-md-6 bg-primary" style="min-height: 500px;"></div>
  <div class="col-md-6">
    <div class="row h-100 flex-column">
      <div class="col-md-6 mw-100 bg-danger"></div>
      <div class="col-md-6 mw-100 bg-success"></div>
    </div>
  </div>
</div>

<style>
  /* just for displaying correctly without content */
  
  [class*='col'] {
    min-height: 200px;
  }
</style>


这个人 :) 提出了许多复杂的建议。Amit准确回答了OP所问的问题:如何使用bootstrap进行拆分。我不知道其他人在说什么..为Amit喝彩,他花时间真正回答了OP的问题,而不是说他做错了。 - Christian

1

如果您希望列的高度自动,并且内部div的高度为其一半,则可以使用jQuery。

但是,如果一个div的内容超出了其容量,您可能希望将div的overflow-y设置为auto

$(document).ready(function() {

  var totHeight = $("#col").height();

  $("#div-1").css("height", totHeight / 2);
  $("#div-2").css("height", totHeight / 2);

})
body * {
  color: #ccc;
}
#div-1,
#div-2 {
  overflow-y: auto;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
  <div class="row">
    <div class="col-sm-6" id="col">
      <div id="div-1" style="background-color:red;">
        Content
        <br>Content
      </div>
      <div id="div-2" style="background-color:blue;">

        Content
        <br>Content
        <br>Content
        <br>Content
        <br>Content
        <br>Content
        <br>Content
        <br>Content

      </div>
    </div>
    <div class="col-sm-6"></div>

  </div>

</body>


jQuery?你是认真的吗?做一个分割? - Christian
1
你意识到你正在评论一个4年前的帖子吗? :) - Jones Joseph
我的确是乔纳斯。然而,成为更好的人从来都不会太晚 :) - Christian
1
@Christian 非常正确。假设当时我是编程新手 :D 顺便说一下,我的名字是Jones :p - Jones Joseph

0

//试试这个...

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
<section>
<div class="col-md-12 bg-warning" border="1">
 <div class="row" border="1">
     <div class="col-md-6" border="1">
        <h3>First Column</h3>
     </div>
        <div class="col-md-6" border="1">
         <div class="row bg-danger">
             <h3>Second Column First Row<h3>
            </div>
            <div class="row bg-success">
             <h3>Second Column Second Row</h3>
            </div>
        </div>
    </div>
</div>
</section>
</body>
</html>


0

使用Bootstrap 5 flex非常简单,令人惊讶的简单。 可能我漏掉了什么

   <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

<div class="row">
  <div class="col-md-6 bg-primary" style="min-height: 500px;">Some main content</div>
  <div class="col-md-6">
    <div class="row h-100 flex-column">
      <div class="flex-fill bg-danger">Part 1</div>
      <div class="flex-fill bg-success">Part 2</div>
    </div>
  </div>
</div>

 


0

你好,尝试下方的 fiddle,希望能帮到你。如果需要,也可以添加自定义样式。

<div class="container">
<div class="row">
<div class="col-xs-6 col-sm-6">
        <div id="navigation">
            <label>side Column</label>
        </div>           
    </div>
    <div class="col-xs-6 col-sm-6">
        <div id="text1">
            <label>First Divider</label>
        </div>
        <div id="text2">
            <label>second Divider</label>
        </div>
    </div>      
</div>
</div>

演示代码


添加内容只会增加 #text1 的高度,这不应该发生。 - Jones Joseph
我之前提到Op可以根据自己的风格添加自定义CSS。我根据内容内部进行了高度调整。可以使用自定义CSS将其固定。@jones - Asifuzzaman Redoy

0
 <!DOCTYPE html>
<html>

<head>
  <script src="shared/jquery.js" type="text/javascript"></script>
  <script src="shared/shiny.js" type="text/javascript"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  <link rel="stylesheet" type="text/css" href="shared/shiny.css"/>
</head>
<style>

.cn {
    background-color: antiquewhite;
    height: 50%;
    top: 50%;
    position: relative;
}
.video-player-container{
    height: 500px;
    background-color: gray;
}
.video-container{
    min-height: 350px;

}

    </style>
<body>

  <h1>HTML UI</h1>
<div class="col-lg-12 video-player-container">
    <div class="cn"></div>

  </div>
</body>
</html>

两个js包含和另一个css,只是为了做一个分割?这是你能想到的最复杂的答案吗? :) - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接