我的意图是在一个站点上有 4 个主要的导航栏。如果用户将鼠标悬停在其中,它会展开并显示内容。但是我应该怎么做内容部分呢?
#bottom-menu:hover #contact{
visibility: visible ;
}
如果我在盒子完全展开时使其可见,它可以工作,但存在一个问题:内容虽然不可见,但仍然存在并且需要空间,这会导致布局折叠。
我想用纯 CSS 来做到这一点,尽管我知道 jQuery。
我的意图是在一个站点上有 4 个主要的导航栏。如果用户将鼠标悬停在其中,它会展开并显示内容。但是我应该怎么做内容部分呢?
#bottom-menu:hover #contact{
visibility: visible ;
}
如果我在盒子完全展开时使其可见,它可以工作,但存在一个问题:内容虽然不可见,但仍然存在并且需要空间,这会导致布局折叠。
我想用纯 CSS 来做到这一点,尽管我知道 jQuery。
visibility: hidden
导致元素继续消耗布局空间。
display:none
导致它不占用布局空间。
想想“剧透”与“隐藏”。
https://developer.mozilla.org/en/CSS/visibility
可见性 CSS 属性用于两件事:
- hidden 值隐藏了一个元素,但在它本来应该存在的地方留下了空间。
- 折叠值隐藏表格的行或列。它还折叠 XUL 元素。
https://developer.mozilla.org/en/CSS/display
display CSS 属性指定用于元素的呈现框的类型。在 HTML 中,默认显示属性值取自 HTML 规范中描述的行为或浏览器/用户默认样式表。XML 中的默认值是内联的。
除了许多不同的显示框类型之外,none 值允许您关闭元素的显示;当您使用 none 时,所有子元素的显示也会关闭。文档呈现为好像该元素在文档树中不存在。
我仍然鼓励您阅读这两篇文章,并了解它们如何影响页面,而不仅仅是针对这种特殊情况。
使用display: none
. 请参阅CSS 2.1:11.2 可见性:“可见性”属性:
该
'visibility'
属性指定是否呈现由元素生成的框。不可见的盒子仍然会影响布局(将'display'
属性设置'none'
为完全禁止盒子生成)。值具有以下含义: [...]
hidden
生成的框是不可见的(完全透明,没有绘制任何内容),但仍然影响布局。此外,如果元素的后代具有'visibility: visible'
.