2016-08-20 65 views
0

我有一個HTML的結構是這樣的:如何在元素值爲空時移除元素的高度?

li{ 
 
    list-style: none; 
 
    border-bottom: 1px solid; 
 
    padding:4px; 
 
} 
 

 
div{ 
 
    background-color: #eee; 
 
    padding: 6px 0; 
 
}
<ul> 
 
    <li> 
 
    <span>something</span> 
 
    <div></div> 
 
    </li> 
 
    <li> 
 
    <span>something</span> 
 
    <div>something else</div> 
 
    </li> 
 
</ul>

,這是預期的結果:

enter image description here

我想我可以做到這一點的JS,這樣的事情:

if ($('div').val() == '') { 
    $('div').hide(); 
} 

但我想知道我可以通過純HTML和CSS來實現嗎?

+0

那麼爲什麼我的問題已經獲得一票是接近* *不清?真的不清楚嗎?我提供了預期結果的截圖......仍然不清楚嗎?! – stack

+1

[如何隱藏/刪除DIV空]時可能重複(http://stackoverflow.com/questions/1455112/how-to-hide-remove-a-div-when-empty) – Calum

回答

2

如果需要舊的瀏覽器的支持,你可以只使用線高度,間距來代替。

li{ 
 
     list-style: none; 
 
     border-bottom: 1px solid; 
 
     padding:4px; 
 
    } 
 
    
 
    div{ 
 
     background-color: #eee; 
 
     // padding: 6px 0; 
 
     line-height: 2; 
 
    }
<ul> 
 
    <li> 
 
    <span>something</span> 
 
    <div></div> 
 
    </li> 
 
    <li> 
 
    <span>something</span> 
 
    <div>something else</div> 
 
    </li> 
 
</ul>

+0

我不確定它會起作用,但如果它起作用,那麼這是一個好主意..無論如何都是upvote – stack

7

您可以使用:空僞選擇:

div:empty { 
    display: none; 
} 

li{ 
 
    list-style: none; 
 
    border-bottom: 1px solid; 
 
    padding:4px; 
 
} 
 

 
div{ 
 
    background-color: #eee; 
 
    padding: 6px 0; 
 
} 
 

 
div:empty { 
 
    display: none; 
 
}
<ul> 
 
    <li> 
 
    <span>something</span> 
 
    <div></div> 
 
    </li> 
 
    <li> 
 
    <span>something</span> 
 
    <div>something else</div> 
 
    </li> 
 
</ul>

+0

很棒.. upvote。 。但遺憾的是,我網站上的大多數用戶使用IE7這樣的舊瀏覽器':-('..所以我不能使用這種方法。 – stack

+0

這個答案可能會幫助你:http://stackoverflow.com/a/6413509/193717 – Calum

+0

鼓勵您的用戶使用現代瀏覽器 – Aziz

0

您可以使用jQuery像

$('div:empty').hide(); 
+0

在問題中指定解決方案應該基於HTML和CSS。 – Calum