html – 位置相对不能使用显示表格单元格?

前端之家收集整理的这篇文章主要介绍了html – 位置相对不能使用显示表格单元格?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个由按钮组成的水平菜单。我需要这些按钮来调整宽度,以便它们占据菜单容器宽度的100%。它应该与TD在TABLE中相同。

这样,这里是我提出的代码

<div id="menubar">
    <div id="menu">
        <div class="button">
            <Button>Button 1</Button>
        </div>
        <div class="button">
            <Button>Button 2</Button>
        </div>
        <div class="button">
            <Button>Button 3</Button>
        </div>
        <div class="button">
            <Button>Button 4</Button>
        </div>
    </div>
</div>

和我的CSS:

#menubar {
    width: 100%;
    height: 100%;
    display: table;
    table-layout: fixed;
}

#menu {
    display: table-row;
}

#menu .button {
    position: relative;
    display: table-cell;
}

#menu .button Button {
    position: absolute;
    right: 0px;
    bottom: 0px;
    top: 0px;
    left: 0px;
}

这在Mozilla以外的每个浏览器中都是完美的。 Mozilla似乎并不尊重按钮类的相对位置,因此按钮所有的位置绝对是彼此之间的顶点(而不是绝对在DIV中,类“button”)。

经过一些进一步的研究,似乎这是Mozilla的一个已知问题,当显示设置为“table-cell”时,不是相应的位置“相对”。

有没有人知道一个工作来实现我要做的事情?

注意:菜单是动态的,所以我不知道有多少个按钮,所以我不能提供每个按钮的百分比宽度。

解决方法

从#menu .button按钮中删除右,下,上,左定位

例如,

#menu .button Button {
    position: absolute;
    /*right: 0px;
    bottom: 0px;
    top: 0px;
    left: 0px;*/
}

这是WORKING DEMO

如果你想要纯显示:table-cell;解决方案,你只需要去除定位

例如,

#menubar {
    width: 100%;
    height: 100%;
    display: table;
    table-layout: fixed;
}
#menu {
    display: table-row;
}
#menu .button {

    display: table-cell;
}
#menu .button Button {

    right: 0px;
    bottom: 0px;
    top: 0px;
    left: 0px;
}

这是WORKING DEMO – 2

编辑

要拉伸按钮占据宽度,这里是解决方案。

代码

#menu .button Button {
    width: 100%;
}

这是WORKING DEMO – 3

编辑 – 2

根据OP的要求,暗示为按钮添加高度的条款,这里是相同的解决方案。加高度:100%; OP是该解决方案的贡献。

#menu .button Button {
    display:table-cell;
    width: 100%;
    height:100%;
}

这是WORKING DEMO – 4

猜你在找的HTML相关文章