html div的问题不包含它们应该包含的内容

时间:2015-03-27 15:12:13

标签: html css position css-position

http://i.stack.imgur.com/zg35O.png

我的div id =" topcol"显示出比它应该小得多的区域。它应该包含4"选项"。选项是相对的,因此选项标题可以是绝对的,并覆盖每个选项中的图像。

我意识到这可能是一个非常基本的错误,但我已经挣扎了好几个小时

html:
<div id="cols">
            <div id="topcol">
                <h1 id="content_title">BrightWell Smart Page Services</h1>
                <div class="options" id="op1" name="General Links"><img class="optionicons" src="generalLinks.jpg"/><span class="optiontitle">General Links</span></div>
                <div class="options" id="op2" name="Useful Online Tools"><img class="optionicons" src="Toolbox.jpg"/><span class="optiontitle">Useful Online Tools</span></div>
                <div class="options" id="op3" name="IT Links"><img class="optionicons" src="ITSupport.jpg"/><span class="optiontitle">IT Links</span></div>
                <div class="options" id="op4" name="Utility"><img class="optionicons" src="utility.jpg"/><span class="optiontitle">Utility</span></div>
            </div>
            <div id="botcol">
                <div id="infopanel">

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

css:
html    {
    font-family: 'FuturaW01-LightCondense 774878',Helvetica,Arial,sans-serif;
    font-weight: lighter;
}
#cols {
    z-index:1;
    position: absolute;
    top:0;
    left:0;
    height:100%;
    width:100%;
}
#topcol {
    height:auto;
    width:100%;
}
#botcol {
    width:100%;
}

#content_title {
font-size: 32px;
line-height: 1.2;
}
.options {
    margin-left:2.5%;
    margin-right:2.5%;
    height:30%;
    width:19%;
    float:left;
    border: black solid 1px;
    position:relative;
}
#op1{

}
#op2{

}
#op3{
    float:right;
}
#op4{
    float:right;
}
.optiontitle {
    color: blue;
    position:absolute;
    top:0;
    left:0;
    text-align:center;
    font-size:200%;
    width:100%;
}
.optionicons {
    height:100%;
    width:100%;
}
#infopanel {
    width:100%;
    height:100%;
}

5 个答案:

答案 0 :(得分:4)

由于你浮动了子div,所以它们从正常流中移除,而父(topcol)就像它们不在那里一样崩溃。您可以将overflow:auto添加到#topcol规则中,以恢复您之后的行为。

答案 1 :(得分:2)

#topcol {
    height:auto;
    width:100%;
    overflow:auto
}

添加溢出:auto;会这样做

编辑:似乎有人在我面前有这个答案

答案 2 :(得分:1)

如果你从你的CSS中删除浮动:它对我有效。

JSBin example

我删除了这些家伙。

#op1{

}
#op2{

}
#op3{
    float:right;
}
#op4{
    float:right;
}

这就是你所追求的或者你在寻找别的东西吗?

答案 3 :(得分:1)

尝试添加到#topcol clearfix hack中,以便它可以容纳其浮动的孩子。

#topcol {
height:auto;
width:100%;
}

#topcol:after {
  content: "";
  display: block;
  clear: both;
}

答案 4 :(得分:0)

制作这些图片背景图片,并且不要将position属性用于任何元素,请尝试浮动和边距。