2013-05-01 3 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, (остановка займет какое-либо пространство). Это возится с макетом моей страницы.

Есть ли способ, которым я могу спрятать div, но все еще занимаю пространство, которое оно принимало раньше? Я не хочу менять цвет шрифта, потому что он будет по-прежнему выбираться.

Благодаря

+0

Возможный дубликат: http://stackoverflow.com/questions/6393632/jquery-hide-element-while-preserving-its-space-in-page-layout – Eli

+0

Возможный дубликат элемента jQuery для скрытия при сохранении его пространства в макет страницы] (https: // stackoverflow.com/questions/6393632/jquery-hide-element-while-preserve-its-space-in-page-layout) –

ответ

75

Используйте visibility CSS свойства для этого

видимости:

Свойство видимости определяет, отображаются ли боксы, порожденные элементом.

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

Демо: Fiddle

+0

+1. Ударьте меня на это - это лучшее решение. – naththedeveloper

+15

'css ('видимость', 'visible')', чтобы снова показать элемент;) – SNag

5

Try:

$(".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) и не требует жесткого кодирования определенной высоты? Даже если вы ** хотели ** определенной высоты, вы бы этого не сделали, вы просто поместили бы высоту в css на уже существующий элемент. Я не хочу быть грубой, и я ценю, что хорошо иметь альтернативные решения. Я просто озадачен предложением о том, что кажется всегда худшим решением, через год после решения вопроса? Я что-то упускаю? – ToolmakerSteve

1

Важно отметить, что пример dfsq с использованием Opacity: 0 будет по-прежнему позволять выбирать содержимое, копировать/вставлять и т. Д., Хотя при выборе нет видимой подсветки текста.

Смежные вопросы