使用过渡移动时,如何使两个浮动 div 平滑地相互跟随?
How do I make two floating divs smoothly follows each other when moving using transition?
我需要一些 CSS 编码方面的帮助。我目前正在尝试做的是一个滑入的侧边栏(就像在移动页面上一样),但我没有使位置绝对化,而是让两个 div 浮动在包装器中。
我的解释能力不是很好,所以我将通过一个非常简单的例子来进行演示。
HTML:
<!-- Using to toggle the sidebar -->
<input type="checkbox" id="toggle" hidden="hidden">
<!-- The wrapper -->
<div class="wrapper">
<!-- The content -->
<div class="content">
<label for="toggle">Show</label>
<!-- Content goes here -->
</div>
<!-- The sidebar -->
<aside class="sidebar">
<label for="toggle">Hide</label>
<!-- Sidebar content goes here -->
</aside>
</div>
CSS:
/* Just some general settings */
* { margin: 0; padding: 0; }
html, body {
width: 100%;
height: 100%;
}
/* When toggle - do this */
#toggle:checked + .wrapper > .content {
margin-left: -25%;
transition: all ease 1s;
}
/* The wrapper */
.wrapper {
width: 100%;
height: 100%;
overflow: hidden;
transition: all ease 1s;
}
/* The content */
.wrapper > .content {
width: 100%;
height: 100%;
overflow: auto;
float: left;
background-color: #2ecc71;
transition: all ease 1s;
}
/* The sidebar */
.wrapper > .sidebar {
width: 25%;
height: 100%;
overflow: auto;
float: left;
background-color: #27ae60;
transition: all ease 1s;
}
如您所见,当您单击 "Show" 或 "Hide" 时,边栏不会顺利出现或消失。 有什么办法可以让它顺利吗?
最简单的方法是在 body 标签上切换 class。例如 .sidebar-open
:
.wrapper,
.sidebar {
transform: translateX(0);
transition: all .5s ease-in-out;
}
.sidebar-open .wrapper,
.sidebar-open .sidebar {
transform: translateX(-200px);
}
我需要一些 CSS 编码方面的帮助。我目前正在尝试做的是一个滑入的侧边栏(就像在移动页面上一样),但我没有使位置绝对化,而是让两个 div 浮动在包装器中。
我的解释能力不是很好,所以我将通过一个非常简单的例子来进行演示。
HTML:
<!-- Using to toggle the sidebar -->
<input type="checkbox" id="toggle" hidden="hidden">
<!-- The wrapper -->
<div class="wrapper">
<!-- The content -->
<div class="content">
<label for="toggle">Show</label>
<!-- Content goes here -->
</div>
<!-- The sidebar -->
<aside class="sidebar">
<label for="toggle">Hide</label>
<!-- Sidebar content goes here -->
</aside>
</div>
CSS:
/* Just some general settings */
* { margin: 0; padding: 0; }
html, body {
width: 100%;
height: 100%;
}
/* When toggle - do this */
#toggle:checked + .wrapper > .content {
margin-left: -25%;
transition: all ease 1s;
}
/* The wrapper */
.wrapper {
width: 100%;
height: 100%;
overflow: hidden;
transition: all ease 1s;
}
/* The content */
.wrapper > .content {
width: 100%;
height: 100%;
overflow: auto;
float: left;
background-color: #2ecc71;
transition: all ease 1s;
}
/* The sidebar */
.wrapper > .sidebar {
width: 25%;
height: 100%;
overflow: auto;
float: left;
background-color: #27ae60;
transition: all ease 1s;
}
如您所见,当您单击 "Show" 或 "Hide" 时,边栏不会顺利出现或消失。 有什么办法可以让它顺利吗?
最简单的方法是在 body 标签上切换 class。例如 .sidebar-open
:
.wrapper,
.sidebar {
transform: translateX(0);
transition: all .5s ease-in-out;
}
.sidebar-open .wrapper,
.sidebar-open .sidebar {
transform: translateX(-200px);
}