CSS3 transform: rotate; в IE9

У меня есть элемент, который должен быть вертикальным в дизайне, который я сделал. У меня есть css для этого, чтобы работать во всех браузерах, кроме IE9. Я использовал фильтр для IE7 и IE8:

progid:DXImageTransform.Microsoft.BasicImage(rotation=3);

Это, как представляется, делает мой элемент прозрачным в IE9, а CSS3 'tranform' porperty, похоже, ничего не делает!

Кто-нибудь знает о вращающихся элементах в IE9?

Действительно оцените помощь!

Ш.

Ответ 1

Стандартный CSS3 rotate должен работать в IE9, но я считаю, что вам нужно предоставить ему префикс поставщика, например:

  -ms-transform: rotate(10deg);

Возможно, он не работает в бета-версии; если нет, попробуйте загрузить текущую версию предварительного просмотра (предварительный просмотр 7), которая является более поздней версией бета-версии. У меня нет бета-версии для тестирования, поэтому я не могу подтвердить, была ли она в этой версии или нет. Окончательная версия релиза определенно намечена на ее поддержку.

Я также могу подтвердить, что IE-специфическое свойство filter было сброшено в IE9.

[Изменить]
Люди попросили дополнительную документацию. Как говорится, это довольно ограниченно, но я нашел эту страницу: http://css3please.com/, которая полезна для тестирования различных функций CSS3 во всех браузерах.

Но тестирование функции поворота на этой странице в предварительном просмотре IE9 вызвало ее сбой довольно эффектно.

Однако я провел некоторые независимые тесты, используя -ms-transform:rotate() в IE9 на своих тестовых страницах, и он работает нормально. Поэтому я пришел к выводу, что эта функция реализована, но есть некоторые ошибки, возможно связанные с ее динамической настройкой.

Еще одна полезная контрольная точка, для которой реализованы функции, в которых браузеры - www.canIuse.com - см. http://caniuse.com/#search=rotation

[EDIT]
Возрождение этого старого ответа, потому что я недавно узнал о взломе под названием CSS Sandpaper, который имеет отношение к вопросу и может облегчить задачу.

Hack реализует поддержку стандартного CSS transform для старых версий IE. Итак, теперь вы можете добавить в свой CSS следующее:

-sand-transform: rotate(10deg);

... и работать в IE 6/7/8 без использования синтаксиса filter. (конечно, он по-прежнему использует синтаксис фильтра за кулисами, но это значительно упрощает управление, поскольку использует аналогичный синтаксис для других браузеров)

Ответ 2

Попробуйте это

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
body {
    margin-left: 50px;
    margin-top: 50px;
    margin-right: 50px;
    margin-bottom: 50px;
}
.rotate {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    -webkit-transform: rotate(-10deg);
    -moz-transform: rotate(-10deg);
    -o-transform: rotate(-10deg);
    -ms-transform: rotate(-10deg);
    -sand-transform: rotate(10deg);
    display: block;
    position: fixed;
}
</style>
</head>

<body>
<div class="rotate">Alpesh</div>
</body>
</html>

Ответ 3

У меня также были проблемы с преобразованиями в IE9, я использовал -ms-transform: rotate(10deg), и это не сработало. Пробовал все, что мог, но проблема была в режиме браузера, чтобы сделать преобразования, вам нужно установить режим совместимости на "Стандартный IE9".

Ответ 4

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

У меня был элемент, который я хотел повернуть вертикально, поэтому, естественно, я добавил фильтр: для IE8, а затем для свойства -ms-transform для IE9. Я обнаружил, что наличие свойства -ms-transform И фильтр, применяемый к одному и тому же элементу, заставляет IE9 отображать элемент очень плохо. Мое решение:

  • Если вы используете свойство transform-origin, добавьте его и для MS (-ms-transform-origin: left bottom;). Если вы не видите свой элемент, возможно, он вращается на нем по средней оси и таким образом оставляет страницу как-то - так что дважды проверьте это.

  • Переместите фильтр: свойство для IE7 & 8 в отдельную таблицу стилей и используйте IE, чтобы вставить эту таблицу стилей для браузеров, меньшую, чем IE9. Таким образом, это не влияет на стили IE9, и все должно работать нормально.

  • Обязательно используйте правильный тег DOCTYPE; если у вас это неправильно IE9 не будет работать должным образом.