将CSS容器高度设置为子列的最低公共高度

时间:2016-05-21 00:13:18

标签: css css-float

如何通过仅将css设置容器高度设置为最短柱的高度以避免白色空隙?将模拟colums(显示:table *或float columns)

╔═════════════╤══════════════╤═════════════╗
║ ┌─────────┐ │ Shortest col │ ┌─────────┐ ║
║ └─────────┘ │ defines      │ └─────────┘ ║
║ ┌─────────┐ │ container    │ ┌─────────┐ ║
║ └─────────┘ │ height       │ └─────────┘ ║
║ ┌─────────┐ │ ┌─────────┐  │ ┌─────────┐ ║
║ └─────────┘ │ └─────────┘  │ └─────────┘ ║
║ ┌─────────┐ │ ┌─────────┐  │ ┌─────────┐ ║
║ └─────────┘ │ └─────────┘  │ └─────────┘ ║
╚══════════════════════════════════════════╝
│ ┌─────────┐ │              │ ┌─────────┐ │
│ └─────────┘ │              │ └─────────┘ │
└─────────────┘              │ ┌─────────┐ │
                             │ └─────────┘ │
                             │ ┌─────────┐ │
                             │ └─────────┘ │
                             └─────────────┘

更新:寻找仅限css的解决方案

1 个答案:

答案 0 :(得分:0)

我知道你在帖子中没有提到jQuery,也没有在标签中提及,但这是一个解决方案。

您可以执行一项功能来获取每个col的高度,保存较小的值并将其设置为容器。

我设置overflow-y可见,这样你就可以看到js



setheight();

function setheight(){
	$('.container').css('height', getminheight()+'px');
}

function getminheight(){
	var col = $('.container > .col'),
  		height;
  $(col).each(function(){
  	height = $(this).height() > height ? height : $(this).height();
  });
  return height;
}

* {
  box-sizing: border-box;
}

.container {
  background: #ef4375;
  width: 100%;
  overflow-y: scroll;
  float: left;
}

.container .col {
  width: 33.3%;
  float: left;
}

.container .col:nth-child(1){
  background: #97b344;
  height: 150px;
}

.container .col:nth-child(2){
  background: #febb39;
  height: 100px;
}

.container .col:nth-child(3){
  background: #33a1ba;
  height: 200px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="container">
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
</div>
&#13;
&#13;
&#13;