Jump to content
  • 0

Борьба с селектом, браузер: ie6


BassEast
 Share

Question

select_ie.jpg

Всем давно известно, что если спозиционировать абсолютно, какой-нибудь блок и если под ним окажется select: в IE мы столкнёмся с геморроем..

Есть вариант, перекрыть эту проблему, iframe, но что делать если у тебя блок не с фиксированой высотой и шириной? Ведь iframу нужно выставлять только фикс. ширину и высоту.. в % не катит.

Что нужно прописать в css, чтобы iframe тянулся вместе с div-ом, хотя бы по высоте?

Edited by BassEast
Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0
Родителю абсолютного блока (у которого релейтив) надо дать z-index больше чем у селектного блока, или самого селекта.

это к чему? Это если без iframe?

Если я поставлю Z-index, от этого фрейм не будет тянуться автоматом за абс. блоком.

Link to comment
Share on other sites

  • 0
четно говоря не понятно. У которого релейтив - что?

Всем давно известно, что если спозиционировать абсолютно, какой-нибудь блок и если под ним окажется select: в IE мы столкнёмся с геморроем..

Почему тогда понятно про абсолют?

Что в CSS/HTML может быть "релейтив"?

Чтож, мысленно переносимся в Лягушатник.

Драма, связанная с IE6, действующие лица:

1 Нечто, релайтив чему назначается чтобы позиционировать абсолютный блок или БОДИ

2 Сам абсолютный блок

3 Находящийся снизу по коду любой элемент (в данном случае селект), которому, или одному из родителей которого дали релейтив, а может даже с назначеным z-index 'om.

Собственно, решение, даже 2, я Вам рассказал. Если надо решение с участием iframe, то не ко мне.

Edited by Justnewone
Link to comment
Share on other sites

  • 0
Почему тогда понятно про абсолют?

Что в CSS/HTML может быть "релейтив"?

Чтож, мысленно переносимся в Лягушатник.

Драма, связанная с IE6, действующие лица:

1 Нечто, релайтив чему назначается чтобы позиционировать абсолютный блок или БОДИ (да да, у БОДИ релейтив по умолчанию, Вы не знали?)

2 Сам абсолютный блок

3 Находящийся снизу по коду любой элемент (в данном случае селект), которому, или одному из родителей которого дали релейтив, а может даже с назначеным z-index 'om.

Собственно, решение, даже 2, я Вам рассказал. Если надо решение с участием iframe, то не ко мне.

ну, бл**ь написали :D

Не легче было просто пример предоставить? уж по-меньше того текста, который был выплюнут выше. Мы ж с вами можем посредством кода общаться, а не эпопеями... ~)

Edited by BassEast
Link to comment
Share on other sites

  • 0
ну, бл**ь написали :D

Не легче было просто пример предоставить? уж по-меньше того текста, который был выплюнут выше. Мы ж с вами можем посредством кода общаться, а не эпопеями... ~)

Не грубите.

Дайте свой проект мне, я его вечером сделаю и Вам отдам.

Что непонятно написал?

Link to comment
Share on other sites

  • 0

Мне не понятно. С удовольствием посмотрел бы код. Если кому-нить не влом конечно... пятница все-таки.

Впрочем и в понедельник посмотрю с не меньшим удовольствием если какой-нить товарищ не сочтет за труд продемонстрировать.

Edited by Great Rash
Link to comment
Share on other sites

  • 0
Мне не понятно. С удовольствием посмотрел бы код. Если кому-нить не влом конечно... пятница все-таки.

Впрочем и в понедельник посмотрю с не меньшим удовольствием если какой-нить товарищ не сочтет за труд продемонстрировать.

Хорошо.

Я тут на работе перегрелся. :D

Щас домой приеду, сделаю примерчик в FAQ в лягушатнике.

Link to comment
Share on other sites

  • 0

Вообще проблема известная, и насколько мне известно, z-index'ами не решаемая.

iframe умеет перекрывать эти списки, но вам не подходит (кстати, а вы пробовали задать размер в процентах? Это действительно не работает? Я не сталкивался, но в спецификации никаких оговорок по этому поводу нет).

Может, есть возможность просто прятать эти инпуты, когда отображаете перекрывающий слой? visibility:hidden; например. Все равно ведь вы javascript уже используете...

Link to comment
Share on other sites

  • 0
Вообще проблема известная, и насколько мне известно, z-index'ами не решаемая.

iframe умеет перекрывать эти списки, но вам не подходит (кстати, а вы пробовали задать размер в процентах? Это действительно не работает? Я не сталкивался, но в спецификации никаких оговорок по этому поводу нет).

Может, есть возможность просто прятать эти инпуты, когда отображаете перекрывающий слой? visibility:hidden; например. Все равно ведь вы javascript уже используете...

у меня в процентах не выставлялось..

есть у вас IE6 под рукой?

можете проверить, работает ли этот вариант:

http://www.web-utils.net/files/css-div-select_0.htm

Link to comment
Share on other sites

  • 0

При выставлении размеров JS-ом они всегда фиксированные в пикселях (offsetWidth и offsetHeight соотв-но :). Так что в упор не вижу проблемы.

Хотя с процентами тоже никакой проблемы нет -- если вложить iframe в этот самый позиционированный элемент, спозиционировать абсолютно внутри него, задать 100%-ые размеры и вдобавок сделать полностью прозрачным (селект он все равно будет перекрывать)...

Link to comment
Share on other sites

  • 0

Был неправ.

Не придал сначала особого значения, что речь именно о селекте.

Вот какое решение нашел в интернете:

http://www.hedgerwow.com/360/bugs/activex-listbox/demo.php

Edited by Justnewone
Link to comment
Share on other sites

  • 0
Был неправ.

Не придал сначала особого значения, что речь именно о селекте.

Вот какое решение нашел в интернете:

http://www.hedgerwow.com/360/bugs/activex-listbox/demo.php

~) де, этот пример рассматривал.

Вот это то, что в принципе мне было нужно:

CSS код:

<style type="text/css">
.select-free {
position:absolute;
padding:10px;
left:40px;
top:10px;
z-index:10;
overflow:hidden;
width:150px;
background:#eee;
}
.select-free iframe {
display:none;/*IE5*/
display/**/:block;/*sorry for IE5*/
position:absolute;
top:0px;
left:0px;
z-index:-1;
filter:mask();
width:3000px;
height:3000px;
}

</style>

HTML код:

<select>
<option>This is SELECT box behind LAYER</option>
<option>DIV без проблем покрывает SELECT</option>
</select>

<div class="select-free">
<h2>Layer above SELECT BOX</h2>
<p>CSS решение проблемы - DIV поверх SELECT</p>
<p><a href="http://web-utils.net">www.web-utils.net</a></p>
<!--[if lte IE 6.5]><iframe></iframe><![endif]-->
</div>

кстати кому нужен IE6, IE5, IE8 (одновременно, не факт, что всё точно так же отображает.. но похоже на правду) для Висты + ваш IE7 по умолчанию, ставьте это »

Пользуюсь, пока всё нравится.

Edited by BassEast
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