html - 创建一个两列的有序列表。我可以在 OL 和 LI 标签之间放置一个 DIV 吗?

标签 html css

使用 960.gs 框架,我试图创建一个两列的有序列表,其中每个列表项都包含一个标题和段落,并且编号是横向的,而不是向下的,例如第一行包含 1,2 而不是 1,3。让它工作的唯一方法是在 OL 和 LI 元素之间放置一个 DIV。这感觉不对,我确定它是错误的,尽管我不确定为什么。实现这一目标的正确方法是什么?我有以下标记;

<div class="container_16">
<ol>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>
    </div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>
    </div>
    <div class="clear"></div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>    
    </div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>    
    </div>
    <div class="clear"></div>
</ol>
</div>

最佳答案

div 元素放在ol 标签内是无效的。

那里只允许 li 元素.. ( check the W3C documentation on lists )

理论就是用

ol{width:200px;}
li{float:left;width:50%;}

演示在 http://jsfiddle.net/gaby/ZKdpf/1/


对于你应该使用的960.gs系统

<ol class="container_16">
    <li class="grid_8">first</li>
    <li class="grid_8">second</li>
    <li class="grid_8">third</li>
    <li class="grid_8">fourth</li>
    <li class="grid_8">fifth</li>
    <li class="grid_8">sixth</li>
</ol>

并添加你的CSS

ol.container_16 li.grid_8{
   display:list-item;
}

再次显示数字..

演示在 http://jsfiddle.net/gaby/ZKdpf/2/


更新

确实正如您在评论中提到的那样,您需要清除每两个元素,因为 li 元素的高度不一样..

对于现代浏览器你应该添加

.benefits li:nth-child(odd) {
    clear: left;
}

或者您可以在类中转换它并将其添加到奇数编号的 li 元素。

关于html - 创建一个两列的有序列表。我可以在 OL 和 LI 标签之间放置一个 DIV 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619333/

相关文章:

php - 在 mysql/phpmyadmin 中上传和显示图像

html - 如何使音乐文件的 URL 在 iOS 上的 VLC 中播放?

html - 如何为注册表制作性别列表

html - 鼠标悬停在 HTML 上时获取前面的图像

html - 具有内联 block 元素的 css 宽度

javascript - 请验证此代码给我一个建议?

css - Angular 没有完全加载样式

HTML img 有不需要的边缘

html - 当我通过 CSS 调整大小时,为什么我的图像会缩小太多?

javascript - 自动溢出的可变高度