css - 使用 CSS 使 <li> 适合 <ul> 的宽度

标签 css list

我正在尝试制作 <li>适合 <ul> 的宽度但即使是 width:auto它根本不起作用,我不知道为什么。我尝试使用 display:inline-block但这是一样的。我不知道我会有多少个标签,所以这就是我不直接使用百分比的原因。

当我在桌面上显示页面并显示一个 li 时,我想以内联方式显示列表当我在智能手机上时(使用媒体查询)每行。

我有这个:

<ul id='menu'>
    <li class="button"><a class='current' href='http://'>Home</a></li>
    <li class="button"><a href='http://'>Products</a></li>
    <li class="button"><a href='http://'>Support</a></li>
    <li class="button"><a href='http://'>Contact</a></li>
    <li class="button"><a href='http://'>Contact</a></li>
</ul>

我的 CSS 看起来像这样:

ul#menu
{
margin:0;
padding:0;
list-style-type:none;
width:100%;
position:relative;
display:block;
height:30px;
font-size:12px;
font-weight:bold;
font-family:Arial, Helvetica, sans-serif;
/*border-bottom:1px solid #000000;
border-top:1px solid #000000;*/
}

li.button {
background:transparent url(../images/nav_bg.png) repeat-x top left;
height:30px;
width:auto;
}



ul#menu li
{
display:inline-block;
margin:0;
padding:0;
width:auto;
}

ul#menu li a
{
display:inline-block;
color:#999999;
text-decoration:none;
font-weight:bold;
padding:8px 20px 0 20px;
width:auto;
}

ul#menu li a:hover
{   
color:#FFFFFF;
height:22px;
background:transparent url(../images/nav_bg.png) 0px -30px no-repeat;       
}


ul#menu li a.current
{
display:inline-block;
height:22px;
background:transparent url(images/nav_bg.png) 0px -30px no-repeat;  
margin:0;
}

最佳答案

我发现这种方法可以处理单行全 Angular ul,其中未定义数量的 li 元素需要均匀分布:

ul {
  width: 100%;
  display: table;
  table-layout: fixed; /* optional */
}

ul li {
  display: table-cell;
  width: auto;
  text-align: center;
}

基本上,它模拟一个表。适用于 Gecko、Webkit、IE8+。 对于 IE7 及以下版本,您应该使用一些内联 block hackery :)

JSFiddle

关于css - 使用 CSS 使 <li> 适合 <ul> 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9894176/

相关文章:

list - Prolog、列表和对的新手

python - 如何将函数应用于列表中的每个元素,然后列出输出?

python - 如何检查列表中的一个数字是否小于列表中的另一个数字

不同版本的 CSS 文件不适用?

html - 去除 Flash 中图像的白色背景

css - 字体无法在Safari中完全正常

list - (list 1 2 3 4) 和 '(1 2 3 4) 之间的区别?

html - 改变所有asp的大小 :Label Text

javascript - 如何让等待屏幕在具有 CSS 样式时显示加载

c# - LINQ - 获取列表中列表中的所有项目?