使div更接近彼此

时间:2018-04-24 08:20:40

标签: html css bootstrap-4 responsive

我有三个cols,问题是第二个有比其他人更多的内容所以它的高度更高。

How it shoud be

That´s the result i have

内容来自其他htmls。

另外,我将不得不让divs拖放。 dropa所以flexbox不利于我的问题。

 $('.component-container').sortable({
    cursor: 'move',
    placeholder: 'ui-state-highlight',
    start: function(e, ui) {
      ui.placeholder.width(ui.item.find('.panel').width());
      ui.placeholder.height(ui.item.find('.panel').height());
      ui.placeholder.addClass(ui.item.attr("class"));
    }
                                              
                                                                                            
 <div id="fila" class="row center" style="text-align: center;">
      <div class="pan col-md-6 col-sm-12">
        <div class="row">
          <div class="pan col-md-12 col-sm-12 order-sm-first box" id="panel1">
          </div>
        </div>
        <div class="row">
          <div class="pan col-md-12 col-sm-12 box" id="panel3">
            
          </div>
        </div>
      </div>
      <div class="col-md-6 col-sm-12">
        <div class="pan col-md-12 col-sm-12 big-box" id="panel2">
        </div>
      </div>
 </div>                                                                                           
编辑

这就是我现在的代码,我有两个问题,在resposive它显示不同的panel2和panel3&amp; panel1,因为持续时间是连续的,而其他的不是。另一个问题是拖放不能正常工作。

非常感谢

5 个答案:

答案 0 :(得分:1)

您可以将前两个框插入一个div中,将较大的一个插入另一个div中。这样你就可以实现你想要的布局。试试这段代码。

<div id="fila" class="row center" style="text-align: center;">
    <div class="col-md-6 col-sm-12">
        <div class="row">
            <div class="col-md-12 order-sm-first" id="panel1">
                panel 1
            </div>
            <div class="col-md-12" id="panel2">
                panel 2
            </div>
        </div>
    </div>
    <div class="col-md-6 col-sm-12"> panel 3 </div>
</div>

答案 1 :(得分:1)

附加的代码段显示了一个解决方案,使用&#34; CSS grid&#34;。然后,您可以通过更改边距值来控制CSS中的边距。

&#13;
&#13;
.wrapper {
  display: grid;
  grid-template-columns:
  40%
  1fr
  ;

grid-template-rows:
150px
150px
;
grid-template-areas:
"left-upper-box right-box"
"left-lower-box right-box"
  ;
}

.left-upper-box {
  grid-area: left-upper-box;
  background-color: grey;
  margin: 15px 0px 15px 10px;
}

.left-lower-box {
  grid-area: left-lower-box;
  background-color: grey;
  margin: 15px 0px 15px 10px;
}

.right-box {
  grid-area: right-box;
  background-color: grey;
  margin: 15px 50px 15px 50px;

}
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>

<div class="wrapper">
    <div class="left-upper-box"></div>
    <div class="left-lower-box"></div>
    <div class="right-box"></div>
</div>

</body>
</html>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

因为我看到你正在使用Bootstrap。 您需要做的就是在一行中有两列。

然后在一列(在你的情况下左边)添加两行。

<div id="fila" class="row center" style="text-align: center;">
    <div class="col-md-6 col-sm-12">
        <div class="row">
            <div class="col-md-12 col-sm-12 order-sm-first" id="panel1">
                hello
            </div>
        </div>
        <br/>
        <div class="row">
            <div class="col-md-12 col-sm-12" id="panel2">
                Hello
            </div>
        </div>
    </div>
    <div class="col-md-6 col-sm-12">
        <div class="col-md-12 col-sm-12" id="panel3">
            helllo
            <br/>
            <br/>
            hello
        </div>
    </div>
</div>

您可以看到输出here

答案 3 :(得分:0)

<div id="fila" class="row center" style="text-align: center;">
    <div class="col-md-6 col-sm-12">
        <div class="col-md-12 col-sm-12 order-sm-first " id="panel1">				
        </div>
        <div class="col-md-12 col-sm-12" id="panel2">	
        </div>
    </div>

    <div class="clearfix "></div>

    <div class="col-md-6 col-sm-12">
        <div class="col-md-12 col-sm-12" id="panel3">				
        </div>
    </div>				
</div>

答案 4 :(得分:0)

您需要在一个&#34; col-md-6&#34;中插入2个左框。一个&#34; col-md-6&#34;然后你将高度设置为所有框

&#13;
&#13;
#left_panel,#right_panel{
	  border:2px solid red;
	  margin:30px 0;
}

#left_panel{
	  height: 200px;
}

#right_panel{
	  height: 430px;
}
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
</head>
<body>

  <div id="fila" class="row center" style="text-align: center;">
    <div class="col-md-6 col-sm-6">
	  <div class="col-md-12 col-sm-12 order-sm-first " id="left_panel">panel</div>
      <div class="col-md-12 col-sm-12 " id="left_panel">panel</div>
	</div>

	<div class="clearfix "></div>
	<div class="col-md-6 col-sm-6">
      <div class="col-md-12 col-sm-12" id="right_panel">panel</div>
	</div>
  </div>

</body>
</html>
&#13;
&#13;
&#13;