代码:
#left {
background-color: rgba(255,0,0,0.3);
}
#right {
background-color: rgba(0,255,0,0.3);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="col-xs-3" id="left">
<p>short</p>
</div>
<div class="col-xs-3" id="right">
<p>long</p><p>long</p><p>long</p><p>long</p><p>long</p>
</div>
</body>
如您所见,左侧容器和右侧容器的高度不同。有人可以给我一些关于使它们具有相同高度的建议吗?
答案 0 :(得分:5)
只需在包装父级上声明display: flex
即可。这意味着您必须将列包装在新的<div>
中,例如:
<div class="row row-equal-height">
<div class="col-xs-3" id="left">
<p>short</p>
</div>
<div class="col-xs-3" id="right">
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
</div>
</div>
对于CSS,您可以这样做:
.row-equal-height {
display: flex;
}
但是,这意味着您必须依赖browser support for CSS3 flexbox specification。好消息是,凭借供应商前缀,它今天得到了令人惊讶的广泛支持(> 97%)。
见下面的概念验证:
#left {
background-color: red;
}
#right {
background-color: green;
}
.row-equal-height {
display: flex;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="row row-equal-height">
<div class="col-xs-3" id="left">
<p>short</p>
</div>
<div class="col-xs-3" id="right">
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
</div>
</div>
</body>
&#13;
display: table
您应该将此视为最后沟渠解决方案,因为众所周知,您应该不使用表格进行布局。但是,如果你想支持根本不支持flexbox的浏览器(提示IE9及以下),这可能是你唯一的出路:
#left {
background-color: red;
}
#right {
background-color: green;
}
.wrapper {
display: table;
border-collapse: collapse;
width: 50%;
}
.row {
display: table-row;
}
.row > div {
display: table-cell;
float: none;
width: 50%;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="wrapper">
<div class="row">
<div class="col-xs-3" id="left">
<p>short</p>
</div>
<div class="col-xs-3" id="right">
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
<p>long</p>
</div>
</div>
</div>
</body>
&#13;
答案 1 :(得分:3)
你应该给他们一个额外的id并添加
display: flex;
到那个id
答案 2 :(得分:1)
获得左边div的高度;我猜这是#left
div;并将其分配给变量。
var setHeight = $("#left").height();
然后你可以使用jQuery来获得正确的div并使用变量分配内容高度。
$("#right").height(setHeight);
就这么简单。最终的代码将如下所示。
var setHeight = $("#left").height();
$("#right").height(setHeight);