Bootstrap等高列[重复]

Posted

技术标签:

【中文标题】Bootstrap等高列[重复]【英文标题】:Bootstrap equal height column [duplicate] 【发布时间】:2016-04-05 20:24:35 【问题描述】:

考虑下面的代码:

<div class="row">
  <div class="col-xs-3"><div id="sidebar">sidebar</div></div>
  <div class="col-xs-3">content content content content content content content content content content content content content content content</div>
</div>

我希望侧边栏始终具有右栏的高度。

演示:http://www.bootply.com/FT3DVckZgp

【问题讨论】:

【参考方案1】:

将 id 赋予第二个右边的 col 并在页面加载时使用 jquery as

$("#sidebar").css("height", $("#IdOfRightDiv").height());

【讨论】:

【参考方案2】:

使用表格法。它适用于所有浏览器。将display: table 给父母,将display: table-cell 给孩子。

.row 
    display: table;


[class*="col-"] 
    float: none;
    display: table-cell;
    vertical-align: top;

这里是fiddle

另一种很酷的方法是借助边距。

.row
    overflow: hidden; 


[class*="col-"]
    margin-bottom: -99999px;
    padding-bottom: 99999px;

这里是fiddle

【讨论】:

【参考方案3】:

你可以使用 Display:table 属性来获得你想要的输出

Have Tweeted Your Code

查看以上链接

<div class="row" style="display:table">
 <div id="sidebar" class="col-xs-3" style="display:table-cell;float:none"><div>sidebar</div></div>
 <div class="col-xs-3" style="display:table-cell;float:none">content content content content content content content content content content content content content content content</div> 
</div>

【讨论】:

【参考方案4】:

您可以使用以下代码通过提供显示布局为tabletable-cell来定义相同高度的列。

定义这些 CSS 类

.container-sm-height 

  display: table;
  padding-left:0px;
  padding-right:0px;

.row-sm-height 

   display: table;
   table-layout: fixed;
   height: 100%;

.col-sm-height 

  display: table-cell;
  float: none;
  height: 100%;

对于小型设备,请使用此媒体查询

@media (min-width: 480px) 
 
 .row-xs-height 
  display: table;
  table-layout: fixed;
  height: 100%;
  width: 100%;
 
.col-xs-height 
  display: table-cell;
  float: none;
  height: 100%;
 

现在将这些类应用到您的 html 结构中,如下所示

 <body>
    <div class="row container-fluid row-sm-height">
        <row class="col-sm-3 col-sm-height" id="sidebar">
            <!--your code-->
        </row>

        <row class="col-sm-9 col-sm-height">
            <!--Your code-->
        </row>
    </div>
</body>

【讨论】:

【参考方案5】:

HTML

<div class="row">
  <div class="col-xs-3 euqlHeight"><div id="sidebar">sidebar</div></div>
  <div class="col-xs-3 euqlHeight">content content content content content content content content content content content content content content content</div>
</div>

JS

var maxHeight = 0;
$(document).ready(function() 
    $(".euqlHeight").each(function() 
        if ($(this).height() > maxHeight) 
            maxHeight = $(this).height();
        
    );
    $(".euqlHeight").height(maxHeight);
);

$(window).resize(function() 
    maxHeight = 0;
    $(".euqlHeight").removeAttr("style");
    $(".euqlHeight").each(function() 
        if ($(this).height() > maxHeight) 
            maxHeight = $(this).height();
        
    );
    $(".euqlHeight").height(maxHeight);
);

【讨论】:

以上是关于Bootstrap等高列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Bootstrap 3 等高列,同时保留列填充

Bootstrap 3 和 flexbox 的等高列

使用 Bootstrap 4.4、Wordpress 和 Bootstrap Shortcodes Ultimate 插件的 Flexbox 列等高

具有等高卡片的 Bootstrap 4 响应式卡片列

html Bootstrap等高柱

html Bootstrap等高柱