html - li 宽度不固定父 ul 标签

标签 html css list vertical-alignment box-sizing

我检查了一些我开发的网页。 li 宽度存在一些 css 问题。

这是导航菜单的代码:

ul.tabs {
  padding: 0px;
  list-style: none;
  background: transparent;
  border-bottom: 3px solid #ff6600;
  -moz-border-radius: 0px;
  -webkit-border-radius: 0px;
  border-radius: 0px;
  text-align: center;
  position: relative;
  width: 100%;
}
ul.tabs li {
  background-color: #ff6600;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border: none;
  color: #f5ede3;
  display: inline-block;
  padding: 5px 15px;
  cursor: pointer;
  margin-left: 0px;
  width: 16%;
  text-align: center;
}
ul.tabs li.current {
  background: #f5ede3;
  color: #ff6600;
}
<ul class="tabs">
  <li data-tab="tabs-1" class="current">Amenities</li>
  <li data-tab="tabs-5">Attractions</li>
  <li data-tab="tabs-2">Rates</li>
  <li data-tab="tabs-6">Calendar</li>
  <li data-tab="tabs-4">Reviews</li>
  <li data-tab="tabs-3">Inquire</li>
</ul>

但我得到以下结果:

enter image description here

li 标签的宽度为 16%。而li的个数是6。为什么li标签的总宽度大于ul标签的宽度?

最佳答案

全局设置 box-sizing: border-box 作为快速修复 - 请参见下面的演示:

*{
  box-sizing: border-box;
}
ul.tabs {
  padding: 0px;
  list-style: none;
  background: transparent;
  border-bottom: 3px solid #ff6600;
  -moz-border-radius: 0px;
  -webkit-border-radius: 0px;
  border-radius: 0px;
  text-align: center;
  position: relative;
  width: 100%;
}
ul.tabs li {
  background-color: #ff6600;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border: none;
  color: #f5ede3;
  display: inline-block;
  padding: 5px 15px;
  cursor: pointer;
  margin-left: 0px;
  width: 16%;
  text-align: center;
}
ul.tabs li.current {
  background: #f5ede3;
  color: #ff6600;
}
<ul class="tabs">
  <li data-tab="tabs-1" class="current">Amenities</li>
  <li data-tab="tabs-5">Attractions</li>
  <li data-tab="tabs-2">Rates</li>
  <li data-tab="tabs-6">Calendar</li>
  <li data-tab="tabs-4">Reviews</li>
  <li data-tab="tabs-3">Inquire</li>
</ul>

关于html - li 宽度不固定父 ul 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288226/

相关文章:

Python从列表中删除相同的字符

javascript - 从字符串中逐个删除字符

jquery - 如何获取映射对象的高度

css - 我怎么能只显示模组?

html - 具有固定高度和 100% 宽度的图像

c# - 填充具有嵌套列表作为值的字典的正确语法是什么?

c# - 用逗号分隔的字符串列表,并为列表的每个项目添加前缀字符串

html - <li> 内的 img 属性为 "display: inline"超出 li 标签

html - 在 CruiseControl 仪表板中显示 HTML 报告

jquery - 如何为输入元素的文本着色