css设置两个并排的div同高

时间:2017-10-24
我有一个两列的布局,左div和右div,右边div是粉红色的背景,左边DIV里面有文字,而且左边高度大于右边div,如何让这两个并列的DIV高度一致,从而是右边div显示出同高的粉红色的背景呢?

默认情况下,块元素将消耗其父级的全部宽度。这就是他们如何满足他们的设计要求,即垂直堆叠。

然而,这种行为并没有扩展到高度。默认情况下,大多数元素是其content(height: auto)的高度。

因此,请记住这两点:

  • 除非你想要全宽,你需要定义一个块元素的宽度
  • 除非您想要内容高度,否则需要定义元素的高度

具体实现代码如下:

<style>
.Contact {
  display: flex;     /* full width by default */
  min-height: 100vh; /* use full height of viewport, at a minimum */
}

.left {
  flex: 0 0 60%;
  background-color: tomato;
}

.right {
  flex: 1;
  background-color: pink;
}

body { margin: 0; } /* remove default margins */
</style>
<div class="Contact">
  <section class="left">
    <div class="">
      <h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</h1>
    </div>
  </section>
  <section class="right">
    <img />
  </section>
</div>

在线运行

第二种方法:

<style>
.wrapper{
  position: relative;
  width: 200px;
}
.wrapper:before,
.wrapper:after{
  content: "";
  display: block;
  height: 100%;
  width: 40%;
  border: 2px solid blue;
  position: absolute;
  top: 0;
}
.wrapper:before{
  left: 0;
  background-color: red;
}
.wrapper:after{
  right: 0;
  background-color: green;
}

.div1, .div2{
  width: 40%;
  display: inline-block;
  position: relative;
  z-index: 1;
}
.div1{
  margin-right: 20%;
}
</style>
<div class="wrapper">
  <div class="div1">Content Content Content Content Content Content Content Content Content
  </div><div class="div2">Other</div>
</div>

在线运行