获取背景以拉伸到内容的完整高度

时间:2013-05-17 14:58:11

标签: html css html5 css3

我的代码 http://codepen.io/leongaban/pen/sBvfL

因此有一个奇怪的问题,我试图让#portfolio div的背景拉伸以包含下面的缩略图,这些缩略图位于投资组合div内的ul列表中。

但100%或自动不会影响身高。我必须设置一个静态高度,如1000px。获得背景以遮盖拇指。但是我试图不设置静态高度,因为缩略图会变长。

也许我编码太久了,你会怎么编码呢?


HTML

<div id="portfolio">

  <div class="portfolio-nav">
       <h1>Portfolio</h1>
  </div>

        <div id="showcase-holder">

            <div id="showcase-div">

            <ul id="portfolio-thumbs">

                <li>
                    <a href="/portfolio/chipestimate">
                        <img class="role-thumb" src="http://leongaban.com/images/thumb_chipestimate.jpg" alt="ChipEstimate"/>
                        </a><p>ChipEstimate</p>

                </li>

                <li>
                    <a href="/portfolio/shabang" title="Shabang">
                        <img class="role-thumb" src="http://leongaban.com/images/thumb_shabang.jpg" alt="Shabang"/>
                        </a><p>Shabang</p>

                </li>
        </ul>
    </div>
 </div>

CSS

body {
    background: brown;
}

#portfolio {
    position: relative;
    width: 100%;
    height: 50%;
    background: #fff;
    border-top: 2px solid #ccc;
    z-index: 1;
}

#portfolio ul { list-style: none; }

.portfolio-nav { margin: 0 0 20px 0; }

.portfolio-nav h1 {
    padding: 30px 0 10px 0;
    text-align: center;
    font-size: 2.5em;
    font-weight: 700;
    color: #d74927;
    text-shadow: 1px 1px #ccc;
}

#showcase-holder {
    position: relative;
    width: 80%;
    height: 100%;
    margin: 0 auto;
    border-bottom: 2px solid #ccc;
}

#portfolio-thumbs {
    position: relative;
    float: left;
    list-style-type: none;
    margin: 0 0 40px 0;
    padding: 0 0 0 5%;
    width: 100%;
    height: 100%;
}

#portfolio-thumbs li {
    position: relative;
    float: left;
    width: 20%;
    margin: 1%;
    text-align: center;
    padding: 5px 5px 15px 5px;
    background-size: 100% auto;
    overflow: hidden;
    background: white;
    -webkit-transition: background .3s;
    -moz-transition: background .3s;
    -ms-transition: background .3s;
    transition: background .3s;
}

#portfolio-thumbs li:hover {
    color: #fff;
    background: #d74927;
    -webkit-transition: background .5s;
    -moz-transition: background .5s;
    -ms-transition: background .5s;
    transition: background .5s;
}

#portfolio-thumbs li a {
    color: #333;
    text-decoration: none;
}

#portfolio-thumbs li p {
    padding: 10px 0 0 0;
}

#portfolio-thumbs li img.role-thumb {
    width: 95%;
    min-width: 170px;
    padding-top: 5px;
}

3 个答案:

答案 0 :(得分:2)

如果孩子是亲戚,父母通常会扩大到孩子的身高。

  • 您可以移除位置和浮动以完成扩展。
  • 为了扩展基于定位子项的parentdiv,请尝试overflow:auto;在#portfolio上。这将使#portfolio扩展到其子节点的高度。正如您的示例fork所示。

overflow: auto;实际上会让您的浏览器决定,这通常会将其呈现给overflow: hidden;。虽然我倾向于使用overflow: auto;来防止滚动条出现问题,因为页面可能会在以后扩展。

答案 1 :(得分:1)

您已将float添加到li个元素,这意味着父级不会展开以包含这些元素。

您可以通过添加空地div解决此问题。

<div style="clear:both;"></div>

showcase-holder div。

之后

答案 2 :(得分:1)

overflow: hidden#showcase-div添加#portfolio-thumbs应该为您完成。

http://jsfiddle.net/5SFFP/