0

strong如果没有ul仅使用 CSS 的 s ,他们隐藏标签的方法是什么?

<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>
4

1 回答 1

0

尝试这个

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

>用于选择直接子级的选择器。如果 div 有一个直接子元素,strong那么该元素将被隐藏,但标签strong内的元素不会被隐藏。ul

有关更多信息,请查看此链接

更新

如果要在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才向元素添加了一个类。stronguldiv

通过在 javacript 代码中使用来检查是否有ul标签。divif(!ul[0])

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

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

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

于 2013-08-25T02:59:02.950 回答