我有一个要在垂直约束的空间中放置的物品的清单:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
</ul>
由于我不希望列表的高度超过特定的高度,但是我可以自由地将其水平扩展,因此我想将列表分为几列,如下所示:
One Two Three
Four Five Six
或者,或者(在我看来,顺序并不重要)
One Three Five
Two Four Six
css属性column- count
允许将列表分成几列,但只接受固定数量的列。我不知道我要拥有的项目数(可以从1增加到40以上),因此,如果我将列数设置为3,则任何包含6个以上项目的列表都将过高,并且如果只有4个项目,则只有第一列有两个项目,并且看起来不均匀。
因此,理想情况下,我需要一个row-count
属性,但是它不存在。我想我也可以用JavaScript做到这一点,但我正在寻找仅CSS的解决方案。
我试过的东西:float:left
在每一个li
放列表一行。为了打破它分成两行,我需要 不 适用float:left
于N /
2的元素。我不知道该怎么做。
我也知道我可以将它分成多个ul
,每个一个两个li
,然后将float:left
它们分成多个,但是我想避免将HTML弄得一团糟。
有人对此问题有解决方案吗?
编辑: 我认为我在解释我的要求时并不清楚。我希望将列表分类为列,而不知道我要拥有多少个项目, 这样我将始终有两行 。
例如,我想拥有7个项目:
One Two Three Four
Five Six Seven
并包含3个项目:
One Two
Three
这是使用jquery的一种简单方法。我知道有人提到需要CSS方式,但是如果有人想参考这个问题,这仅供以后参考。
获取LI项的数量,然后将其除以行数,然后将该值设置为column-count属性。
jQuery
$(document).ready(function() {
var numitems = $("#myList li").length;
$("ul#myList").css("column-count",Math.round(numitems/2));
});
CSS
ul {
width: 900px;
}
li {
width: 75px;
height: 75px;
margin-top: 10px;
margin-right: 10px;
display: inline-block;
}
HTML
<ul id="myList">
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine</li>
</ul>
在这里摆弄
编辑:
使用简单的html" target="_blank">javascript的相同实现。
var ul = document.getElementById("myList");
var li = ul.getElementsByTagName("li");
var numItems = li.length;
var css = document.createElement("style");
css.type = "text/css";
css.innerHTML = "ul { column-count: " + Math.round(numItems/2) + "; }";
document.body.appendChild(css);
您需要设置UL的宽度,因为即使在设置了列数之后,行数也将取决于宽度。您也可以将其设置为100%,但是行数将根据窗口大小而改变。要将行数限制为2,可能需要UL的固定宽度。
问题内容: 使用以下HTML,将列表显示为两列的最简单方法是什么? 所需显示: 该解决方案必须能够在Internet Explorer上运行。 问题答案: 现代浏览器 利用css3列模块来支持您要寻找的内容。 CSS: 旧版浏览器 不幸的是,要获得IE支持,您将需要一个涉及JavaScript和dom操作的代码解决方案。这意味着,只要列表内容发生更改,您就需要执行将列表重新排序为列并重新打印的操作
问题内容: 我有一个Android应用程序,它显示一个网格视图,该网格视图显示: 1个 2 3 4 目前正在运行,但是我想显示网格的foreach行,其中2列具有2维数组的值(类似于ASP.Net中的GridView-作为数据源-)。 我想展示: 1 | 人1 2 | 人2 3 | 人3 4 | 人4 任何想法? 问题答案: 是否必须是网格视图?ListView可以工作吗? 我编写了一个ListV
问题内容: 我需要帮助。有什么办法可以在css / scss中显示逆序列表?类似于以下内容: 问题答案: 您可以旋转父元素,然后旋转子元素。 或者,您可以将flex框与 属性一起使用 。 尽管从技术上讲这并不是颠倒顺序,但您也可以将其 与伪元素一起使用。
问题内容: 键盘出现时如何显示完整的列表?键盘隐藏了列表的下部。 我的列表行中有一个textField。当键盘出现时,无法向下滚动以查看完整列表。键盘在列表的前面,而不在列表的“下面”。这是我的编码: 有人可以帮我怎么做吗? 非常感谢你。 问题答案: 这里有一个处理键盘操作的,您可以订阅这样的键盘事件: 然后像这样使用它:
对于一个项目,我需要创建一个搜索栏。搜索结果需要在一个网格中显示。这些项目应该彼此紧挨着,并且有两行高。如果有更多的结果,我需要显示一个按钮来显示所有的结果。 我面临的问题是,我不知道如何完成这一点。我使用了flexbox和flex-wrap来使新项目在下一行中显示,当它们不适合上一行时。但我不知道如何只显示前两行。 null null
我正在编写一个掷骰子的程序。我对java还很陌生,因为我正在上课。我在这个程序的不同包中使用了多个类,我想弄清楚的是,在一个类中,对于我的包对OfDice,我在一个类中创建了对象对OfDice,die1和die2。现在我有了另一个包rollDice,我的目标是使用对OfDice类滚动两个骰子并显示滚动。我正在纠结的是如何准确地做到这一点。当我滚动骰子时,我的结果显示,就好像我只滚动了一个骰子一样。