С помощью CSS3 преобразования не работает
Я пытаюсь преобразовать мои пункты меню, поворачивая их на 10 градусов. Мой CSS работает в Firefox, но мне не удалось воспроизвести эффект в Chrome и Safari. Я знаю, что IE не поддерживает это свойство CSS3, так что это не проблема.
я использовал следующий CSS-код:
li a {
-webkit-transform:rotate(10deg);
-moz-transform:rotate(10deg);
-o-transform:rotate(10deg);
}
может кто-нибудь, пожалуйста, предложить, где я иду не так?
спасибо.
5 ответов:
Это просто образованная догадка, не видя остальную часть вашего HTML / CSS:
вы
display: block
илиdisplay: inline-block
toli a
? Если нет, то попробуйте.в противном случае попробуйте применить правила преобразования CSS3 к .
в браузерах на базе webkit (Safari и Chrome),
-webkit-transform
игнорируется на встроенных элементах.. Наборdisplay: inline-block;
to заставить его работать. Для демонстрации / тестирования вы также можете использовать отрицательный угол илиtransformation-origin
чтобы текст не был повернут из видимой области.
поскольку никто не ссылался на соответствующую документацию:
CSS преобразует модуль Уровень 1-терминология-трансформируемый элемент
трансформируемый элемент-это элемент в одной из следующих категорий:
- элемент, макет которого управляется моделью CSS box, которая является либо block-level или атомарный элемент встроенного уровня, или чьи отобразить свойства вычисляет таблицу-строки, таблицы-строки-группы, таблица-заголовок-группа, таблица-колонтитул-группы, ячейки таблицы или таблицы-заголовок
- элемент в пространстве имен SVG и не регулируется моделью CSS box, которая имеет атрибуты transform,‘ patternTransform ' или gradientTransform.
в вашем случае
<a>
элементыinline
по умолчанию.изменение отель
inline-block
оказывает элементы как атомарные элементы встроенного уровня, и поэтому элементы становятся "трансформер" по определению.li a { display: inline-block; -webkit-transform: rotate(10deg); -moz-transform: rotate(10deg); -o-transform: rotate(10deg); transform: rotate(10deg); }
как упоминалось выше, это только кажется применимым в
-webkit
на основе браузеров, так как он, кажется, работает в IE/FF независимо.
вы специально пытаетесь повернуть только ссылки? Потому что делать это на Ли теги вроде работает нормально.
согласно Snook преобразования требуют, чтобы затронутые элементы были блоком. У него также есть некоторый код, чтобы сделать эту работу для IE с использованием фильтров, если вы хотите добавить его(Хотя, похоже, есть некоторые ограничения на значения).
-webkit-transform
больше не нужноms уже поддерживает вращение (
-ms-transform: rotate(-10deg);
)попробуйте это:
li a { ... -webkit-transform: rotate(-10deg); -moz-transform: rotate(-10deg); -o-transform: rotate(-10deg); -ms-transform: rotate(-10deg); -sand-transform: rotate(10deg); display: block; position: fixed; }