2009-10-02 2 views
19

Я делаю вещи с прогрессом Ajax баров и прочее ...Как остановить разборку div?

В принципе у меня есть скрытый DIV, который говорит «Загрузка» в нем, и под ним у меня есть видимый DIV с моим содержанием в.

Когда он загружается, он угасает содержимое div, делает скрытый div видимым и перемещает его через javascript/относительное позиционирование, чтобы находиться в середине содержимого.

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

Знаете ли вы, как я могу остановить его от занимаемого места, когда он станет видимым?

Edit: Кто-то удалил тег, кажется

Загрузка DIV начинается от экрана ни один, поэтому он не занимает места, а затем, когда он становится видимым, он начинает занимать место, даже если он расположен относительно.

Я мог использовать видимые и невидимые, но тогда это заставило бы мое содержимое окна все время.

Похоже, что абсолютное позиционирование - это путь.

Что я хочу сделать, это совместить абсолютное и относительное позиционирование. Я пытаюсь получить абсолютные координаты содержимого div и установить его местоположение таким образом, но пока не получится.

Редактировать: Я просто перечитаю ваш ответ, и вы сделали именно это. Спасибо!

+1

это не имеет ничего общего с «ASP.NET»: не могли бы вы удалить тег? – enguerran

ответ

41

«Вы знаете, как я могу остановить его от занимания места, когда он станет видимым?»

Положение абсолютно.

div#theParent { 
    position:relative; 
    height:200px; 
    width:640px; 
    top:50px; 
    left:50px; 
} 
div#theChild { 
    position:absolute; 
    height:100px; 
    width:400px; 
    top:50px; 
    left:120px; 
} 

<div id="theParent"> 
    <div id="theChild"> 
    <p>This div is absolutely positioned to a relatively-positioned parent.</p> 
    </div> 
</div> 
+2

Почему downvote. Он спросил, как удерживать относительно позиционированный предмет от смежных братьев и сестер, когда он виден. – Sampson

+4

+1 от меня - если я не ошибаюсь в вопросе, ваш ответ - единственный ответ, который отвечает на его вопрос (о том, как остановить его перемещение, когда оно становится видимым, а не как остановить его, занимая пространство, когда оно невидимо). –

+0

, если вы играете с абсолютной позицией, конечно, div не будет двигаться ... Но даже если вопрос был задан таким образом, хорошей практикой является использование «display: none» вместо «visible: hidden». .. Вот почему я проголосую. – enguerran

5

Если вы хотите, чтобы сделать его невидимым, сделать его действительно невидимым style="display:none". Есть много способов сделать это ... не уверен, как вы это настроили или как вы изменяете свои элементы dom. Предоставьте еще какой-нибудь контекст (с помощью Ajax-элементов управления, пользовательского JavaScript, библиотеки jQuery и т. Д.), И мы можем дать вам более конкретное решение.

1

Вы можете попробовать различные вещи, например. Зависит от того, как создается ваш код. Поскольку вы не предоставили пример :)

display: none; 
height:0px 
line-height: 0px; 
font-size: 0px; 
3

Вы должны играть с опцией дисплей, а не вариант виден:

Совет: Даже невидимые элементы занимают место на страница. Используйте свойство «display» для создания невидимых элементов, которые не занимают места!

см w3schools

[EDIT]

После прочтения w3fools, даже если они не собираются какую-либо ошибку о pr_class_visibility, они о pr_class_display: так never see w3schools

Но вы можно посмотреть: reference.sitepoint.com:

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

0

Я знаю, что это был дан ответ, но если вы используете самозагрузки попробовать:

class='hide' 

вместо

class='hidden' 
Смежные вопросы