标签p是用来表示文本的段落,而pre标签则是用来展示代码的。 CSS中如何实现展开收起这样的效果呢?一种方法是使用伪元素和复选框。具体来说,可以给复选框绑定一个点击事件,当复选框被点击时,通过CSS来...
标签p是用来表示文本的段落,而pre标签则是用来展示代码的。 CSS中如何实现展开收起这样的效果呢?
一种方法是使用伪元素和复选框。具体来说,可以给复选框绑定一个点击事件,当复选框被点击时,通过CSS来控制要展示或者隐藏的内容,将相应内容写在伪元素:before或者:after中,来实现展开收起效果。
下面是一段示范的代码:
html
<p>这是一段文字,点击按钮可以展开/收起下面的内容</p>
<input type="checkbox" id="toggle-content"/> <!--复选框-->
<label for="toggle-content" class="toggle-label">展开/收起</label> <!--标签-->
<pre class="hidden-content">
这里是需要展示/隐藏的内容。
css
.hidden-content {
height: 0;
opacity: 0; /*隐藏内容*/
overflow: hidden;
transition: height .3s ease-in-out, opacity .3s ease-in-out; /*过渡动画效果*/
}
.toggle-label {
cursor: pointer;
}
#toggle-content:checked ~ .hidden-content {
/*使用CSS选择器,针对checked和hidden-content类实现效果*/
height: unset;
opacity: 1;
}