我有一个<li>
元素列表,其中<ul>
的固定大小为150px(高度)和400px(宽度)
注意:此列表是动态的!
谢谢大家的帮助
答案 0 :(得分:3)
你不能。
LI
垂直或水平移动,它们不会换成新的颜色。
如果你想要如图所示的列表,你需要使用多个UL
并浮动它们。
如果您的LI列入了很长的列表,您可以编写一些JavaScript,将其分解为多个UL。 CSS本身无法做到这一点。
答案 1 :(得分:3)
也许回答旧帖子。但是,如果您希望列表项是动态的并且在4列中,则可以在CSS中使用它。
div {
-webkit-columns: 100px 4; /* Chrome, Safari, Opera */
-moz-columns: 100px 4; /* Firefox */
columns: 100px 4;
}
围绕<ul>
包裹div而不是使用此css。
正在使用 DEMO
答案 2 :(得分:1)
您需要使用多个容器并在它们之间分配元素。 CSS目前不支持列式布局,例如您正在尝试的内容。
无论如何,如果内容是在服务器端生成的,那么您可以在那里分隔列。否则你可以使用JavaScript在客户端进行。如果你不介意jQuery,像Masonry这样的东西可以解决所有繁重的问题。
答案 3 :(得分:1)
<ul>
<li></li>
...
</ul>
<ul>
<li></li>
...
</ul>
<ul>
<li></li>
...
</ul>
设置ul元素的宽度并让它们浮动
ul {
display: block;
width: 200px;
float: left;
}
以下元素应该是clear:left;
答案 4 :(得分:0)
您可以使用css显示属性。
ul li {
display: inline-block;
}
答案 5 :(得分:0)
你可以简单地漂浮它们......
li { float: left; width: 200px; }
或使用内联块....
li { display: inline-block; width: 200px; }
这会导致列表项水平显示而不是垂直显示。
如果您希望列表项垂直列出,则需要为每个列表使用多个容器(ul
)。
答案 6 :(得分:0)
当你认为你的问题有点创意时,就会有一个相对简单的解决方案。
您必须在一列中确定最多有多少李。当您动态获取数据时,您可以直接动态创建ul。 它可以在服务器端实现,也可以在客户端实现,而不会出现问题。
答案 7 :(得分:0)
由于您知道UL和LI元素的像素尺寸,因此您至少可以在理论上轻松定位LI。例如:
<!DOCTYPE html>
<html>
<head>
<title>example<title>
<style type="text/css">
ul { border : 2px solid blue ; height : 200px }
li { height : 25px; }
li:nth-child(9),
li:nth-child(17),
li:nth-child(25),
li:nth-child(33) {
margin-top : -200px
}
li:nth-child(8) ~ li { margin-left : 150px }
li:nth-child(16) ~ li { margin-left : 300px }
li:nth-child(24) ~ li { margin-left : 450px }
li:nth-child(32) ~ li { margin-left : 600px }
</style>
</head>
<body>
<ul>
<li>LI number 1</li>
<li>LI number 2</li>
...
<li>LI number 36</li>
</ul>
</body>
</html>
UL块只会与最新列一样高,因此您需要明确设置其高度。