Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2011, 11:42
Аспирант
Отправить личное сообщение для revvo Посмотреть профиль Найти все сообщения от revvo
 
Регистрация: 17.01.2011
Сообщений: 38

Отключать видимость при нулевой высоте, или не отключать?
Делаю анимацию, прячу и показываю элемент интерфейса. Когда я ему задаю высоту 0, он ведь все равно не видим. Стоит ли отключать ему видимость - display: none; ? Я не вижу смысла. Но может есть подводные камни, и подводные грабли, о к-рых я не знаю?
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2011, 11:45
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Прятать через height: 0 не очень удачная идея. IE6, например, трактует height как min-height, да и при нулевой высоте, емнип, элемент может быть виден из-за паддингов.
Лучше использовать display:none для скрытия
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2011, 13:22
Аспирант
Отправить личное сообщение для revvo Посмотреть профиль Найти все сообщения от revvo
 
Регистрация: 17.01.2011
Сообщений: 38

Дело даже не в том, что я его так прячу, просто я все равно анимацию делаю, так или иначе я его свожу к нулю. Вот и думаю, а нужно ли дополнительно еще прятать.

IE6 меня не интересует, можно забить.

Паддингов нет, это никак не мешает.

Еще есть аргументы?
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2011, 13:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

После того как значением становится нуль, нужно делать как сказал B@rmaley.e><e
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2011, 20:59
Аспирант
Отправить личное сообщение для revvo Посмотреть профиль Найти все сообщения от revvo
 
Регистрация: 17.01.2011
Сообщений: 38

Сообщение от monolithed Посмотреть сообщение
После того как значением становится нуль, нужно делать как сказал B@rmaley.e><e
Что значит нужно? Аргументировать можете? Я не докапываюсь, мне интересно просто понять.
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2011, 02:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от revvo
Что значит нужно? Аргументировать можете? Я не докапываюсь, мне интересно просто понять.
Ну а для чего по твоему в стандарт CSS добавили свойство display? Если бы блок можно было прятать просто уменьшив его значение высоты, сомневаюсь что ввели бы такое свойство как display. Установив height в нулевое значение, не всегда можно быть уверенным в том что блок скроется полностью. Нужно учитывать такие свойства как line-height, font-size, padding, margin, border и т.д. тоесть установив значение height в нулевое значение, нужно позаботиться и о свойствах что я описал выше что бы элемент 100% был скрыт, для этого и ввели свойство display с параметром none что бы не мучатся с тем что я описал выше. Так же не забываем о наследуемых/глобальных свойствах.

Последний раз редактировалось devote, 09.08.2011 в 02:31.
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2011, 13:43
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

height: 0 не скрывает элемент
<style type="text/css">
#parent {backgroud: red; height: 0; width: 100px}
#child {background: blue; height: 100px; width:100px;}
</style>

<div id="parent">
  content
  <div id="child">
    child content
   </div>
</div>
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2011, 16:07
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

B@rmaley.e><e,
Если добавить overflow: hidden; то элемент будет скрыт)))

Но вот от бордера overflow не спасет, так что однозначно ставить display: none надо
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #9 (permalink)  
Старый 09.08.2011, 17:39
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от walik
Если добавить overflow: hidden; то элемент будет скрыт
Это. в свою очередь, повлечёт:
1. Создание контекста форматирования (Не факт, что плохо, но это какой-то side-effect)
2. Невозможность вынести дочерний блок за пределы родительского позиционированием.

Ну и я уже не говорю о двух свойствах против одного. Которые, опять же, не предназначены для скрытия элемента.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто нибудь подскажет onmouseout при ul > li > ul, или все Великие kudenv Элементы интерфейса 2 12.03.2011 12:34
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55