填充导航栏的方法-表格/CSS/JS
Method for padding nav bar - Tables / CSS / JS
我正在为一个需要ie7>=支持的网站开发导航栏。导航栏可以包含任何数量的链接,每个链接可以包含不同数量的文本,因此可以有不同的大小。然而,我希望导航栏自动将每个链接隔开,以便它们填充父容器。
下面是一个使用纯css在每个导航栏上设置填充的解决方案:https://jsfiddle.net/n07x8963/4/
#nav_1 li { padding:0px 36px;}
问题是,这需要根据链接的数量和链接中文本的宽度为每个导航栏手动指定填充。每次导航栏的内容发生变化时,都必须执行此操作。
自动执行此操作的一种方法当然是使用表:https://jsfiddle.net/t0t29yne/1/
或者通过JavaScript,如下所示:https://jsfiddle.net/jtz4thfo/1/
每种解决方案都有优点/缺点,所以我想知道是否有人有更好的解决方案,或者是否有人对使用上述任何方法有意见。
感谢
更新:我最终选择了表格,ie7+浏览器得到了UL的服务,LI的服务带有在CSS中覆盖的display:table行,display:table-cell。
在哪里可以买到真正的桌子。
我知道使用Tables进行布局通常被认为是错误的,但在这种情况下,没有足够的纯CSS解决方案,所以我认为这是最好/最简单的解决方案。
在IE7中,我建议仅通过CSS使用表是不可能的。
.nav {
width: 600px;
height: 20px;
background-color: #FF9;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
display: table; /*IE8+ and non-IE*/
width: 100%;
}
ul li {
background-color: #F9F;
display: table-cell; /*IE8+ and non-IE*/
text-align: center;
}
<div id="nav_1" class="nav">
<ul>
<li id="link_1">AAAA</li>
<li id="link_2">BB</li>
<li id="link_3">CCCCCC</li>
<li id="link_4">DDDD</li>
<li id="link_5" class="last">EEEEEE</li>
</ul>
</div>
<div id="nav_2" class="nav">
<ul>
<li id="link_6">FFFFFF</li>
<li id="link_7">GGGG</li>
<li id="link_8">HH</li>
<li id="link_9">IIIIIII</li>
<li id="link_10" class="last">JJJJ</li>
</ul>
</div>
相关文章:
- CSS表格:从列平移到整个表格宽度
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 循环通过表格查找第一个具有 CSS CSSstablelisttdselect 的 TD 文本
- 使 CSS 输入的行为类似于表格单元格
- HTML/CSS/JavaScript:如何根据数据更改表格行的颜色
- 根据单元格内容更改表格行的文本颜色,仅使用 css
- 更改表格中单个单元格(TD)的CSS
- 如何在三次单击html5 / javascript / css时将表格单元格颜色更改为默认值
- 我想使用 JQuery 或 CSS 更改表格行的颜色
- CSS表格高度
- 悬停时更改表格行的颜色(jQuery或CSS)
- 填充导航栏的方法-表格/CSS/JS
- 使用CSS设置表格样式
- 在CSS或HTML中,重叠的图像跨越表格单元格边界
- 表格的替代颜色 css 不适用
- 如何在点击表格时更改css样式
- 使用内联CSS在HTML表格中应用美元货币格式
- Css:没有<表格>的画廊视图
- 如何在angularjs中使用ng-repeat动态设置CSS中表格列的宽度
- HTML, CSS, JS -在表格显示中将文本区域与标签对齐