坚持按钮到元素的底部

时间:2012-07-10 14:20:17

标签: html css html5 css3

当子元素的数量变化时,有没有办法将子元素元素粘贴到父元素的底部?

父元素是固定高度,并且在子溢出的情况下可以垂直滚动。在这种情况下,按钮应该位于子列表的末尾,但是如果没有子节点,或者子节点大小不会将父元素推送到溢出,则它应该位于父元素的底部。

这有纯粹的CSS解决方案吗?

由于

3 个答案:

答案 0 :(得分:4)

*编辑更稳固的方法:

基本上,如果我理解正确,您可以使用sticky footer逻辑 - 只需在面板中:

HTML:

<div class="panel-container">
    <div class="panel-content">
        <div class="wrapper">
            <p>asdfasdfasdfadfs</p>
            <!--<p>asdfasdfasdfadfs<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></p>-->
            <div class="push"></div>
        </div>
        <div class="footer">
            <button>Click click!</button>
        </div>
    </div>
</div>

CSS

.panel-container {width:300px;height:300px;margin:20px;background:#f2f2f2;overflow:auto;}
.panel-content {
    height: 100%;
}
.wrapper {
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -30px; 
}
.footer, .push {
    height: 30px; /* .push must be the same height as .footer */
}
.footer {background:#ccc;}

工作样本: http://jsfiddle.net/9SHdN/47/(取消注释已注释掉的<p>以查看长文本滚动)

答案 1 :(得分:1)

好的,我不知道我是否真的理解你的问题,但这是一个尝试:

父div:

<div class="options_div"> 
   <p>Text inside</p>

   <ul class="options">
       <li>option 1</li>
       <li>option 2</li>
       <li>option 3</li>
   </ul>

   <input type="button" name="go" value="Goooo!" />
</div>

CSS:

.options_div {
    width: 300px;
    height: 200px;
    overflow: scroll;
}

.options_div>ul {
    list-style: none;
}

.options_div>ul>li {
    /* do what everrrr you want with it */
}

此代码使用底部的按钮生成一个200px高的div。如果ul中有任何选项,则按下按钮并始终保持在列表的末尾。

希望这有帮助!

答案 2 :(得分:1)

这是一个想法:

.panel {position:relative;height:300px;width:300px;background:#f2f2f2;overflow:auto;}

.varyingContent { height:280px; display:table-cell; }

.button { position:relative; height:20px;}

<div class="panel">
        <div class="varyingContent">
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        asdfadf
        <br />
        <br />
        </div>
        <button class="button">test</button>
    </div>

希望这有帮助