如何在值为空时删除元素的高度?

时间:2016-08-20 00:07:25

标签: javascript jquery html css

我有这样的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可以做到吗?

4 个答案:

答案 0 :(得分:8)

您可以使用:empty伪选择器:

      $http.get('/getUsers').success(function (response) {

          if (response.responseErrorCode == 503) {
              console.log("No users in database");
          }
          else {

              $scope.users = response;
          }

      });

 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;
}

答案 1 :(得分: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> 

答案 2 :(得分:0)

你可以使用像

这样的Jquery
$('div:empty').hide();

答案 3 :(得分:0)

使用:空| CSS-招

 div:empty{
       display:none;
      }

reference from :empty | css-Trick