html - 如何隐藏不适合固定高度框的额外列表项?

标签 html css html-lists overflow

我有包含 <ul> 的盒子列出内容。这些框的宽度略有变化,但具有固定高度。此列表内容是动态生成的,包含 0 - 200 个列表元素。但是,由于盒子的高度,我通常一次只能显示 3-5 个。 没关系

但是,我一直通过使用 ASP.NET MVC 代码人为地限制这些列表只显示前 4 个元素。这在大约 90% 的情况下有效 - 如果所有列表项都有大量文本(见下文),一些框仍然会溢出。

Example of overflow problem

我想知道 CSS 中是否有一种方法可以像 overflow 那样使用属性或其他东西并隐藏不适合的列表元素?我试过overflow: hidden<ul> 上无济于事。我想这是因为列表不知道盒子的高度或其他东西

说明:理想情况下,您不会看到 <li> 的任何部分那不合适。看这个fiddle

我不知道这些元素中的任何一个会提前多长时间,或者它们可能有多少元素,而且盒子的宽度/高度是不可修改的。 有什么想法吗?

原始 fiddle : http://jsfiddle.net/emowbngx/1/

Box HTML 示例:

<div class="box">
    <ul>
        <li>List item</li>
        <li>these LI's are dynamically generated</li>
        <li>I have no idea of their length ahead of time</li>
        <li>Seth Rollins</li>
    </ul>
</div>

框 CSS:

.box {
    height: 110px;
    width: 350px;
    min-width: 350px;
    float: left;
    margin: 8px 16px 8px 0;
    position: relative;

    border: 1px solid black;
}

最佳答案

我可能已经找到一种使用纯 CSS 解决方案来完成此操作的方法。它涉及使用 flexbox 和一些作弊来使用 :before 伪元素显示元素符号。 它甚至允许在容器内将可见的 li 元素垂直居中。

fiddle :https://jsfiddle.net/aq34sb17/2/

CSS

ul {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100px;
    max-width: 180px;
    overflow: hidden;
    padding-left: 15px;
    justify-content: space-around;
}

li {
    display: block;
    width: 100%;
    padding-left: 10px;
    position: relative;
}

li:before {
    content: '\2022';
    position: absolute;
    left: -5px;
}

这是应用于您的 fiddle 的解决方案:http://jsfiddle.net/emowbngx/7/

关于html - 如何隐藏不适合固定高度框的额外列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103385/

相关文章:

css - 如何为所有使用 vw 单位的元素指定最大 vw 大小?

html - 是否可以只为 <p> 而不是 <a> 元素设置不透明度?

javascript - 解决 Html5 本地文件访问

html - 用于 HTML 电子邮件的特定于平台的 CSS

php - 如何创建 Mail Chimp 风格的图表和图形

html - Internet Explorer 7 和列表元素符号

html - 如何在 <li> 列表样式中添加加号 (+)?

php - 在身份验证尝试中传递第二个参数后,记住登录页面上的用户凭据不起作用

javascript - 使用钢笔工具在 Canvas 上流畅地绘制一条线,而无需重新绘制所有其他线

html - 为什么我的 <UL> 不会扩展以包装它包含的 <LI> 元素?