Html 下拉式布局-如何制作;“列”;
我有很多人使用的标准下拉布局,嵌套在Html 下拉式布局-如何制作;“列”;,html,css,drop-down-menu,multiple-columns,Html,Css,Drop Down Menu,Multiple Columns,我有很多人使用的标准下拉布局,嵌套在元素中的元素。事情是这样的:我想让那些子元素显示在列中。假设我有20个项目,我想要四行五个元素。我通过在每组5个列表项周围输出一个标记来实现这一点,结果愚蠢地忘记了span不允许作为无序列表的直接子项。例如 <span class="col"> <li>Item</li> <li>Item</li> <li>Item</li> <li>
元素中的
元素。事情是这样的:我想让那些子
元素显示在列中。假设我有20个项目,我想要四行五个元素。我通过在每组5个列表项周围输出一个
标记来实现这一点,结果愚蠢地忘记了span不允许作为无序列表的直接子项。例如
<span class="col">
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</span>
项目
项目
项目
项目
项目
这在视觉上很好,但显然无法验证。我已经到处寻找解决这个问题的方法,我真的被卡住了。有人知道如何在列中显示这些列表项吗?我还读过(不知道)
元素可能只有
、
和
作为父元素,目前没有太多用处。我能想到的最好的办法是
<ul>
<li></li>
<li></li>
<li>
<ul><!--drop down with columns-->
<li><!--column-->
<ul>
<li></li>
<li></li>
</ul>
</li>
<li><!--column-->
<ul>
<li></li>
<li></li>
</ul>
</li>
<li><!--column-->
<ul>
<li></li>
<li></li>
</ul>
</li>
<li><!--column-->
<ul>
<li></li>
<li></li>
</ul>
</li>
</ul>
</li>
</ul>
-
-
-
-
-
…这看起来非常浪费HTML。有什么想法吗
谢谢,丹。sTry和一些css
将类添加到行:
<li><!--column-->
这应该能奏效
编辑:
我仍然不确定我是否理解这个问题,但我会再试一次:)
.栏目{
浮动:左;
}
使用浮动div是否减少了对html代码的浪费?(因为在我看来,你的嵌套li看起来很完美)。sTry带有一些css
将类添加到行:
<li><!--column-->
这应该能奏效
编辑:
我仍然不确定我是否理解这个问题,但我会再试一次:)
.栏目{
浮动:左;
}
使用浮动div是否减少了对html代码的浪费?(因为在我看来,你的嵌套li看起来很完美)。如果IE 9和更早版本不是优先考虑的,你可以使用CSS列来实现你想要的: 不支持它的浏览器(即6、7、8、9)仍然可以很好地显示菜单,除非是在一个垂直的直列中(这是菜单显示的通常方式,所以应该可以)。或者,您可以对不支持的浏览器使用polyfill 示例代码:
<ul class="parent-list">
<li>Item 1</li>
<li>Item 2</li>
<li>Daddy 1
<ul class="child-list">
<li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li>
<li>Child 4</li>
<li>Child 5</li>
<li>Child 6</li>
<li>Child 7</li>
<li>Child 8</li>
<li>Child 9</li>
<li>Child 10</li>
<li>Child 11</li>
<li>Child 12</li>
<li>Child 13</li>
</ul>
</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
.parent-list > li {
float: left;
}
.child-list {
position: absolute;
width: 400px;
-webkit-column-width: 100px;
-moz-column-width: 100px;
}
.child-list > li {
width: 100px;
}
- 项目1
- 项目2
- 爸爸1
- 儿童1
- 儿童2
- 儿童3
- 儿童4
- 儿童5
- 儿童6
- 儿童7
- 儿童8
- 儿童9
- 儿童10
- 儿童11
- 儿童12
- 孩子13
- 项目4
- 项目5
- 项目6
.parent list>li{
浮动:左;
}
.儿童名单{
位置:绝对位置;
宽度:400px;
-webkit列宽:100px;
-moz列宽:100px;
}
.child list>li{
宽度:100px;
}
POLYFILLS:参考文献:
如果IE 9和更早版本不是优先考虑的,您可以使用CSS列来实现您想要的: 不支持它的浏览器(即6、7、8、9)仍然可以很好地显示菜单,除非是在一个垂直的直列中(这是菜单显示的通常方式,所以应该可以)。或者,您可以对不支持的浏览器使用polyfill 示例代码:
<ul class="parent-list">
<li>Item 1</li>
<li>Item 2</li>
<li>Daddy 1
<ul class="child-list">
<li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li>
<li>Child 4</li>
<li>Child 5</li>
<li>Child 6</li>
<li>Child 7</li>
<li>Child 8</li>
<li>Child 9</li>
<li>Child 10</li>
<li>Child 11</li>
<li>Child 12</li>
<li>Child 13</li>
</ul>
</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
.parent-list > li {
float: left;
}
.child-list {
position: absolute;
width: 400px;
-webkit-column-width: 100px;
-moz-column-width: 100px;
}
.child-list > li {
width: 100px;
}
- 项目1
- 项目2
- 爸爸1
- 儿童1
- 儿童2
- 儿童3
- 儿童4
- 儿童5
- 儿童6
- 儿童7
- 儿童8
- 儿童9
- 儿童10
- 儿童11
- 儿童12
- 孩子13
- 项目4
- 项目5
- 项目6
.parent list>li{
浮动:左;
}
.儿童名单{
位置:绝对位置;
宽度:400px;
-webkit列宽:100px;
-moz列宽:100px;
}
.child list>li{
宽度:100px;
}
POLYFILLS:参考文献:
您的示例标记在我看来确实不错:它非常健壮,可以跨浏览器工作。也就是说,您打算支持哪些浏览器?子项的顺序是否重要?最后,您是否有一个设计可以直观地显示您试图实现的目标?@CherryFlavourPez Hi,它确实有效(代码的顶部片段),但验证失败,因为它是
HTML看起来不错,我同意。如果它的结构在语义上是正确的,那么它就不是浪费的HTML。您自己的HTML,请参阅这里的演示-您的跨浏览器要求是什么?需要IE支持吗?oldIE?您的示例标记在我看来很好:它很健壮,可以跨浏览器工作。也就是说,什么浏览器是y
<ul class="parent-list">
<li>Item 1</li>
<li>Item 2</li>
<li>Daddy 1
<ul class="child-list">
<li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li>
<li>Child 4</li>
<li>Child 5</li>
<li>Child 6</li>
<li>Child 7</li>
<li>Child 8</li>
<li>Child 9</li>
<li>Child 10</li>
<li>Child 11</li>
<li>Child 12</li>
<li>Child 13</li>
</ul>
</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
.parent-list > li {
float: left;
}
.child-list {
position: absolute;
width: 400px;
-webkit-column-width: 100px;
-moz-column-width: 100px;
}
.child-list > li {
width: 100px;
}