我想要一个灰色框内的三列列表:
<div style="width:500px;font-size:21px;background:#f5f5f5;margin:0 0 40px 100px;padding:1px;border:3px solid black;">
<div style="text-align:center;margin:10px 0px 0px 0px;"><strong>Table of Contents</strong></div>
<ul style="float:left;width:33%;list-style-type:none;">
<li>Book 1.</li>
<li>Part 1.</li>
<li><a href="#S1">Section 1.</a></li>
<li><a href="#S2">Section 2.</a></li>
<li><a href="#S3">Section 3.</a></li>
</ul>
<ul style="float:left;width:33%;list-style-type:none;">
<li>Book 2.</li>
<li>Part 1.</li>
<li><a href="#S4">Section 1.</a></li>
<li><a href="#S5">Section 2.</a></li>
<li><a href="#S6">Section 3.</a></li>
</ul>
<ul style="float:left;width:33%;list-style-type:none;">
<li>Book 3.</li>
<li>Part 1.</li>
<li><a href="#S7">Section 1.</a></li>
<li><a href="#S8">Section 2.</a></li>
<li><a href="#S9">Section 3.</a></li>
</ul>
</div>
但结果并不漂亮:http://jsfiddle.net/gq2gh/
任何人都可以解释发生了什么,和/或修复它吗?感谢。
答案 0 :(得分:1)
您正在使用width:33%
。 33%与您的<body>
标记相关,这使得列太宽。在px
中指定绝对宽度。
答案 1 :(得分:1)
好的,如果你让我真诚,如果你打算创建表,为什么不使用<table>
?如果使用简单的标签可以实现您想要的功能,那么为什么要使用CSS?
我知道由于过去的设计,<table>
的使用已被“妖魔化”,但在您的情况下,使用它不仅更简单,而且更正确,因为您将使用<强烈>创建来解决您的问题。
以下是fiddle的代码,展示了我所说的内容。
<div class="outer_box">
<table>
<tr>
<th colspan="3">Table of Contents</th>
</tr>
<tr>
<td>
<ul style="list-style-type:none;">
<li>Book 1.</li>
<li>Part 1.</li>
<li><a href="#S1">Section 1.</a></li>
<li><a href="#S2">Section 2.</a></li>
<li><a href="#S3">Section 3.</a></li>
</ul>
</td>
<td>
<ul style="list-style-type:none;">
<li>Book 2.</li>
<li>Part 1.</li>
<li><a href="#S4">Section 1.</a></li>
<li><a href="#S5">Section 2.</a></li>
<li><a href="#S6">Section 3.</a></li>
</ul>
</td>
<td>
<ul style="list-style-type:none;">
<li>Book 3.</li>
<li>Part 1.</li>
<li><a href="#S7">Section 1.</a></li>
<li><a href="#S8">Section 2.</a></li>
<li><a href="#S9">Section 3.</a></li>
</ul>
</td>
</tr>
</table>
</div>