无论如何都可以自动调整< li>的宽度。使用CSS标记它包含的文本的宽度?
我正在设计一个使用自定义CMS的网站(我无法访问代码),因此就设计而言,我的选项有限。
适用于< li>的Javascript解决方案不必直接编辑任何列表属性的标记也可以。
答案 0 :(得分:15)
<li>
是块级元素,因此默认为尽可能宽。
要让它“收缩”到内容的大小,请尝试浮动它:
li {
float:left;
clear:left;
}
这可能就是你想要的。
如果您希望<li>
坐在一起,可以尝试:
ul {
clear: left; /* I like to put the clear on the <ul> */
}
li {
float: left;
}
OR
li {
display: inline
}
使inline
取消其块级状态,因此它的作用类似于<span>
或任何其他内联元素。
答案 1 :(得分:8)
正如@willoller已经说过的那样, li 元素是一个块级元素,但除了浮动之外,你还可以使用:
li {
display: inline;
}
答案 2 :(得分:2)
编辑:不幸的是,以下解决方案在不同浏览器中的显示方式不同。
为了不让任何其他元素浮动在列表中,我使用了这个:
ul {
white-space: pre-line;
margin: -25px 0 0; /* to compensate the pre-line down-shift */
}
ul li {
display: inline-block;
}
唯一适用于我的CSS解决方案。
答案 3 :(得分:1)
在符合标准的浏览器上,使用min-width
代替width
。在IE 6上,width
执行您所描述的内容。
答案 4 :(得分:1)
之前的答案都不适合我,所以我使用了以下方法:
答案 5 :(得分:1)
将display: inline;
CSS添加到<ul>
块对我来说非常有用,没有任何不良影响。
答案 6 :(得分:1)
ul { display: inline }
将立即解决您的所有问题。
答案 7 :(得分:0)
如果有&lt; li&gt;的id您可以使用JavaScript来获取有多少个字符,然后将其乘以字体大小,然后将li宽度设置为该数字。
答案 8 :(得分:0)
您可以使用em而不是像素来指定元素的宽度。 em大致相当于默认字体中字母“m”的宽度。玩你的li中的字符数的倍数,直到你的em宽度看起来很吸引人。
答案 9 :(得分:0)