这是我的情况:
所以我试图通过单击另一个 div 来切换侧边栏。它是一个 100% 高度的侧边栏,固定在视口的右侧。本质上,我试图在 50px 宽的切换 div 和 250px 宽的侧边栏 div 周围包裹一个 300px 的 div,并且我想使用负边距右像素值隐藏侧边栏部分。使用 .toggle:active 选择器(因此在单击切换 div 时会发生这种情况),我想通过将边距右像素值设置回 0px 来显示侧边栏部分。
到目前为止的代码:
<div class="wrapper">
<a href="#">
<div class="toggle">Toggle</div>
</a>
<div class="cart">Cart</div>
</div>
到目前为止的CSS:
.wrapper {
position:fixed;
width:300px;
height:100%;
background-color:orange;
top:0;
right:0;
margin-right:-250px;
}
.toggle {
position:relative;
display:block;
width:50px;
height:100%;
background-color:grey;
float:left;
}
.toggle:active .wrapper {
margin-right:0px;
}
.cart {
position: relative;
width:250px;
height:100%;
background-color:red;
float:right;
}
这是我的问题:
当 .toggle:active 使用时,如何定位 .wrapper 来更改 CSS 属性?另外,如何指定侧边栏何时可见,何时不可见?
我是 Javascript 新手,但由于回调函数,我似乎需要它来执行此操作。如果 CSS-only 是可能的,我会倾向于那个解决方案。请注意,我想使用 margin-right 以便稍后我可以选择使用 CSS 过渡来动画我的元素左右滑动。