位置:粘性在flexbox子项中不起作用

时间:2018-07-11 13:00:51

标签: css flexbox position sticky

我有一个带5个直属孩子的flexbox。第二列和第三列(.colonnade__trigger)包含子项(span.label),该子项应具有粘性。 但这不是:(

HTML

<div class="colonnade">
    <aside class="sidebar colonnade__column alpha">
        <div class="">
            NAVI
        </div>
    </aside>
    <label class="colonnade__trigger alpha" for="colonnade-alpha">
        <span class="label">
            Show Navigation
        </span>
    </label>
    <main class="main" id="main">
    </main>
    <aside class="sidebar colonnade__column omega">
        <div class="">
            CART
        </div>
    </aside>
    <label class="colonnade__trigger omega" for="colonnade-omega">
        <span class="label">
            Show Cart
        </span>
    </label>
</div>

CSS

.colonnade {
    display: flex;
}
.colonnade__trigger {
    display: block;
    width: 2em;
    padding: .5em;
    background-color: #eee;
}
.colonnade__trigger .label {
    position: sticky;
    display: block;
    transform: rotate(90deg);
    transform-origin: 0 100%
}

有关方案https://codepen.io/bitstarr/pen/QBwMEq,请参见我的Codepen

1 个答案:

答案 0 :(得分:1)

您需要指定一个固定位置。 为此,请分配类似top: "your wanted distance"px;

例如:

.colonnade__trigger .label {
position: sticky;
top: 10px;
display: block;
transform: rotate(90deg);
transform-origin: 0 100%
}

MDN - Sticky Position