CSS水平标签菜单溢出隐藏内容框的顶部

时间:2011-06-20 13:24:42

标签: javascript css

我有这个CSS水平菜单,其中多个选项卡依赖于php生成的mysql查询。最近,我有很多标签,它在第一行标签下溢出,并隐藏了内容框的顶部。

我希望标签在窗口右侧溢出,隐藏溢出,但如果标签溢出则会出现箭头。

以下是菜单的html代码示例:

<ul id="tabs">
    <li class="active" id="tabFirstCategory"><a href="#" onclick='showHideTabs("FirstCategory");'>FirstCategory</a>
    <li class="active" id="tabSecondCategory"><a href="#" onclick='showHideTabs("SecondCategory");'>SecondCategory</a>
</ul>
<div id="tabcontent" class="clear">Some Content</div>

这是用于设置菜单和内容框样式的CSS

body
{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}

ul#tabs
{
position:fixed;
width:100%;
background-color:#ffffff;
border-bottom-style: solid;
border-color: #d3d3d3;
border-width: 1px;
z-index:2;
}

ul#tabs, ul#tabs li
{
float:left;
margin:0;
padding:0;
list-style:none;
}

ul#tabs .active
{
font-weight:bold;
}

ul#tabs li a
{
float:left;
padding:4px 10px 4px;
border:1px solid #d3d3d3;
border-bottom:none;
margin-right:4px;
}

ul#tabs .active a
{
background-color:#edf4f9;
}

.clear
{
clear:both;
/*for IE6 pos*/
width:100%;
overflow:hidden;
}

#tabcontent
{
position:relative;
top:25px;
margin-bottom:25px;
}

如果可能,我希望有一个CSS解决方案,但我也不反对使用javascript。 (由于管理政策,没有jquery。)

1 个答案:

答案 0 :(得分:2)

你需要以这种方式制作你的HTML

<div class="menu-outer">
  <img src="left-arrow.png" onclick="moveMenu( -10 )" />
  <ul>
    ...
  </ul>
  <img src="right-arrow.png" onclick="moveMenu( 10 )" />
</div>

默认情况下,将图像显示设置为none(使用css class menu-outer)。添加类(例如'大')使这些图像可见(将用于div)

现在对于javascript - 检查加载,如果菜单适合宽度(ul的offsetWidth与div的offsetWidth) - 如果不是,将'large'类添加到div('menu-outer large') - 所以按钮将出现

使用position:relative移动ul并设置其左侧。

相关问题