【发布时间】:2018-06-22 07:25:05
【问题描述】:
我正在尝试使用 :last-child 以不同的方式设置最后一个元素的样式,但我无法修改它以便只计算可见元素。
$(document).ready(function() {
$(document).on("click", "button", function() {
$("p:last-child").toggleClass("display-none");
});
});
p {
background-color: #ddd;
padding: 10px;
border: 1px solid #888;
}
p:last-child {
border: none;
}
.display-none {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<button>Toggle Display</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum justo eget auctor consectetur. Duis mollis posuere enim, sit amet posuere sem tristique et. Fusce nec nulla tincidunt, fermentum quam vel, mattis purus.</p>
<p>Nulla a est congue, scelerisque turpis vel, egestas urna. Suspendisse ac arcu hendrerit, eleifend lorem sit amet, facilisis erat.</p>
<p class='display-none'>Praesent vitae quam rhoncus, tincidunt lacus at, sagittis velit. Vivamus lorem purus, congue pellentesque libero vel, molestie ullamcorper risus.</p>
</div>
在这个例子中,我希望最后一段没有边框。当您单击 Toggle Display 时,它会在最后一段添加或删除类 display-none。当最后一段被隐藏时,我希望它前面的段落获得它应该具有的样式,如果它是可见的。
我尝试了以下方法,但都没有成功:
p:last-child:not(.display-none)p:not(.display-none):last-child
那么,我如何链接两个伪选择器,以便实现我想要发生的事情?
【问题讨论】:
标签: html css css-selectors pseudo-class