美文网首页
高度相等的列

高度相等的列

作者: 陆lmj | 来源:发表于2017-09-07 17:56 被阅读0次

如下图所示效果,可以使用表格实现,本文采用在CSS中实现。

标记如下:

<div class="wrapper">
    <div class="box">
        <h1>Andy Budd</h1>
        <p> ... </p>
        <div class="bottom"></div>
    </div>
    <div class="box">
        <h1>Richard Rutter</h1>
        <p> ... </p>
        <div class="bottom"></div>
    </div>
    <div class="box">
        <h1>Jeremy Keith</h1>
        <p> ... </p>
        <div class="bottom"></div>
    </div>
</div>

在实例中,有3个div,每列一个div,每个div中包括标题、内容、空的div,这个空的div作为底角的钩子,将这3个div放入容器div中,使用容器div限制高度,下述代码给框设置样式:

.wrapper {
    width: 100%;
}
.box {
    width: 250px;
    margin-left: 20px;
    float: left;
    display: inline;
    padding: 20px;
    background: #89ac10 url(chapter08/img/top.gif) no-repeat left top;  /*图片使得上面两个角成为圆角*/
}

运行结果如下:产生3个高度不一致的列

产生高度相等的三列的关键技术在于:给每个框设置大的底内边距(220px),然后用数值相似的负外边距(-200px)来消除这个高度。

.wrapper {
    float: left;
    border: solid 1px black;
    width: 100%;
}
.box {
    width: 250px;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 20px;
    padding-bottom: 220px;
    margin-bottom: -200px;
    margin-left: 20px;
    float: left;
    display: inline;
    background: #89ac10 url(chapter08/img/top.gif) no-repeat left top;
}

通过给容器浮动、添加边框,可以看到这样导致每个列溢出容器元素。

.wrapper {
    border: solid 1px black;
    width: 100%;
    overflow:hiddden;
}
.box {
    width: 250px;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 20px;
    padding-bottom: 220px;
    margin-bottom: -200px;
    margin-left: 20px;
    float: left;
    display: inline;
    background: #89ac10 url(chapter08/img/top.gif) no-repeat left top;
}

如果把容器的overflow设置为hidden,列在最高点被剪裁,220px和-200px形成的20px的差值在每个框的底部形成可见的内边距。

下面把列的底边定位在正确的位置,需要它们与容器的底部对齐:为此,把容器的position设置为relative,然后将空div的position设置为absolute,再将它们的bottom设置为0,只要给它们设置正确的宽高,就能应用底部背景图像。

.wrapper {
    border: solid 1px black;
    width: 100%;
    overflow:hiddden;
    position: relative;
}
.box {
    width: 250px;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 20px;
    padding-bottom: 220px;
    margin-bottom: -200px;
    margin-left: 20px;
    float: left;
    display: inline;
    background: #89ac10 url(chapter08/img/top.gif) no-repeat left top;
}
.bottom {
    position: absolute;
    bottom: 0;
    height: 20px;
    width: 290px;
    background: #89ac10 url(chapter08/img/bottom.gif) no-repeat left bottom;
    margin-left: -20px;/*因为在.box中设置了margin-left为20px,则.bottom向右移动了20px(如最后一图),所以设置-20px让它左移*/
}

相关文章

  • 高度相等的列

    如下图所示效果,可以使用表格实现,本文采用在CSS中实现。 标记如下: 在实例中,有3个div,每列一个div,每...

  • 散列

    散列值与相等性 等值对象的散列值必须相等。散列相等未必等值。 散列表算法 其他说明 key必须是可散列的。可散列需...

  • Android ScrollView+ListView item

    1.ListView item的高度相等的处理: 2.ListView item的高度不相等的处理:

  • 瀑布流布局

    瀑布流:每个内容的宽度相等,高度是随机的布局的基本原则,第一排排满之后,下面的元素将放到高度最短的那一列下面。 实...

  • 如何利用flex布局实现各种布局

    flex布局是一种很方便的布局,不用自己设置同行的div的高度相等,它们即可高度相等,并且可以方便的实现栅格系统等...

  • 论文代码

    是指 按照 values当中的第五列进行编码吗? 第五列是PM2.5,而且PM2.5指数相等的话 编码值也相等。 ...

  • 【矩阵】12、矩阵的运算1

    一、知识点 线性运算 1.相等 两个矩阵相等是指这两个矩阵有相同的行数与列数,且对应元素相等.即同型:对应元素相等...

  • 瀑布流

    瀑布流布局原理 1.瀑布流中的元素宽度相等,高度不一致2.先确定好排几列,可以固定宽度,也可以用JS动态计算列数列...

  • CSS垂直居中

    1.对于知道高度的元素可以设置上下padding相等; 2.设置line-height和height相等 3.利用...

  • css实现左右高度相等

网友评论

      本文标题:高度相等的列

      本文链接:https://www.haomeiwen.com/subject/ljgijxtx.html