2016-04-14 13 views
0

divを隠すためにCSSを使用したいと思います。なし:私は2番目のdivを選択して表示適用するために使用することができますどのようなCSSCSSで子孫のないdivを選択するには?

<div> 
    I should be visible (red) 
    <ul> 
    <li>one</li> 
    </ul> 
</div> 

<div> 
    I should be hidden (blue) 
    <ul></ul> 
</div> 

:(または境界:このデモのために1pxのソリッドブルー)を、この与えられた

?ここで

はフィドルです:https://jsfiddle.net/7yab2z27/

+6

https://stackoverflow.com/questions/12206935/is-there-a-css-haschildren-selector あなたは – AchmadJP

+0

あなただけのJavaScriptやjQueryのことで親をターゲットにすることができますすることはできません。 – zer00ne

答えて

0

あなたは私のコードのかもしれないが、助けを参照してください、このような状況でJSを使用して検討するかもしれません。 jQuery to hide a DIV if it has no unordered list items

$(document).ready(function() { 
 

 
    $('#seconddiv').hide(); 
 
    $('#seconddiv').has('ul').show(); 
 
});
#seconddiv { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 
<div id="seconddiv"> 
 
    You cant see me I dont have unordered list lol! 
 
    <ul> 
 
    <li></li> 
 
    </ul> 
 
</div>

0

をCSSのあるものは、あなたが存在に基づいて、親/祖先に変更を加えることができないということです。私はここにあなたの答えを見つけ

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 

を含めることを忘れてはいけませんまたは子孫の状態。反対の場合は真です。

このような状況では、JSを使用し、条件に基づいて必要に応じてスタイルを適用することをお勧めします。

jQueryを使用していると仮定すると、次のようなことができます。

var allDivs = $("div"); 
allDivs.each(function(index,eachDiv){ 
    if($(eachDiv).find("li").length === 0){ 
     $(eachDiv).hide(); 
    } 
}); 
関連する問題