我如何在ul中拟合li的宽度?

时间:2011-07-27 15:03:59

标签: html css html-lists

我有一个宽度为600px的ul,我有4个li,它们不占用整个600px。如何自动调整li以使它们占用整个600px?我不想硬编码li的宽度,因为我在不同的位置使用类。下面是屏幕截图,我试图设置菜单“最新,热门投票活跃”适合整个ul。 Sample screenshot

    #content-tabs {
  background-color: #78ae09;
  float: left; /* LTR */
  margin: 20px 0;
  padding: 0;
-moz-box-shadow: 0px 2px 3px #c4c4c4;-webkit-box-shadow: 0px 2px 3px #c4c4c4;box-shadow: 0px 2px 3px #c4c4c4;

}

#content-tabs ul.primary,
#content-tabs ul.secondary {
/*  border-bottom: 1px solid #000;*/
  clear: both;
  float: left; /* LTR */
  margin: 0;
  padding: 7px 10px 0px 0px;
  width:100%;
}

#content-tabs ul.secondary {
  border-bottom: 1px solid #555;
  margin-top: 10px;
  text-transform: lowercase;
}

#content-tabs ul.primary li,
#content-tabs ul.secondary li {
  border-style: none;
  display: inline-block;
  float: left; /* LTR */
  list-style: none;
  margin: 0 10px;
  padding: 0;
  white-space:nowrap;
}

#content-tabs ul.primary li a:link,
#content-tabs ul.primary li a:visited,
#content-tabs ul.secondary li a:link,
#content-tabs ul.secondary li a:visited {
  background-color: transparent;
  border: none;
  color: #fff;
  float: left; /* LTR */
  font-weight: bold;
  margin: 0;
  padding: 3px 0 6px 0;
  text-decoration: none;
  white-space: nowrap;
}

#content-tabs ul.secondary li a:link,
#content-tabs ul.secondary li a:visited {
  color: #555;
}

#content-tabs ul.primary li a.active:link,
#content-tabs ul.primary li a.active:visited {
  color: #fff;
  padding-bottom: 2px;
}

#content-tabs ul.secondary li a.active:link,
#content-tabs ul.secondary li a.active:visited {
  color: #fff;
  padding-bottom: 2px;
}

#content-tabs ul.primary li a:hover,
#content-tabs ul.primary li a:focus,
#content-tabs ul.secondary li a:hover,
#content-tabs ul.secondary li a:focus {
  color: #fefefe;
  padding-bottom: 2px;
  font-weight:bold;
}

5 个答案:

答案 0 :(得分:3)

width: auto;会这样做,除非存在影响大小的其他冲突规则(例如,display: inline;会导致问题)。

width: auto;的块元素展开以占据其父级的全部宽度。

答案 1 :(得分:0)

display:block;

如果发布一些代码,将会更容易给出答案

答案 2 :(得分:0)

如果您希望它们并排排列,请使用:

  ul {
    list-style:none;
    width:600px;
    padding:0;
    overflow:auto;
  }
  li {
    float:left;
    width:25%;
  }

工作示例:http://jsbin.com/oqawud/edit

如果您希望它们堆叠,请使用:

  ul {
    list-style:none;
    width:600px;
    padding:0;
    overflow:auto;
  }
  li {
    width:auto;
  }

工作示例:http://jsbin.com/oqawud/2/edit

答案 3 :(得分:0)

也许是这样的......

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

<style>
ul{
  width:600px;
  list-style:none;
}

li{
  float:left;
  width:25%;
}
</style>

答案 4 :(得分:0)

发布的大多数解决方案都要求您明确将每个li的宽度设置为25%。我个人发现这可能会在li的文本两侧出现不一致的空白区域,所以在这种情况下,我更喜欢使用来解决这个问题。

这样可行,您可以改进它的外观,但它可以满足您的需求:http://jsbin.com/oqawud/11