我有一个列表,每个项目需要两个部分。我还需要第一部分是固定宽度的。我该如何编码呢?
我尝试过使用定义列表:
<dl>
<dt style="width: 2em;">foo</dt><dd>bar</dd>
...
</dl>
...以及带有span的用户列表:
<ul>
<li><span style="width: 2em;">foo<span>bar</li>
...
</ul>
都没有奏效。是否有任何规范的方法可以做到这一点?
答案 0 :(得分:2)
就像艾伦说的那样但是如果你只是放了一个div就不会按你想要的方式工作,试试这个:
<ul>
<li><div style="width: 200px; display: inline-block;">foo</div>bar</li>
<li><div style="width: 200px; display: inline-block;">foo12</div>bar</li>
<li><div style="width: 200px; display: inline-block;">foo12345</div>bar</li>
<li><div style="width: 200px; display: inline-block;">foo12345678</div>bar</li>
</ul>
(也许你想使用一个类而不是重复每个列表项的style属性)
答案 1 :(得分:1)
宽度不适用于<span>
代码,因为它们是内联的。尝试使用<div>
或<p>
或任何其他块元素替换标记。
答案 2 :(得分:1)
使用dl并将dt浮动到左侧。
<style type="text/css">
dt {clear:left; float:left; width: 8em;}
</style>
<dl>
<dt>foo<dt>
<dd>bar</dd>
<dt>foo1<dt>
<dd>bar1</dd>
<dt>foo12345<dt>
<dd>bar</dd>
</dl>
答案 3 :(得分:1)
我提出的方式或许不是规范的(但只是因为我不相信有一种'规范'的方法来实现它),但确实有效:
<style type="text/css" media="screen">
#container
{width: 50%;
margin: 0 auto;
}
ol,
ul {border: 1px solid #ccc;
width: 90%;
padding: 1.4em 0;
}
ol li,
ul li {background-color: #ccc;
margin-left: 20%;
}
ol li span.list-head,
ul li span.list-head
{background-color: #ffa;
float: left;
display: block;
width: 6em;
}
dl {border: 1px solid #ccc;
line-height: 1.4em;
padding: 1.4em 0 0 0;
}
dl dt {background-color: #ffa;
display: block;
margin: 0;
width: 10%;
}
dl dd {background-color: #fc0;
display: block;
margin: 0;
width: 88%;
margin-left: 11%;
position: relative;
top: -1.4em;
}
</style>
...
<div id="container">
<ol>
<li><span class="list-head">Foo:</span> bar.</li>
<li><span class="list-head">Bar:</span> baz.</li>
<li><span class="list-head">Baz:</span> foo.</li>
</ol>
<ul>
<li><span class="list-head">Foo:</span> bar.</li>
<li><span class="list-head">Bar:</span> baz.</li>
<li><span class="list-head">Baz:</span> foo.</li>
</ul>
<dl>
<dt>Foo:</dt>
<dd>bar.</dd>
<dt>Bar:</dt>
<dd>baz.</dd>
<dt>Baz:</dt>
<dd>foo.</dd>
</dl>
</div>
在 http://www.davidrhysthomas.co.uk/so/lists.html上有一个有效的演示。
答案 4 :(得分:0)
尝试第一部分的标签或内联div
答案 5 :(得分:0)
我想问:这是用于表示表格数据吗?我们一直认为HTML表是邪恶的,但是为了展示数据表,它们是完美的。我见过不止一个程序员尝试使用<table>
和CSS复制<div>
标记的功能。
当然,如果不是,那么请继续。 : - )