2013-05-01 108 views
38

我有以下的div隱藏格但保留空白

CSS

.description { 
    color: #b4afaf; 
    font-size: 10px; 
    font-weight: normal; 
} 

HTML

<div class="description">Some text here </div> 

然後,我要隱藏上面的div元素上的點擊功能:

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

當我隱藏它會崩潰(停止佔用任何空間)。這與我的頁面佈局有關。

有沒有一種方法可以隱藏div,但仍然佔用之前的空間?我不想更改字體顏色,因爲它仍然可以選擇。

感謝

+0

可能的重複:http://stackoverflow.com/questions/6393632/jquery-hide-element-while-preserving-its-space-in-page-layout – Eli 2013-05-01 10:28:35

回答

75

使用visibility CSS屬性爲這個

知名度:

visibility屬性指定由 元件所產生的箱是否被渲染。

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

演示:Fiddle

+0

+1。擊敗我 - 這是最好的解決方案。 – naththedeveloper 2013-05-01 10:30:21

+15

'css('visibility','visible')'再次顯示元素;) – SNag 2014-01-08 13:52:23

5

嘗試:

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

hide()是等價於:$(".description").css("display", "none");

哪個不保留元素正在採取的空間。

Hidden使元素不可見,但仍然保留空間。

6

另一種選擇是爲了完整性。切換opacity

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

http://jsfiddle.net/KPqwt/

但是使用visibility是首選這項任務。

0

你可以在它的外面包裹另一個div,並可能告訴它一個特定的高度來佔據。這樣你的內部div可以顯示和隱藏和fadeOut等,而外部div將壓制頁面上的房地產。

+0

你可以。但是在什麼情況下你想要這樣做,當接受的答案(從一年前開始!)更簡單(不需要額外的div),並且不需要對特定高度進行硬編碼?即使你**想要一個特定的高度,你也不會這樣做,你只需將高度放在已存在的元素上。我不是故意的,我很欣賞有其他解決方案是很好的。在問題解決一年之後,我似乎對似乎總是劣等的解決方案的建議感到困惑不解。我錯過了什麼嗎? – ToolmakerSteve 2014-08-11 18:38:45

1

重要的是要注意,dfsq的示例使用不透明度:0將仍然允許選擇內容,複製/粘貼等,儘管在選擇時沒有可見的文本高亮顯示。