Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   style.clip vs IE (https://javascript.ru/forum/dom-window/1075-style-clip-vs-ie.html)

DrewBlin 09.03.2008 14:42

style.clip vs IE
 
Подскажите, пожалуйста, кто сталкивался с такой проблемой. Почему IE выполняет команду

document.styleSheets[0].rules[0].style.clip='rect(0px '+document.getElementById('abc').value+'px auto 0px)';

только 1 (один) раз? Первый раз задай значение 60 - устанавливает для элемента область нужную. Второй раз какое бы значение не задавал - не меняет. Но и ошибку не выдает. Мозила и Опера свою команду:

document.styleSheets[0].cssRules[0].style.clip='rect(0px '+document.getElementById('abc').value+'px auto 0px)';

выполняют на ура.

<Style type='text/css'>
.col1 {width:80px; position:absolute}
.col2 {width:80px; position:absolute}
</Style>

Илья Кантор 14.03.2008 15:59

Это CSS Expression ? В IE есть специальный метод для установки CSS Expression, его надо использовать, а не просто =.

SelenIT 23.03.2008 01:09

Цитата:

Сообщение от DrewBlin (Сообщение 1440)
Подскажите, пожалуйста, кто сталкивался с такой проблемой. Почему IE выполняет команду

document.styleSheets[0].rules[0].style.clip='rect(0px '+document.getElementById('abc').value+'px auto 0px)';

только 1 (один) раз? Первый раз задай значение 60 - устанавливает для элемента область нужную. Второй раз какое бы значение не задавал - не меняет. Но и ошибку не выдает.

Не меняет вообще (currentStyle.clip остается старым) или визуально? Если второе - возможно, hasLayout шалит. Попробуйте изменить какое-нибудь свойство, включающее hasLayout, например задать zoom:1.

Цитата:

Мозила и Опера свою команду:

document.styleSheets[0].cssRules[0].style.clip='rect(0px '+document.getElementById('abc').value+'px auto 0px)';

выполняют на ура.
Имхо, как раз это странно)). В стандарте я свойства style у интерфейса cssRule не наблюдаю... возможно, не там искал :).

Цитата:

Сообщение от Илья Кантор (Сообщение 1523)
Это CSS Expression ?

Нет.


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