Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Обернуть блок в div с помощью expression'а в css (https://javascript.ru/forum/css-html-internet-explorer/14127-obernut-blok-v-div-s-pomoshhyu-expression%27-v-css.html)

SilentImp 30.12.2010 23:10

Обернуть блок в div с помощью expression'а в css
 
Приятного дня.
Захотелось мне создать с помощью expression'a в ie6 ie7 обертку, что бы сделать откат от css3 свойств.

Попробовал варианты:
.user-say{
                        z-index:expression(
                                runtimeStyle.zIndex=1,
                                function(t){
                                        var w = document.createElement('div');
                                        w.appendChild(t.replaceNode(w,t));
                                }(this)
                                );
                        }
 
                .user-say{
                        expression(
                                function(t){
                                        var w = document.createElement('div');
                                        w.className='my-class';
                                        w.appendChild(t.replaceNode(w,t));
                                }(this)
                                );
                        }

Не работает.
А эти вообще ie вешают ↓
.class1{
	z-index:expression(runtimeStyle.zIndex=1,wraper=document.createElement('DIV'),wraper.className='new-wrapper',wraper.appendChild(this.cloneNode(true)),this.replaceNode(wraper));
	}

.class2{
	z-index:expression(runtimeStyle.zIndex=1,this.replaceNode(document.createElement('DIV').appendChild(this.cloneNode(true))));
	}



Подскажите, пожалуйста, где я напутал и как надо.

monolithed 30.12.2010 23:50

Цитата:

Сообщение от SilentImp
Захотелось мне создать с помощью expression'a в ie6 ie7

зачем вообще использовать expressions, чтобы повесить браузер и что такое?:
Цитата:

Сообщение от SilentImp
откат от css3 свойств.


SilentImp 31.12.2010 00:10

Цитата:

и что такое?: откат от css3 свойств.
Для примера: у нас есть блок с неким фоном, рядом с которым нужно поместить нарисованного персонажа.

Можно написать так:
<div class="comment"><p>...</p><p>...</p><div class="maskot"></div></div>
и в стилях
.comment{}
.maskot{}

И в результате мы получим элемент представления в коде. А этого быть не должно.
Лучшим решением будет:
<div class="comment"><p>...</p><p>...</p></div>
и в стилях
.comment{}
.comment:after{}

Но ie6,ie7 работать с :after не будут.
Вот тут мы и используем expression

<div class="comment"><p>...</p><p>...</p></div>
и в стилях
.comment{}
.comment:after{}
* html .comment{z-index:expression(runtimeStyle.zIndex=1,this.innerHTML = this.innerHTML+"<div class='maskot'></div>");}
*+html .comment{z-index:expression(runtimeStyle.zIndex=1,this.innerHTML = this.innerHTML+"<div class='maskot'></div>");}
.comment .maskot{}

Ну вот вам и fall-back. Правда от css2 свойства.

Цитата:

зачем вообще использовать expressions
нагрузка которую создают одноразовые expression'ы вполне приемлема.
Альтернатива — куча представительских элементов в html.

Давайте не будем холиварить, стоит ли использовать expression'ы или нет. Плюсы и минусы все понимают и каждый это решит для себя сам.
Лучше подскажите, пожалуйста, как можно решить описанную выше проблему.

SilentImp 31.12.2010 01:53

http://pastie.org/1418424
Вопрос закрыт.


Часовой пояс GMT +3, время: 14:40.