5

我有一个关于将列表项的内容放在底部基线的问题。

看看这个 :

    <ul>
    <li class="box">
        <div class="close" ></div>
        <div class="head"> Header </div>
        <p class="area">
            This is Paragraph
        </p>
    </li>
    <li class="box">
        <div class="close" ></div>
        <div class="head"> Header </div>
        <p class="area">
            This is Paragraph
        </p>
    </li>
</ul>

和 JQUERY 部分:

    $( document ).on( "click", "ul li .head", function() {

    $(this).parent('li').toggleClass( 'minimize' );
    $(this).parent('li').children('p').toggle();

});

最后是 CSS

ul { position: static; bottom: -4px; width: 1150px;  min-height: 250px; overflow:     hidden; 
}
ul li {
position: relative;
border: 1px solid lightgray;
width: 260px;
background-color: #f2f2f2;
display: inline-block;
margin: 0 2px;
}
ul li .head {
font-weight: bold;
padding: 5px;
background-color: #6D84B4;
color: white;
border: 1px solid #6D84B4;
text-align: right;
}
p.area { padding: 8px; height: 200px; }
.minimize { vertical-align: bottom;}

这是 jsFiddle 链接:

链接到 jsFiddle

描述
当我只单击一个标题时,段落隐藏并且标题位于底部。(好的)但是当我单击另一个标题时,它们都再次跳到顶部。

对此有任何帮助。
谢谢。


编辑和解决:
嗯,我希望有人可以帮助我以 css 方式解决这个问题。
但我使用 jQuery 做了一个技巧。这是工作。但我不知道这是不是一个好方法。

这是代码:
更新的代码

4

2 回答 2

4

vertical-align 的问题在于它将元素与其inline相邻的兄弟元素对齐。当它们都被最小化时,因为它们的高度相同,它们看起来彼此内联。

我建议使用固定高度的position: absolute;and ,尽管这需要对您当前的样式进行一些调整。bottom: 0;ul

编辑:

如何将 ul 放入容器 div 中,并将 ul 绝对定位到其底部。

演示

唯一的区别是 ul 周围的 div ,我更改了以下样式:

.container { 
  position: relative;
  width: 1150px;  
  min-height: 282px; 
  overflow: hidden; 
  border: 1px solid #000;
  padding: 0;
  margin: 0;
}
ul{
  overflow: hidden;
  position: absolute;
  bottom:0;
  padding: 0;
  margin: 0;
}
于 2013-10-03T10:36:55.317 回答
1

添加

white-space: nowrap;

到 ul

ul { position: static; bottom: -4px; width: 1150px;  min-height: 250px; overflow:     hidden; 
white-space: nowrap;}

希望它有效。:) 我通过删除更新代码中的新 jQuery 部分并添加它来尝试此代码。

于 2013-10-03T12:23:34.500 回答