Ral*_*onz 10 css tabs distributed menu
我已经阅读了很多关于使用css均匀分布元素的内容,但我发现的每个解决方案都要求您知道并定义要分发的元素的宽度和/或数量.
我有一个具有固定宽度的容器 - 在这里可以是任何数量的自动宽度的li元素,需要从左到右均匀地分布在父元素上.
这是我的标记 - 除了可以有任意数量的标签,其中包含任何长度的文本.
<ul class="tabs">
<li class="tab active" id="tab-1"><span class="tab-title">Tab 1</span></li>
<li class="tab " id="tab-2"><span class="tab-title">Tab 2</span></li>
<li class="tab " id="tab-3"><span class="tab-title">Tab 3</span></li>
<li class="tab " id="tab-4"><span class="tab-title">Tab 4</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
因此,当元素和宽度的数量是动态的时,使用css进行均匀分布 - 可以这样做吗?
看起来像这样一个显而易见的事情 - 该死的CSS!
san*_*eep 16
为此你的css display:table-cell属性.像这样写:
.tabs{
display:table;
width:300px;
border:1px solid green;
}
.tabs li{
display:table-cell;
border:1px solid red;
height:40px;
}
Run Code Online (Sandbox Code Playgroud)
检查这个http://jsfiddle.net/px7Uf/
这是一个使用flexbox在内容溢出分配的单元格宽度时保持均匀宽度的解决方案:
ul.tabs {
display: flex;
flex-wrap: nowrap;
align-items: stretch;
list-style-type: none;
margin: 0;
padding: 0;
}
ul.tabs>li.tab {
flex: 1;
text-align: center;
/* just adding visibility to the tabs */
border: 1px solid rgba(0,0,0,.12);
padding: 10px;
}Run Code Online (Sandbox Code Playgroud)
<ul class="tabs">
<li class="tab active" id="tab-1"><span class="tab-title">Tab 1</span></li>
<li class="tab " id="tab-2"><span class="tab-title">Tab 2</span></li>
<li class="tab " id="tab-3"><span class="tab-title">Tab 3. This is a very long tab and should overflow...</span></li>
<li class="tab " id="tab-4"><span class="tab-title">Tab 4</span></li>
</ul>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10716 次 |
| 最近记录: |