如果之前有人问过这个问题,我很抱歉,但是我将如何实现标签(常规的 HTML 无序列表元素),它们使用 CSS 和 JavaScript 调整自身大小以适应固定宽度的容器?
示例: *Google Chrome、Firefox、Sublime Text 等 *
如果之前有人问过这个问题,我很抱歉,但是我将如何实现标签(常规的 HTML 无序列表元素),它们使用 CSS 和 JavaScript 调整自身大小以适应固定宽度的容器?
示例: *Google Chrome、Firefox、Sublime Text 等 *
如果您知道您将拥有多少个“标签”,那么您只需将 100 除以该数字,然后将宽度设置为该百分比。即:width:20%
对于5个元素。
然而...
如果您设置使用 jquery 动态设置元素的宽度,请参阅此处的示例:http: //jsfiddle.net/eMLTB/3/
<div id="wrapper" class="clearfix">
<ul id="nav">
<li><a href="#">link 1</a></li>
<li><a href="#">link 2</a></li>
<li><a href="#">link 3</a></li>
<li><a href="#">link 4</a></li>
<li><a href="#">link 5</a></li>
<li><a href="#">link 6</a></li>
</ul>
</div>
jQuery
var n = $("#nav li").length;
var w = (100/n);
$("#nav li").width(w+'%');
css
#wrapper { width: 90%; background:#aaa; }
#nav { margin:0; padding:0;}
#nav li { float: left; list-style:none; margin:0;}
#nav li a { display: block; padding:5px; background: #ddd; margin-right:1px; }
你可以只用 CSS 做到这一点:
ul {
display: table;
table-layout: fixed;
width: 100%;
}
li {
display: table-cell;
}
table-layout: fixed
是这里最有价值的财产。通常,此属性具有属性auto
,当应用于表格时,将根据单元格的内容调整单元格的大小。Fixed 将调整单元格的大小,并为每个单元格赋予相等的宽度,总计容器的宽度除以单元格的数量。额外的好处:计算速度更快。
给列表显示“table-row”,列表项显示“table-cell”,宽度为 1%。