[英]CSS selector to select a child in the parent's hierarchy
如果使用CSS選擇器,則我想將按鈕的背景設置為紅色(如果它是.parent
類層次結構中唯一的按鈕)。
我嘗試了下面的選擇器,但是如果按鈕的兄弟位於div內則失敗。
<style>
.parent .test:only-of-type {
background: red;
}
</style>
情況1:沒有按鈕應標記為紅色 (在這種情況下選擇器失敗)
<div class="parent">
<div class="boat">
<button class="test">This is a paragraph.</button>
</div>
<button class="test">This is a paragraph.</button>
<button class="test">This is a paragraph.</button>
<div class="other">
<button class="test">This is a paragraph.</button>
</div>
</div>
</div>
情況2:按鈕應標記為紅色
<div class="parent">
<div class="boat">
<button class="test">This is a paragraph.</button>
</div>
</div>
</div>
情況3:不應將任何按鈕標記為紅色 (在這種情況下選擇器將失敗)
<div class="parent">
<div class="boat">
<button class="test">This is a paragraph.</button>
</div>
<div class="other">
<button class="test">This is a paragraph.</button>
</div>
</div>
</div>
要使Boat div內部的按鈕變為紅色,可以使用選擇器:
.parent > .boat > .test {
}
您可以使用:only-child
選擇器:
.parent > .boat:only-child > .test:only-child, .parent > .test:only-child { color: red; }
<div class="parent"> <div class="boat"> <button class="test">not red.</button> </div> <div class="other"> <button class="test">not red.</button> </div> </div> <div class="parent"> <div class="boat"> <button class="test">not red.</button> </div> <button class="test">not red.</button> <button class="test">not red.</button> <div class="other"> <button class="test">not red.</button> </div> </div> <div class="parent"> <div class="boat"> <button class="test">red.</button> </div> </div>
更新
選擇器說明:
.parent
從您的父母開始 > .boat:only-child
大於( >
)表示直接子代,因此這意味着.boat
必須是.boat
的直接.parent
且是唯一子代(這是:only-child
位) > .test:only-child
再次是> .test:only-child
,這意味着.test
必須是.boat
的直接子代,並且是唯一子代 第二個選擇器是可選的-如果您只有一個按鈕而沒有Boat div
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.