【发布时间】:2018-07-11 23:24:11
【问题描述】:
我有一个带有 5 个直接子级的 flexbox。第一列和最后一列 (.colonnade__column) 应缩放为零(而不是 display: none)。
完成后,内容按预期缩放,但保留空间。所以下一个/上一个元素不会移动。
我尝试调整列子元素的大小并使列本身更加灵活,但我陷入了死胡同……
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__column {
padding: 1em;
width: 20%;
min-width: 16em;
max-width: 20em;
/*display: none;*/
transform: scaleX(0);
transition: transform .3s;
background: #ccc;
}
.colonnade__column.alpha {
transform-origin: 0 0;
}
.colonnade__column.omega {
transform-origin: 100% 0;
}
.colonnade__state.alpha:checked ~ .colonnade__column.alpha,
.colonnade__state.omega:checked ~ .colonnade__column.omega {
/*display: block;*/
transform: scaleX(1);
}
看看codepen。该行为由带有垂直文本的浅灰色区域触发。
【问题讨论】:
-
变换只是视觉效果,不影响布局
-
确实....这是基本的。
-
我正在寻找一个似乎已经失效的副本,这是codepen.io/gc-nomade/details/jzyBaz的sn-p
-
你不能定位你想绝对隐藏的那个吗?还有为什么你不能使用显示为什么用比例隐藏它,你从来没有解释过?
-
隐藏外部内容应该有很好的效果,不像显示属性那样二进制。同样使用绝对定位,侧边栏可以覆盖主要内容,在我的示例中,主要内容的大小取决于侧边栏。
标签: css flexbox css-transforms