【问题标题】:Making parent container stretch to width absolutely positioned child and vice versa使父容器拉伸到绝对定位的子容器的宽度,反之亦然
【发布时间】:2012-05-26 18:05:51
【问题描述】:

我正在为下拉菜单做一些标记。

标记如下:

<div class="select">
    <a href="#" class="anchor menu-active">
        <label>val1</label><span class="arrow"><label></label></span>
    </a>

    <div class="container menu-visible">
        <ul>
            <li>
                <a value="val1" class="item-selected">val1</a>
            </li>
            <li>
                <a value="val2333333333">val2333333333</a>
            </li>
        </ul>
    </div>
</div>

第一个a 代表菜单项,container div 代表子菜单项列表。

  • 子菜单项的宽度是可变的,因为它们是动态生成的。
  • anchor 中的文本是粗体的,因此在某些情况下,anchor 的宽度可能大于子菜单列表。

我需要做什么:containeranchor 的宽度必须相同。子菜单可能比锚点更宽,反之亦然。另外,不要人为限制宽度,应该允许随着内容变宽而扩大,不管是anchor还是container

这是我一直在使用的 CSS,但似乎无法让 anchor 扩展以适应 container

.container{
    position: absolute;
}

.anchor{
    font-weight: bold;
}

li{
    background: blue;
}

ul{
    display: inline-block;
}

.select{
    background: red;
    display: inline-block;
}

还有小提琴:http://jsfiddle.net/MxdQS/

我希望尽可能只使用 CSS,所以请不要使用 javascript 解决方案 :)

还有一个图表可以更好地说明我在说什么:

一些澄清: 如果我有 2 个不同宽度的容器,其中 1 个是绝对定位的,我怎样才能将它们匹配在一起,以便较短的容器始终扩展到较长容器的宽度?

任何人都可以就如何做到这一点提出建议吗?

【问题讨论】:

    标签: html css position width


    【解决方案1】:

    检查DEMO这里

    CSS

    .container{
        position: absolute;
        width:150px;
    }
    
    .anchor{
        font-weight: bold;
    }
    ul{
        margin:0;
        padding:0;
    }
    
    li{
        background: blue;
        list-style:none;
        margin:0;
        padding:0l
    }
    
    
    
    .select{
        background: red;
        display: inline-block;
        width:150px;
    }
    

    更新

    检查更新DEMO

    【讨论】:

    • 很遗憾,无法人为限制宽度。例如,如果您将其中一个列表项更改为非常长,它将延伸到容器之外。
    • 你想要什么,如果你的文本超过了宽度,那么它将包裹到 li 而不是重叠它......?请告诉我
    • 文本根本不应该换行。它应该只是向前延伸。
    • 应该没有包装。例如,如果li 中的文本是1111111111111111111111111111111111111111111111111111,则不应进行换行,它应仅出现在 1 行上。另外,我不能有任何固定的宽度。整个东西应该根据里面的内容调整大小。
    • 那么你如何保持两者的宽度相同......在你的问题中你提到你想要两个容器的宽度相同...... ???????????????????????????????????????
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    相关资源
    最近更新 更多