2017-04-17 30 views
3

子供が3人以上いる場合のみ、ボックスを表示するようにcssを変更することはできますか?2人以上の子供がいる場合のみ表示

例:

// Don't show 
<ul> 
    <li>Something</li> 
</ul> 

// Show 
<ul> 
    <li>Something</li> 
    <li>Something</li> 
</ul> 

私はCSSでそれをやろうとしています。出来ますか?

+0

いいえ – DaniP

+1

[要素に複数の子がある場合にCSSを追加する方法は?](http://stackoverflow.com/questions/18738052/how-to-add-css-if) -element-has-more-one-child) –

+0

これは重複していません、それにフラグを割り当てる前に質問を読んでください! –

答えて

7

:only-childセレクタを使用して、唯一の場合はliを非表示にすることができます。

ul li:only-child{ 
    display: none; 
} 

ul li:only-child { 
 
    display: none; 
 
}
<ul> 
 
    <li>Don't Display</li> 
 
</ul> 
 
<ul> 
 
    <li>Display</li> 
 
    <li>Display</li> 
 
</ul>

https://jsfiddle.net/90kx009u/


ここであなたが求めている正確に何を達成したい場合はJSです:

let thelist = document.querySelector('.thelist') 

if(thelist.childElementCount <= 1){ 
    thelist.remove() 
} 

https://jsfiddle.net/90kx009u/2/

+1

しかし、これは彼が制御しようとしている要素であるコンテナを表示します。 – Utkanos

+0

@Utkanosそれは正しいです – Kolby

+0

@Utkanosは正しいですが、OPがちょうどCSS +1で得ることができます...言及したように、要素全体を隠すことができないので、たとえば擬似があればhttps:// jsfiddleが表示されます。 net/90kx009u/1/ – DaniP

1

あなたはCSSの要素の直接ではなく、「数」総数ことができますので、2つの以上のdiv要素があります場合にのみクラスを適用する方法はありません(あなたはそのためにJavaScriptを必要とするだろう) は、ここで詳細を参照してください。 How to add CSS if element has more than one child?

関連する問題