【发布时间】:2021-07-26 12:05:53
【问题描述】:
我正在尝试将转换属性添加到复选框开关。它的起始位置是 flex-start,我希望它顺利过渡到 flex-end。我只是似乎无法让它在 flex-end 属性上工作,但奇怪的是,开关移动到 flex-end 并且背景颜色转换正确。
我看过以前类似问题的答案,但我就是无法破解这个问题!
有人可以告诉我我在这里缺少什么吗?
提前致谢。
/* the container controls the switch size */
.switch-container {
width: 100%;
height: 34px;
background-color: coral;
}
/* hide the default checkbox */
.checkbox {
position: absolute;
left: -9999px;
}
/* target the label i.e. box around the slider */
.switch {
position: relative;
display: flex;
width: 100%;
height: 100%;
}
/* target the span element */
.slider {
display: flex;
position: absolute;
cursor: pointer;
/* set size of slider track */
top: 10px;
left: 0;
right: 0;
bottom: 10px;
/* === end set size === */
background-color: #ccc;
align-items: center;
justify-content: flex-start;
transition: var(--transition);
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
background-color: rgb(199, 36, 36);
box-shadow: 2px 2px cadetblue inset, -2px -2px cadetblue inset;
transition: var(--transition);
}
input:checked + .slider:before {
transform: translateX(129%);
background-color: darkgreen;
transition: var(--transition);
}
input:checked + .slider {
background-color: #2196f3;
transition: var(--transition);
}
<section class="switch-container">
<label class="switch">
<input type="checkbox" class="checkbox"/>
<span class="slider"></span>
</label>
</section>
</html>
我遇到的问题是,如果我让开关大小响应父容器的大小,那么使用transform: translateX(some-value) 移动切换滑块,(some-value) 必须重新计算以适应当前轨道大小.
【问题讨论】:
-
你好 fishbite 你想要什么,当你点击它时,它会随着过渡顺利移动?
-
align-items属性取离散值,不能对它使用transition属性 -
希望对您有所帮助here
-
@KiranMistry 是的,我希望它能够顺利过渡到曲目的尽头。我的目标是让开关在尺寸上完全响应我正在制作的游戏。
transform: translateX(26px);的问题在于它使用了特定的 px 值,我不想使用它。 -
@meine 说我别无选择,只能使用
transform: translateX(some-value);
标签: html css flexbox transition