显示无占用空间

Posted

技术标签:

【中文标题】显示无占用空间【英文标题】:Taking up space after display none 【发布时间】:2014-04-14 00:05:58 【问题描述】:

当我为#nav-icon 元素应用display: none; 时,它仍然占用空间。这是我的代码:

HTML

<div id="nav">
  <a href="" id="nav-icon"> <img src="navigation.png" </a>
  <ul>
    <li> <a href="#"> LINK </a> </li>
    <li> <a href="#"> LINK </a> </li>
    <li> <a href="#"> LINK </a> </li>
    <li class="navimage"> <a href="twitter.com"> <img src="twitter-icon.png"  /> </a> </li>
    <li class="navimage"> <a href="facebook.com"> <img src="facebook-icon.png"  /> </a> </li>
    </ul>
  </div>

CSS

#nav 
    border-bottom:1px solid #FFF;
    margin-bottom:20px;
    padding:0;
    text-align:center;
    max-width:95%;
    margin:0 auto;


#nav li 
    display:inline;


#nav a 
    display:inline-block;
    padding:15px;
    font-weight:bold;
    font-size:15px;
    margin:15px 0;


#nav-icon img 
    display:none;


.navimage 
    float:right;
    margin-top:-5px;

有什么办法吗?

【问题讨论】:

您确定多余的空间不只是在您的#nav a 周围填充吗? 删除 display:inline-block 并且它可以工作jsfiddle.net/Vinay199129/2s54q/1 【参考方案1】:

您在 #nav-icon 中隐藏了 img。但是,您没有隐藏实际的 &lt;a&gt; 包装。因为设置为inline-block,所以里面没有东西的时候可以显示。将display:none 更改为实际的#nav-icon 而不是#nav-icon img,这样就可以了。

您可能会遇到display 规则冲突的问题,因为您在同一元素上应用具有不同选择器的规则。 #nav a#nav-icon 是同一件事,但其中一个可能会否决另一个。为确保您正确选择了它,第二个应该包括所有以前的选择器,即#nav a#nav-icon

变化:

#nav-icon img 
    display:none;

http://jsfiddle.net/C4YPR/

收件人:

#nav a#nav-icon 
    display:none;

http://jsfiddle.net/C4YPR/1/

【讨论】:

这确实适用于这个问题!也感谢您的解释! :)

以上是关于显示无占用空间的主要内容,如果未能解决你的问题,请参考以下文章

Centos 查看硬盘空间

linux如何查看系统占用磁盘空间最大的文件及让文件按大小排序

sqlite3查看表空间占用情况

如何有条件地显示一个元素,保持其占用空间?

显示 None 正在占用空间

布局:一列根据需要宽,另一列占用剩余空间