css选择器中 ~ 和 + 的区别是什么呢?
本文介绍了css选择器中 ~ 和 + 的区别是什么呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<style>
#slider {
overflow-y: hidden;
max-height: 400px;
transition: all .5s cubic-bezier(0, 1, 0.5, 1);
}
#btn {
display: none;
}
#btn + label {
border: none;
display: inline-block;
cursor: pointer;
}
#btn:checked ~ #wrap > #slider {
max-height: 0;
}
</style>
</head>
<body>
<h3>使用CSS实现 Slide Up & Slide Down</h3>
<input id="btn" type="checkbox"><label for="btn">来电我呀!</label>
<div id="wrap">
<div id="slider">
<p>哈哈哈哈哈...</p>
<p>哈哈哈哈哈...</p>
<p>哈哈哈哈哈...</p>
<p>哈哈哈哈哈...</p>
<p>哈哈哈哈哈...</p>
<p>哈哈哈哈哈...</p>
<p>我在测试</p>
</div>
</div>
</body>
</html>
此处
#btn:checked ~ #wrap > #slider {
max-height: 0;
}
换成
#btn:checked + #wrap > #slider {
max-height: 0;
}
为什么实现不了效果?~和+好有什么区别呢,除了~选择器不需要紧跟在前面元素之前,还有什么区别吗?
解决方案
实现不了效果是因为#btn
和#wrap
之间隔着一个label
(题主你好像知道这个区别,是不是没留意到label了?)
通用兄弟选择器:https://developer.mozilla.org...
紧邻兄弟选择器:https://developer.mozilla.org...
这篇关于css选择器中 ~ 和 + 的区别是什么呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文