Html 如何将div容器与CSS垂直对齐?

Html 如何将div容器与CSS垂直对齐?,html,css,alignment,vertical-alignment,Html,Css,Alignment,Vertical Alignment,我正在寻找一个通用和完整的解决方案,这个常见的问题!我有如下HTML代码: <div id="CONTAINER"> <div id="CONTAINER_LEFT"></div> <div id="CONTAINER_RIGHT"></div> <div id="CONTAINER_CENTER"></div> </div> 我想写CSS,让我垂直对齐内部div元素,使

我正在寻找一个通用和完整的解决方案,这个常见的问题!我有如下HTML代码:

<div id="CONTAINER">
    <div id="CONTAINER_LEFT"></div>
    <div id="CONTAINER_RIGHT"></div>
    <div id="CONTAINER_CENTER"></div>
</div>

我想写CSS,让我垂直对齐内部div元素,使它们的顶边对齐。其他考虑:

  • 左侧和右侧容器具有固定宽度
  • 中心容器必须填充左侧和右侧之间的剩余宽度 正确的容器
  • 每个内部容器的高度取决于其内容物 不同的容器也会有所不同
  • 不打算重叠,目标如下 形象
  • 外容器的高度应等于最大高度 如果可能的话,使用内部容器

    这些颜色只是为了展示创意

    我对右侧和左侧容器使用了“float:left;”和“float:right;”属性,但如果中心容器的内容太多,则该容器的区域将填充浮动元素下方的空间!另外,我需要在根容器下面有一个页脚,宽度为100%;任何解决方案都应该考虑这一点! 如果您想让(中心)容器填充其下方的可用空间,您可能正在寻找人造柱技术

    其思想是,您不尝试控制列的高度,而是应用背景图像来模拟等长列

    转到著名的并进一步阅读以实现这一点,这非常简单。

    如果您打算让(中心)容器填充其下方的可用空间,您可能正在寻找人造柱技术

    其思想是,您不尝试控制列的高度,而是应用背景图像来模拟等长列


    到著名的网站上进一步阅读以实现这一点,这很容易。

    这很容易做到-

    这使用了此处概述的等高CSS列技术-

    您将主列设置为具有大量底部填充和相等的负底部边距。您的容器需要将溢出设置为隐藏。相应地调整数字,但引用Brain Fantana的话“每次工作时间的60%”

    .container{
    宽度:100%;
    溢出:隐藏;
    }
    .左{
    浮动:左;
    填充:0px 10px 0px 0px;
    宽度:90px;
    背景:红色;
    }
    .中{
    顶部:10px;
    左边距:100px;
    右边距:100px;
    背景:绿色;
    边缘底部:-2000px;
    垫底:2000px;
    }
    .对{
    浮动:对;
    背景:蓝色;
    填充:0px 10px 0px 10px;
    宽度:90px;
    }​
    左栏的一些内容。
    右栏的一些内容。
    中间一栏的一些内容。
    

    这很容易做到-

    这使用了此处概述的等高CSS列技术-

    您将主列设置为具有大量底部填充和相等的负底部边距。您的容器需要将溢出设置为隐藏。相应地调整数字,但引用Brain Fantana的话“每次工作时间的60%”

    .container{
    宽度:100%;
    溢出:隐藏;
    }
    .左{
    浮动:左;
    填充:0px 10px 0px 0px;
    宽度:90px;
    背景:红色;
    }
    .中{
    顶部:10px;
    左边距:100px;
    右边距:100px;
    背景:绿色;
    边缘底部:-2000px;
    垫底:2000px;
    }
    .对{
    浮动:对;
    背景:蓝色;
    填充:0px 10px 0px 10px;
    宽度:90px;
    }​
    左栏的一些内容。
    右栏的一些内容。
    中间一栏的一些内容。
    

    您好,您可以根据您的布局定义任何 像这样

    css

    .wraper{
        display:table;
        margin:0 auto;
        overflow:hidden;
    }
    .left{
        display:table-cell;
        background:red;
    }
    
    .center{
        display:table-cell;
        margin:0 auto;
        width:200px;
        background:green;
        height:50px;
    }
    
    
    .right{
        display:table-cell;
        background:yellow;
    }
    
    ​
    
    HTML

    <div class="wraper">
    
    
        <div class="left">left</div>
        <div class="center">Center</div>
        <div class="right">right</div>
    
    </div>
        ​
    
    
    左边
    居中
    正确的
    ​
    

    现场演示在此

    您好,您可以根据您的布局定义任何 像这样

    css

    .wraper{
        display:table;
        margin:0 auto;
        overflow:hidden;
    }
    .left{
        display:table-cell;
        background:red;
    }
    
    .center{
        display:table-cell;
        margin:0 auto;
        width:200px;
        background:green;
        height:50px;
    }
    
    
    .right{
        display:table-cell;
        background:yellow;
    }
    
    ​
    
    HTML

    <div class="wraper">
    
    
        <div class="left">left</div>
        <div class="center">Center</div>
        <div class="right">right</div>
    
    </div>
        ​
    
    
    左边
    居中
    正确的
    ​
    

    这里的实时演示

    这似乎是最简单的解决方案,适用于IE7-9、FF、Chrome、Safari和Opera:

    .container {
       overflow: hidden;
       background: grey;
    }
    
    .left {
       float: left;
       width: 200px;
       background: red;
    }
    
    .middle {
       margin-left: 200px;
       margin-right: 200px;
       background: green;
    }
    
    .right {
       float: right;
       width: 200px;
       background: blue;
    }
    

    这似乎是最简单的解决方案,适用于IE7-9、FF、Chrome、Safari和Opera:

    .container {
       overflow: hidden;
       background: grey;
    }
    
    .left {
       float: left;
       width: 200px;
       background: red;
    }
    
    .middle {
       margin-left: 200px;
       margin-right: 200px;
       background: green;
    }
    
    .right {
       float: right;
       width: 200px;
       background: blue;
    }
    

    您好,请尝试此代码

    HTML


    您好,请尝试此代码

    HTML


    您可以使用纯CSS实现这一点(参见我的示例)。这里已经很好地解释了这一点——您可以使用纯CSS来实现这一点(参见我的示例)。这里已经很好地解释了这一点——不幸的是,这在IE7中不起作用,因为IE7不支持display:table cell;不幸的是,这在IE7中不起作用,因为IE7不支持显示:表格单元格;CSS中的选项。您选择的答案不会为您提供等高列。您选择的答案不会为您提供等高列。