【问题标题】:Horizontal alignment of containers容器的水平对齐
【发布时间】:2016-09-15 21:44:56
【问题描述】:

希望 div 水平对齐。左边的容器(带有蓝色边框)可能有一个固定的高度。其他容器(带有红色边框)应与左侧蓝色容器水平对齐,无论蓝色容器的高度如何。

.cursor-pointer {
    cursor: pointer;
}

.equal-height {
  display: flex;
  display: -ms-flex;
}

.border-red {
  border-style: solid;
  border-width: 2px;
  border-color: #FF0000;
}
.border-blue {
  border-style: solid;
  border-width: 2px;
  border-color: #2E2EB8;
}
.border-green {
  border-style: solid;
  border-width: 2px;
  border-color: #00CC00;
  margin: 5px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row border-green equal-height">
        <div class="col-xs-6 border-blue">
            <div class="panel panel-default">
                <div class="panel-heading">Z</div>
                <div class="panel-body">
                    a<br>
                    a<br>
                    a<br>
                    a<br>
                    a<br>
                    a<br>a<br>a<br>a<br>a<br>

                </div>
            </div>
        </div>
        <div class="col-xs-6">
            <div class="border-red">
                <div class="panel panel-default">
                    <div class="panel-heading">X</div>
                    <div class="panel-body">
                        c<br>
                        c<br>
                        c<br>
                    </div>
                </div>
            </div>
            <div class="border-red">
                <div class="panel panel-default">
                    <div class="panel-heading">Y</div>
                    <div class="panel-body">

                    </div>
                </div>
            </div>
        </div>        
    </div>

【问题讨论】:

    标签: html css twitter-bootstrap flexbox


    【解决方案1】:

    使用引导程序时,您需要将网格包装在容器元素中。

    列本身具有填充,这就是您在第二列上看到填充的原因。 如果你不想要它,你可以删除它。 (我是内联的,但我建议你添加一些像 .noRPad 这样的类)

    您可能想知道为什么蓝色元素没有填充?确实如此,但您实际上将您的蓝色边框类赋予了列本身。如果将它移到列内,您会看到与边框红色元素相同的结果。

    这是https://jsfiddle.net/fegm9pc4/的演示

    这是一个通过添加类 .noPad https://jsfiddle.net/fegm9pc4/2/ 从列中删除填充的演示

    示例:

    .cursor-pointer {
    cursor: pointer;
    }
    
    .equal-height {
      display: flex;
      display: -ms-flex;
    }
    
    .border-red {
      border-style: solid;
      border-width: 2px;
      border-color: #FF0000;
      flex-grow: 1;
    }
    .border-blue {
      border-style: solid;
      border-width: 2px;
      border-color: #2E2EB8;
    }
    .border-green {
      border-style: solid;
      border-width: 2px;
      border-color: #00CC00;
      margin: 5px;
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
    <div class="container">
    <div class="row border-green equal-height">
        <div class="col-xs-6 border-blue">
            <div class="panel panel-default">
                <div class="panel-heading">Z</div>
                <div class="panel-body">
                    a<br>
                    a<br>
                    a<br>
                    a<br>
                    a<br>
                    a<br>a<br>a<br>a<br>a<br>
    
                </div>
            </div>
        </div>
        <div class="col-xs-6" style="display: flex;flex-direction: column;padding-right: 0;">
            <div class="border-red">
                <div class="panel panel-default">
                    <div class="panel-heading">X</div>
                    <div class="panel-body">
                        c<br>
                        c<br>
                        c<br>
                    </div>
                </div>
            </div>
            <div class="border-red">
                <div class="panel panel-default">
                    <div class="panel-heading">Y</div>
                    <div class="panel-body">
    
                    </div>
                </div>
            </div>
        </div> 
        </div>
    </div>

    【讨论】:

    • 是的,我可以负担得起 flex,因为我正在支持 IE 10+。是的,我说的是身高。右侧红色容器的累积高度应等于左侧蓝色容器,反之亦然。
    • div 看起来对齐得很好。我也可以对齐里面的容器吗?我认为有填充,对吧?
    • 您希望如何对齐它们?我想你可能对对齐是什么有误解。如果你能画出它的样子就好了。
    • 目前蓝色和红色 div 边框上下对齐。想要对齐面板的顶部和底部。面板的顶部已经对齐。查看左下方和右下方的面板。它们的底部没有对齐。这就是重点。
    • 来自 col-xs-6 类。它本身带有填充样式。我想您可以正确删除填充,它将填充容器的其余部分。我将编辑我的答案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2017-09-04
    • 2012-12-07
    • 1970-01-01
    • 2015-03-07
    • 2017-06-29
    • 1970-01-01
    相关资源
    最近更新 更多