我正在尝试制作一个具有静态高度和可变宽度的 div。带有多个水平选项卡。活动选项卡应水平拉伸以填充容器,非活动选项卡应缩小到其非活动大小(在本例中为 24 像素)。
我不能让它工作。标签伸展,但太多了。它将标签后面的标签撞到下一行,这不应该发生。我不知道如何使这项工作像我想要的那样。
我正在尝试做的可以在 [链接已删除] 中看到
我确信有办法做到这一点,就像我以前见过的那样,但我找不到它的例子。知道我做错了什么吗?
您在寻找水平手风琴吗?
网上有几个例子。如果您希望打开的选项卡占用容器的所有空间减去选项卡的宽度,最好依靠 Javascript 进行计算。
<style>
#navigation
{
border: 1px solid #000000;
height: 400px;
margin: 10px 25px;
padding: 0px;
width: auto;
}
.item
{
display: block;
float: left;
height: 100%;
margin: 0px;
overflow: hidden;
}
.item img { float: left; margin-right: 5px;}
.closed
{
width: 10%;
}
.open
{
width: 80%;
}
</style>
</head>
<body>
<div id="navigation">
<div class="item open">
<img src="hometab.png" alt="Home" />
Open Tab Open Tab
</div>
<div class="item closed">
<img src="hometab.png" alt="Home" />
Open Tab Open Tab
</div>
<div class="item closed">
<img src="hometab.png" alt="Home" />
Open Tab Open Tab
</div>
</div>
你对width:auto
上的承诺如何#navigation
?
如果将宽度设置#navigation
为固定值并设置适当的宽度值,.open
那么它看起来相当不错。
当我在FireBug中使用您的示例时,我使用了 400 for#navigation
和 350 for .open
,它似乎运行良好。
额外的项目可能会被撞到下一行,因为您打开的标签的宽度是 100% - 尝试将其设置为 80% 或 90%,以便为之后的额外“标签”留出空间。“关闭”的选项卡可能还应该有一个百分比宽度,它们应该加在一起等于 100%——它们容器的全宽。
以下方法对我有用:
让“w”为 div 的原始宽度,您希望将其拉伸“x”像素。在其上添加以下 CSS:
{
width: (w + x) px;
margin-left: -x/2 px
}
例如,如果原始宽度为 300 像素,并且您想将其拉伸 50 像素,则附加 CSS 将是:
{
width: 350px;
margin-left: -25px
}