【发布时间】:2018-12-16 19:38:51
【问题描述】:
我正在尝试为我网站上的元素添加过渡效果。此元素设置为 display:none,但在单击复选框时设置为 display:block(复选框是一个单独的元素)。我想要做的是这样当复选框被选中时,元素被设置为显示:块,并且还显示一个转换,而不是它弹出。这是我的代码:
.category-text {
width: 82%;
padding-top: 5px;
padding-left: 8px;
font-family: 'Burbank', sans-serif;
font-size: 30px;
color: #F4D03F;
}
.desc-toggle {
position: absolute;
top: 5px;
left: 84.4%;
width: 73px;
padding: 5px;
font-family: 'Burbank', sans-serif;
font-size: 20px;
color: blue;
cursor: pointer;
z-index: 2;
border: solid #ffffff 2px;
}
#toggle-1 {
display: none;
}
input[type=checkbox]:checked ~ .category-description {
position: absolute;
display: block;
-webkit-transition: height 0.5s ease-in;
-moz-transition: height 0.5s ease-in;
-ms-transition: height 0.5s ease-in;
-o-transition: height 0.5s ease-in;
transition: height 0.5s ease-in;
}
<label class="desc-toggle" for="toggle-1">Description</label>
<input type="checkbox" id="toggle-1">
<div class="category-description">
<p class="category-text">text</p>
</div>
【问题讨论】:
-
为什么复选框设置为
display: none? -
复选框设置为 display:none 用于视觉目的。我做了 然后将 #toggle-1 设置为显示:无。这会将文本“描述”变成复选框
-
您在 sn-p 中的 css 缺少最初隐藏文本的类,只是提醒一下。至于您正在寻找的效果,您无法将过渡添加到 display:none;当更改为显示:块;。我建议使用可见性属性或过渡高度或宽度。
-
我的目标是在复选框将元素设置为 display:block 时使高度缓和。也许那是不可能的。
标签: javascript html css transition