Jump to content
  • 0

Накладывается скрытый слой на кнопки формы


rolph
 Share

Question

Сделал форму, в которой при выборе radio, открывается div. Но этот div накладывается на кнопки формы. Подскажите, где недоглядел.

<div id="firstdiv">
<div id="Scr1" class="hidden" >
1ый блок спрятанный
</div>
<div id="Scr2" class="hidden" >
2ой блок спрятанный
</div>
</div>

<input type="submit" class="buttons" value="Записать" />   <input type="reset" class="buttons" value="Очистить" />

#firstdiv {position:relative;}
#Scr1 {
position:absolute;
}
#Scr2 {
position:absolute;
}

Edited by rolph
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0
position:relative, наверно, у инпутов или у их родителя его нет

Странно, вроде везде указал.

<form action="save_form.php" method="post" name="test_form"  style="position:relative;">
<div style="position:relative;">

<p><input type="radio" value="1" name="R" OnClick="java script:R1();" style="width:30px;position:relative;">Вариант1</p>
<p><input type="radio" value="0" name="R" OnClick="java script:R2();" style="width:30px;position:relative;">Вариант2</p>

<div style="position:relative;">
<div id="Scr1" class="hidden" >
<select>
<option>1</option>
</select>
<input type="radio" name="know_from" value="journal" style="width:30px;">1   
<input type="radio" name="know_from" value="internet" style="width:30px;">2   
<input type="radio" name="know_from" value="exhibition" style="width:30px;">3   
<input type="radio" name="know_from" value="friends" style="width:30px;">4   
<input type="radio" name="know_from" value="expartner" style="width:30px;">5<br>
<p>
<select>
<option>1</option>
</select>
</p>
</div>
<div id="Scr2" class="hidden" >
<input type="radio" name="know_from" value="journal" style="width:30px;">1   
<input type="radio" name="know_from" value="internet" style="width:30px;">3   
<p><select>
<option>1</option>
</select></p>
<p><select>
<option>1</option>
</select></p>
</div>
</div>
<div style="position:relative;">
<input type="submit" class="buttons" value="Записать" />   <input type="reset" class="buttons" value="Очистить" />
</div>
</form>
</div>

Link to comment
Share on other sites

  • 0

<p><input type="radio" value="1" name="R" OnClick="java script:R1();" style="width:30px;position:relative;">Вариант1</p>

<div style="position:relative;">

Находятся на одном уровне вложенности, у обоих общий родитель с релейтивом, у одного релейтив есть, а у другого нет. В добавок, релейтив еще и по коду идет ниже, боюсь, ни у одного браузера нету шансов.

Почитайте внимательно мануалы про релейтив и абсолют и z-index. Там все это подробно с примерами описывается, хоть в гугле, хоть тут на сайте.

Edited by Justnewone
Link to comment
Share on other sites

  • 0
<p><input type="radio" value="1" name="R" OnClick="java script:R1();" style="width:30px;position:relative;">Вариант1</p>

<div style="position:relative;">

Находятся на одном уровне вложенности, у обоих общий родитель с релейтивом, у одного релейтив есть, а у другого нет. В добавок, релейтив еще и по коду идет ниже, боюсь, ни у одного браузера нету шансов.

Почитайте внимательно мануалы про релейтив и абсолют и z-index. Там все это подробно с примерами описывается, хоть в гугле, хоть тут на сайте.

Т.е. надо для основного div'a (div формы) сделать relative, и дальше только указывать absolute, где необходимо?

Link to comment
Share on other sites

  • 0
Т.е. надо для основного div'a (div формы) сделать relative, и дальше только указывать absolute, где необходимо?

В первую очередь надо потратить 20 минут и почитать то, что выше написал, а затем уже пробывать то что Вы написали.

Link to comment
Share on other sites

  • 0
В первую очередь надо потратить 20 минут и почитать то, что выше написал, а затем уже пробывать то что Вы написали.

Потратил :)

Т.е. суть в следующем, использую для всех элементов relative, кроме, тех, которые скрываются.

