90

我有以下 div 元素:

.description {
  color: #b4afaf;
  font-size: 10px;
  font-weight: normal;
}
<div class="description">Some text here</div>

然后我在一个元素上有一个点击功能来隐藏上面的div:

$('#target').click(function(){
  $(".description").hide();
});

当我隐藏 div 时,它会折叠并停止占用空间。这弄乱了我的页面布局。

有没有办法隐藏 div,但仍然保持以前占用的空间?我不想更改字体颜色,因为它仍然可以选择。

4

6 回答 6

165

为此使用可见性css 属性

能见度:

可见性属性指定是否呈现由元素生成的框。

$(".description").css('visibility', 'hidden');

演示:小提琴

于 2013-05-01T10:25:59.443 回答
13

为了完整起见,还有另一种选择。切换opacity

$(".description").css('opacity', 0); // hide
$(".description").css('opacity', 1); // show

http://jsfiddle.net/KPqwt/

但是visibility,此任务首选使用。

于 2013-05-01T10:34:42.557 回答
11

尝试:

$(".description").css("visibility", "hidden")

hide()相当于:$(".description").css("display", "none");

这不会保留元素占用的空间。

Hidden使元素不可见,但仍然保留空间。

于 2013-05-01T10:26:56.153 回答
6

需要注意的是,使用 Opacity:0 的dfsq示例仍然允许选择、复制/粘贴等内容,尽管选择时没有可见的文本突出显示。

于 2016-07-08T18:22:28.180 回答
3

您可以将另一个 div 包裹在它的外面,并可能告诉它要占据的特定高度。这样你的内部 div 可以显示和隐藏和淡出等,外部 div 将按住页面上的房地产。

于 2014-07-11T20:42:15.003 回答
1

在 CSS 中有很多方法可以做到这一点。

  • 可见性:隐藏;// 最好的
  • 变换:比例(0);
  • z 指数:-999999;// 不适用于特定定位
  • 不透明度:0;// 更糟糕的是,因为点击和输入事件仍然有效
于 2021-11-30T03:37:57.023 回答