使用CSS3隐藏元素

时间:2013-08-25 02:32:35

标签: javascript css

如果没有strong仅使用CSS

,他们是否可以隐藏ul代码
<div class="lower lts-blue">    
    <strong>Interest Focus</strong>:
    <br/>

    <strong>Skills</strong>:
    <ul id="dnn_ctr2446_View_blSkills" class="tags">
        <li><a href="">Observing</a></li><li><a href="">Comparing &amp; Contrasting</a></li>
    </ul>
    <br/>

    <strong>Type</strong>: 
    <ul id="dnn_ctr2446_View_blType" class="tags">
        <li><a href="">Exemplars</a></li>
    </ul>        
</div>

1 个答案:

答案 0 :(得分:0)

试试这个

div.lower > strong{
     display: none; /* or visibility: hidden; */
}

>选择器用于选择直接子项。如果div具有strong的直接子项,则该元素将被隐藏,但不会隐藏strong标记内的ul元素。

有关详细信息,请查看此link

<强>更新

如果您想隐藏strong元素,如果ul中没有div标记,则可以使用javascript动态完成。

的Javascript

var div = document.getElementsByClassName('lower')[0];
var ul = div.getElementsByTagName('ul');
var strong = div.getElementsByTagName('strong');
if(!ul[0]){
    for(var i=0; i < strong.length; i++){
        strong[i].className += " dynamicStrong";
    }
}

CSS

.dynamicStrong{
     display: none; /* or visibility: hidden; */
}

在上面的代码中,我向dynamicStrong元素添加了一个类strong,当且仅当ul元素中没有div个标记时。

检查ul中是否有div个标签是使用javacript代码中的if(!ul[0])完成的。

您还可以在for循环中使用javascript添加内联样式,

strong[i].style.display = "none";

我不喜欢上述方法,因为它为指定的元素创建了内联样式,并且还覆盖了以前的css属性。