А вся форма делится на слои:

— статические элементы;

— те которые скрываются;

— кнопки

Верно?

Link to comment
Share on other sites

  • 0
Потратил :)

Т.е. суть в следующем, использую для всех элементов relative, кроме, тех, которые скрываются.

А вся форма делится на слои:

— статические элементы;

— те которые скрываются;

— кнопки

Верно?

Видно что потратили, но не совсем с пользой, хотя прогресс =)

1. Не надо абсолютно всем теперь назначать релейтив. Надо помнить, что релейтив - вынужденное назначение в Вашем случае, ибо тем самым показываем элемент, относительно которого будет отсчитываться абсолютный элемент.

2. Физическая модель, релейтива и прочих абсолютов, на мой взгляд, выглядит так: Представьте себе, что вы в пленке оракал вырезали прямоугольник, отсоединили его от подложки, сместили как нибудь и приклеили сверху обратно (весь остальной лист - это просто поток, без релейтива). Будет ли "лоскуток" виден сверху всех - думаю, ответ очевиден. Это лоскуток релейтив. Теперь, мы берем в первом куске пленки отрезаем еще лоскут и наклеиваем на первый. " лоскута релейтив и один непременно будет сверху. Как раз последовательность отрезания, в данном случае, и определит, который будет сверху, это и есть z-index, чем он больше (чем позднее отрезан лоскут) тем выше он будет над всеми остальными. Теперь, представим что мы этот лоскуток наклеиваем на другой нетронутый лист, то есть поверх общего тронутого или нет потока, лоскуток в нем никакого участия не принимает. Это как бы лоскуток абсолют, и там все тоже самое с z-indexom и прочее...

единственный скользкий момент, кое-где могут возникнуть проблемы, я-индек у релейтива может быть сильнее чем номинально тот же у абсолюта. Решается назначением большего z-indexa родителю абсолюта.

Вы не поверите, но я практически на 100% описал все расклады, за исключением шлюков IE, которые не поддаются часто логике, тут все индивидуально.

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

Edited by Justnewone
Link to comment
Share on other sites

  • 0

Justnewone,спасибо, буду теперь разбираться.

Уважаю таких специалистов, которые находят несколько минут, чтобы разъяснить в каком направлении идти...

Ещё раз спасибо. О результатах отпишусь тут.

PS: С пленкой отличный пример!

Edited by rolph
Link to comment
Share on other sites

  • 0
Justnewone, правильно ли я понимаю...

Что у родительского div'a(который relative и прячет блоки), должен z-index быть равным z-index'у блока с кнопками?

Давайте-ка я тоже начну понимать )))

Ван надо было что в результате? ЧТобы кнопки торчали через эти самые дивы? )

ЧТо хотите получить?

Link to comment
Share on other sites

  • 0
Давайте-ка я тоже начну понимать )))

Ван надо было что в результате? ЧТобы кнопки торчали через эти самые дивы? )

ЧТо хотите получить?

:)

В конечном итоге хотелось бы видеть, чтобы после div'a в котором 2 блока, которые показываются при определенном виде, были кнопки... А не под блоком.

Link to comment
Share on other sites

  • 0
:)

В конечном итоге хотелось бы видеть, чтобы после div'a в котором 2 блока, которые показываются при определенном виде, были кнопки... А не под блоком.

)))

Тогда все просто убираем вообще везде релейтивы и абсолюты, что так открывает и скрывает... вобщем, делаем блоку бывшему асолют дисплей ноне или блок )))

Ох, увел в сторону, и каждый раз думал, что-то странно все... )))

Link to comment
Share on other sites

  • 0
)))

Тогда все просто убираем вообще везде релейтивы и абсолюты, что так открывает и скрывает... вобщем, делаем блоку бывшему асолют дисплей ноне или блок )))

Ох, увел в сторону, и каждый раз думал, что-то странно все... )))

Заработало :)

Спасибо.

Для остальных

Сделал:

.hidden {display:none;}
.visible {display:block;}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy