Css perspective: perspective — CSS | MDN
perspective — CSS | MDN
Experimental
Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
Свойство CSS perspective
определяет расcтояние между плоскостью z = 0 и пользователем для того чтобы придать 3D-позиционируемому элементу эффект переспективы. Каждый трансформируемый элемент с z > 0 станет больше, с z < 0 соответственно меньше.
Элементы части которые находятся за пользователем, т.е. z-координата этих элементов больше чем значение свойства perspective, не отрисовываются.
Точка схождения
по умолчанию расположена в центре элемента, но её можно переместить используя свойство
(en-US).
При использовании данного свойства со значениями отличными от 0 или none создаётся новый stacking context.
perspective: none;
perspective: 20px;
perspective: 3.5em;
perspective: inherit;
perspective: initial;
perspective: unset;
Значения
none
- Указывает что трансформация перспективы к элементу применяться не будет.
<length>
<length>
устанавливает растояние от пользователя до плоскости z = 0. Применяет трасформацию к элементу и его содержимому. Если значение отрицательно или равно 0, то преобразование не применяется.
Формальный синтаксис
Три куба
HTML Content
<table> <tbody> <tr> <th><code>perspective: 250px;</code> </th> <th><code>perspective: 350px;</code> </th> <th><code>perspective: 500px;</code> </th> </tr> <tr> <td> <div> <div> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div> </div> </td> <td> <div> <div> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div> </div> </td> <td> <div> <div> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div> </div> </td> </tr> </tbody> </table>
CSS Content
.pers250 { perspective: 250px; -webkit-perspective: 250px; } .pers350 { perspective: 350px; -webkit-perspective: 350px; } .pers500 { perspective: 500px; -webkit-perspective: 500px; } .container { width: 200px; height: 200px; margin: 75px 0 0 75px; border: none; } .cube { width: 100%; height: 100%; backface-visibility: visible; perspective-origin: 150% 150%; transform-style: preserve-3d; -webkit-backface-visibility: visible; -webkit-perspective-origin: 150% 150%; -webkit-transform-style: preserve-3d; } .face { display: block; position: absolute; width: 100px; height: 100px; border: none; line-height: 100px; font-family: sans-serif; font-size: 60px; color: white; text-align: center; } .front { background: rgba(0, 0, 0, 0.3); transform: translateZ(50px); -webkit-transform: translateZ(50px); } .back { background: rgba(0, 255, 0, 1); color: black; transform: rotateY(180deg) translateZ(50px); -webkit-transform: rotateY(180deg) translateZ(50px); } .right { background: rgba(196, 0, 0, 0.7); transform: rotateY(90deg) translateZ(50px); -webkit-transform: rotateY(90deg) translateZ(50px); } .left { background: rgba(0, 0, 196, 0.7); transform: rotateY(-90deg) translateZ(50px); -webkit-transform: rotateY(-90deg) translateZ(50px); } .top { background: rgba(196, 196, 0, 0.7); transform: rotateX(90deg) translateZ(50px); -webkit-transform: rotateX(90deg) translateZ(50px) } .bottom { background: rgba(196, 0, 196, 0.7); transform: rotateX(-90deg) translateZ(50px); -webkit-transform: rotateX(-90deg) translateZ(50px); } th, p, td { background-color: #EEEEEE; padding: 10px; font-family: sans-serif; text-align: left; }
Результат
BCD tables only load in the browser
Свойство perspective | CSS справочник
CSS свойстваОпределение и применение
CSS свойство perspective определяет на сколько элемент удален от точки обзора. Свойство определяет перспективу обзора элемента, создавая для пользователя иллюзию глубины. Чем больше значение, указанное для перспективы, тем дальше от пользователя расположен элемент.
Главной особенностью свойства perspective является то, что значение перспективы устанавливается для вложенных (дочерних) элементов(находящихся под действием трехмерной трансформации), а не к самому элементу. Для установки перспективы для самого элемента используйте свойство transform со значением perspective(n).
Установить начало координат для свойства перспективы возможно при использовании свойства perspective-origin.
Поддержка браузерами
CSS синтаксис:
perspective:"length (число) | none | initial | inherit";
JavaScript синтаксис:
object.style.perspective = "500px"
Значения свойства
Значение | Описание |
---|---|
length (число) | Указывает расстояние, на которое элемент удаляется от точки обзора. |
none | Значение перспективы не установлено (аналогично значению 0). Это значение по умолчанию. |
initial | Устанавливает свойство в значение по умолчанию. |
inherit | Указывает, что значение наследуется от родительского элемента. |
Версия CSS
CSS3Наследуется
Нет.Анимируемое
Да.Пример использования
Рассмотрим пример изменения перспективы вложенного (дочернего) элемента, используя CSS свойство perspective, HTML атрибута событий onchange и функции на JavaScript:
<!DOCTYPE html> <html> <head> <title>Перспектива элемента в CSS</title> <style> #test1 { width : 150px; /* устанавливаем ширину блока */ height : 150px; /* устанавливаем высоту блока */ margin : 20px 0 0 75px; /* устанавливаем величину внешнего отступа top-right-bottom-left */ border : 1px solid brown; /* устанавливаем сплошную границу размером 1px коричневого цвета */ background : wheat; /* устанавливаем цвет заднего фона */ -moz-perspective : 80px; /* для поддержки ранних версий браузеров */ -webkit-perspective : 80px; /* для поддержки ранних версий браузеров */ perspective : 80px; /* устанавливаем перспективу для дочернего элемента */ }#test2 { padding : 50px; /* устанавливаем величину внутреннего отступа для всех сторон */ border : 1px solid orange; /* устанавливаем сплошную границу размером 1px оранжевого цвета */ background : khaki; /* устанавливаем цвет заднего фона */ transform : rotateX(45deg); /* двухмерное преобразование путем поворота элемента по часовой стрелке, используя только значение по оси x */ -webkit-transform : rotateX(45deg); /* для поддержки ранних версий браузеров */ -moz-transform : rotateX(45deg); /* для поддержки ранних версий браузеров */ -ms-transform : rotateX(45deg); /* для поддержки ранних версий браузеров */ } </style> <script> function changeP(value) { /* создаем функцию для изменения значения стиля элемента с id = test1 (значение перспективы), с отображением результата изменения в элементе с id = info и поддержкой ранних версий браузера */ document.getElementById('test1').style.perspective=value + "px"; /* изменение стиля элемента */ document.getElementById('test1').style.webkitPerspective=value + "px"; /* для поддержки ранних версий браузеров */ document.getElementById('test1').style.mozPerspective=value + "px"; /* для поддержки ранних версий браузеров */ document.getElementById('info').innerHTML=value + "px"; /* вывод текущего значения */ } </script> </head> <body> Измените значение перспективы: <input type = "range" min = "30" max = "1000" value = "80" onchange = "changeP(this.value)"><br> perspective:<span id = "info"> 80px</span> ; <div id = "test"> <div id = "test2">TEXT </div> </div> </body> </html>
CSS perspective
Пример
Присвойте элементу с трехмерным позиционированием некоторую перспективу:
#div1
{
-webkit-perspective: 100px; /* Safari 4-8 */
perspective: 100px;
}
Подробнее примеры ниже.
Определение и использование
Свойство perspective
используется для придать элементу с трехмерным позиционированием некоторую перспективу.
Свойство perspective
определяет, насколько объект находится вдали от пользователя.
Таким образом, более низкое значение приведет к более интенсивному трехмерному эффекту, чем более высокое значение.
При определении свойства perspective
для элемента, это дочерние элементы, которые получают представление перспективы, а не сам элемент.
Совет: Также посмотрите на свойство perspective-origin, которое определяет, в каком положении пользователь смотрит на трехмерный объект.
Чтобы лучше понять свойство «Перспектива», Просмотрите демонстрацию.
Значение по умолчанию: | none |
---|---|
Inherited: | no |
Animatable: | yes. Читайте о animatable |
Version: | CSS3 |
Синтаксис JavaScript: | object.style.perspective=»50px» |
Поддержка браузера
Номера в таблице указывают первую версию браузера, которая полностью поддерживает свойство.
Номера followed by -webkit- or -moz- Укажат первую версию, которая работала с префиксом.
Свойство | |||||
---|---|---|---|---|---|
perspective | 36.0 12.0 -webkit- | 10.0 | 16.0 10.0 -moz- | 9.0 4.0.3 -webkit- | 23.0 15.0 -webkit- |
Синтаксис CSS
perspective: length|none;
Значения свойств
Property Value | Описание |
---|---|
length | Как далеко находится элемент от вида |
none | Значение по умолчанию. То же, что и 0. Перспектива не задана |
initial | Присваивает этому свойству значение по умолчанию. (Читайте о initial) |
inherit | Наследует это свойство из родительского элемента. (Читайте о inherit) |
Другие примеры
Пример
Создайте куб и задайте различные точки зрения:
.ex1 {perspective: 800px;
}
.ex2 {
perspective: 150px;
}
Похожие страницы
CSS Справочник: CSS 3D Transforms
HTML DOM Справочник: perspective Свойство
perspective | Справочник CSS | schoolsw3.com
На сайте нет рекламы
Пример
Дать 3D позиционированному элементу некоторую перспективу:
#div1
{
-webkit-perspective: 100px; /* Safari 4-8 */
perspective: 100px;
}
Определение и использование
Свойство perspective
используется для придания 3D-позиционированному элементу некоторой перспективы.
Свойство perspective
свойство определяет, на каком расстоянии объект находится от пользователя. Таким образом, более низкое значение приведет к более интенсивному 3D-эффекту, чем более высокое значение.
При определении свойства perspective
для элемента, вид перспективы получают дочерние элементы, а не сам элемент.
Совет: Также посмотрите на свойство perspective-origin, которое определяет, в какой позиции пользователь смотрит на 3D-объект.
Чтобы лучше понять свойство perspective, просмотр демо-версии.
Поддержка браузеров
Числа в таблице указывают первую версию браузера, которая полностью поддерживает свойство.
Числа, за которыми следует -webkit- или -moz- указывают первую версию, которая работала с префиксом.
Свойство | |||||
---|---|---|---|---|---|
perspective | 36.0 12.0 -webkit- | 10.0 | 16.0 10.0 -moz- | 9.0 4.0.3 -webkit- | 23.0 15.0 -webkit- |
CSS Синтаксис
perspective: length|none;
Значение свойств
Значение | Описание |
---|---|
length | Как далеко элемент находится от представления |
none | Значение по умолчанию. То же, что и 0. Перспектива не установлена |
initial | Устанавливает для этого свойства значение по умолчанию. Прочитайте о initial |
inherit | Наследует это свойство от родительского элемента. Прочитайте о inherit |
Примеры
Пример
Создать куб и задать различные перспективы:
.ex1 {perspective: 800px;
}
.ex2 {
perspective: 150px;
}
Связанные страницы
CSS Учебник: CSS 3D Трансформация
HTML DOM Справочник: Свойство perspective
Почему свойство CSS «perspective» в Safari ломает оптимизацию графики для 4К и 5К дисплеев в случае повторного использования?
Выше написан возможный вариант. Попробуйте прописать перспективу непосредственно для нужного элемента..st-effect-11.st-menu-open .st-pusher {
perspective(1500px) translate3d(100px, 0, -600px) rotateY(-20deg)
}
.st-effect-11.st-container {}
Еще, для сайдбара лучше всего после анимации обнулять параметры
transform
. То есть навесить коллбек на событие transitionend
, и после обычным margin/left/top
назначить для сайдбара необходимую позицию. Соответственно, перед тем как сайдбар прятать, ему нужно вновь вернуть значения transform
, затем удалить те смещения которые вы навесили в коллбеке, и только после этого выполнять команду на скрытие. Если будете так делать, то обязательно заверните код в requestAnimationFrame
, это нужно для того, чтобы браузер пересчитывал стили именно в той последовательности, в какой нужно вам, иначе стили будут назначаться разом, и будут проявляться странные эффекты(анимация же выполнятся через transition
)let stMenuTransformPrevious, stMenuTransitionPrevious = ''
// after open
requestAnimationFrame(function() { // выполняем действия в новом кадре композиции
stMenuNode.style.transition = 'none' // убираем transition, так как после мы убираем transform
requestAnimationFrame(function() { // выполняем в следующем кадре композиции
stMenuNode.style.transform = 'none'
stMenuNode.style.left = '0px'
})
})
// before close
requestAnimationFrame(function() {
stMenuNode.style.transition = '' // возвращаем transition из css
requestAnimationFrame(function() { // выполняем в следующем кадре композиции
stMenuNode.style.left = '' // в зависимости от того, как до этого двигали меню
stMenuNode.style.transform = '' // применяется transform из css
})
})
Применительно именно к вашему случаю, stMenuNode.style.left = '0px'
назначать не нужно, так как меню и так по умолчанию находится слева.
Причина блюра на тексте в том, что для высокого разрешения просто не хватает аппаратных ресурсов, чтобы картинку рендерить и с ускорением, и в высоком разрешении. Такой же эффект с блюром появляется и на sd-дисплеях. Вообще лучше transform
использовать только для анимаций, и, если возможно, после завершения анимации для лучшего рендеринга и разгрузки позиционировать элементы margin/left/top
.
— CSS: Каскадные таблицы стилей
Свойство CSS
определяет расстояние между плоскостью z = 0 и пользователем, чтобы придать трехмерному позиционируемому элементу некоторую перспективу.
перспектива: нет;
перспектива: 20 пикселей;
перспектива: 3.5em;
перспектива: наследование;
перспектива: начальная;
перспектива: вернуться;
перспектива: снятая;
Значения
-
нет
Указывает, что преобразование перспективы не применяется.
-
<длина>
0
или отрицательное число, перспективное преобразование не применяется.
Каждый трехмерный элемент с z> 0 становится больше; каждый 3D-элемент с z <0 становится меньше. Сила эффекта определяется величиной этого свойства.
Части трехмерных элементов, которые находятся позади пользователя, т. Е. Их координаты по оси Z больше, чем значение свойства CSS перспективы
, не отрисовываются.
Точка схода по умолчанию размещается в центре элемента, но ее положение можно изменить с помощью свойства перспектива-происхождение
.
Использование этого свойства со значением, отличным от 0
и нет
создает новый контекст наложения.Кроме того, в этом случае объект будет действовать как содержащий блок для позиции : фиксированные
элементов, которые он содержит.
Настройка перспективы
В этом примере показан куб с перспективой, установленной в разных положениях. Скорость сжатия куба определяется свойством перспективы
. Чем меньше его значение, тем глубже перспектива.
HTML
HTML-код ниже создает четыре копии одного и того же блока с разными значениями перспективы.
<таблица>
перспектива: 250 пикселей;
перспектива: 350 пикселей;
1
2
3
4
5
6
1
2
3
4
5
6
перспектива: 500 пикселей;
перспектива: 650 пикселей;
1
2
3
4
5
6
1
2
3
4
5
6
CSS
CSS устанавливает классы, которые можно использовать для установки перспективы на разные расстояния.Он также включает классы для контейнера и самого куба, а также каждой его грани.
.pers250 {
перспектива: 250 пикселей;
}
.pers350 {
перспектива: 350 пикселей;
}
.pers500 {
перспектива: 500 пикселей;
}
.pers650 {
перспектива: 650 пикселей;
}
.container {
ширина: 200 пикселей;
высота: 200 пикселей;
margin: 75px 0 0 75px;
граница: нет;
}
.cube {
ширина: 100%;
высота: 100%;
обратная видимость: видимая;
перспективное происхождение: 150% 150%;
стиль преобразования: сохранить-3d;
}
.лицо {
дисплей: блок;
позиция: абсолютная;
ширина: 100 пикселей;
высота: 100 пикселей;
граница: нет;
высота строки: 100 пикселей;
семейство шрифтов: без засечек;
размер шрифта: 60 пикселей;
белый цвет;
выравнивание текста: центр;
}
.фронт {
фон: rgba (0, 0, 0, 0.3);
преобразовать: translateZ (50 пикселей);
}
.назад {
фон: rgba (0, 255, 0, 1);
черный цвет;
преобразовать: rotateY (180deg) translateZ (50px);
}
.верно {
фон: rgba (196, 0, 0, 0,7);
преобразовать: rotateY (90deg) translateZ (50px);
}
.левый {
фон: rgba (0, 0, 196, 0,7);
преобразовать: rotateY (-90deg) translateZ (50px);
}
.вершина {
фон: rgba (196, 196, 0, 0,7);
преобразовать: rotateX (90deg) translateZ (50px);
}
.Нижний {
фон: rgba (196, 0, 196, 0.7);
преобразовать: rotateX (-90deg) translateZ (50px);
}
th, p, td {
цвет фона: #EEEEEE;
отступ: 10 пикселей;
семейство шрифтов: без засечек;
выравнивание текста: слева;
}
Результат
Таблицы BCD загружаются только в браузере
перспектива | Codrops
Свойство перспективы используется для активации трехмерного пространства элемента, чтобы его дочерние элементы могли быть расположены в этом пространстве.
Это позволяет вам добавить ощущение глубины в сцену, делая элементы, расположенные выше по оси Z (ближе к зрителю), кажутся больше, а те, что дальше, — меньше.
Синий круг на этом изображении представляет собой элемент трехмерного пространства. Буква d представляет значение перспективы, то есть предполагаемое расстояние между глазом зрителя и экраном. Буква Z представляет положение элемента по оси z. Чем дальше элемент находится по оси Z, тем меньше он выглядит относительно зрителя, и чем он ближе, тем больше он выглядит. Это эффект перспективы в трехмерном пространстве.Без указания перспективы элемент, преобразованный с помощью функции трехмерного преобразования, будет выглядеть плоским и двухмерным.
Свойство перспективы
используется вместе с преобразованиями CSS. Он принимает либо значение длины, либо ключевое слово none
. Использование этого свойства с любым значением, отличным от none
устанавливает контекст стекирования. Он также устанавливает содержащий блок (в чем-то похожий на position : relative
), как и свойство transform
.
На следующем изображении показан результат преобразования (поворота) элемента в трехмерном пространстве с заданной перспективой и без нее.
Изображение поворачивается на 50 градусов по оси Y с помощью функции rotateY ()
. Изображение слева показывает результат применения поворота с указанной перспективой, а изображение справа показывает то же преобразование без перспективы.На изображении справа преобразование выглядит плоским и двухмерным, поскольку трехмерное пространство не запускается. перспектива
и перспектива ()
Если у вас есть элемент, который вы хотите преобразовать в трехмерное пространство, вы можете активировать это пространство, используя свойство перспективы на его родительском элементе или используя функцию перспектива ()
на самом преобразованном элементе. Так в чем разница между этими двумя способами? и когда вы хотите использовать одно, а не другое?
И свойство перспектива
, и функция перспектива ()
используются для придания глубины элементам, делая элемент, расположенный выше по оси z (ближе к зрителю), кажется больше, а элемент дальше — меньше.Чем меньше значение, тем ближе z-панель к зрителю и тем более впечатляющий эффект; чем выше значение, тем дальше элемент от экрана и тем более тонким будет эффект.
Когда вы применяете перспективу к элементу с помощью функции перспектива ()
(см. Запись свойства transform
, чтобы узнать, как это работает), вы активируете трехмерное пространство только для этого элемента. С другой стороны, свойство перспективы полезно, когда вы хотите активировать трехмерное пространство на элементе, имеющем несколько дочерних элементов, которые все преобразованы с помощью трехмерных преобразований.И свойство, и функциональная нотация запускают трехмерное пространство.
Функциональная запись удобна при применении трехмерного преобразования к отдельному элементу. Но когда у вас есть несколько преобразованных элементов внутри контейнера, если для каждого из них установлена перспектива с помощью функции перспектива ()
, элементы не выстраиваются в линию, как ожидалось. Это потому, что у каждого из них есть собственное трехмерное пространство и, следовательно, своя собственная точка схода.
По умолчанию точка схода для трехмерного пространства располагается в центре. (Его можно изменить с помощью свойства pective-origin
.) Если элементы не находятся в одном и том же трехмерном пространстве , каждый из них будет иметь собственную точку схода. Таким образом, использование перспектива ()
приведет к тому, что каждый элемент будет иметь свое собственное пространство и, следовательно, свою собственную точку схода. Чтобы избежать этого и позволить элементам выстроиться в линию, они должны находиться в одном пространстве.Используя свойство перспективы на контейнере, создается трехмерное пространство, которое используется всеми его дочерними элементами.
На следующем изображении показан результат запуска трехмерного пространства в контейнере, дочерние элементы которого вращаются в этом пространстве (слева), и повторного запуска трехмерного пространства на каждом элементе с использованием функции перспектива ()
(справа ):
Результат запуска трехмерного пространства в контейнере, дочерние элементы которого вращаются в этом пространстве (слева), и результат запуска трехмерного пространства для каждого элемента с использованием функции перспективы () (справа)
Live Demo
Перспектива элемента может быть лучше всего визуализирована на трехмерной форме, такой как, например, куб.
В этой демонстрации представлены три одинаковых куба с одинаковыми преобразованиями. У каждого из них свой набор перспектив. Попробуйте изменить значения перспективы, чтобы увидеть, как меняется глубина сцены.
Чем выше значение перспективы, тем менее интенсивен эффект, а чем ниже значение перспективы, тем интенсивнее эффект.
Посмотреть эту демонстрацию на игровой площадке CodropsCSS свойство: перспектива | Могу ли я использовать... Поддержка таблиц HTML5, CSS3 и т. Д.
Свойство CSS: перспектива
Глобальное использование
96,88% + 0% знак равно 96,88%
IE
- 6-9: Не поддерживается
- 10: Поддерживается
- 11: Поддерживается
Edge
- 12-91: Поддерживается
- 92: Поддерживается
Firefox
- 2-9: Не поддерживается
- 10-15: Поддерживается
- 16-90: Поддерживается
- 91: Поддерживается
- 92-93: Поддерживается
Chrome
- 4-11: Не поддерживается
- 12-35: Поддерживается
- 36-91: Поддерживается
- 92: Поддерживается
- 93-95: Поддерживается
Safari
- 3.1 - 3.2: Не поддерживается
- 4-8: Поддерживается
- 9-14: Поддерживается
- 14.1: Поддерживается
- 15 - TP: Поддерживается
Opera
- 10-12.1: Не поддерживается
- 15-22 : Поддерживается
- 23 - 77: поддерживается
- 78: поддерживается
Safari на iOS
- 3,2 - 8,4: поддерживается
- 9 - 14,4: поддерживается
- 14,5: поддерживается
Opera Mini
- все: Поддержка неизвестна
Android-браузер
- 2.1 - 2.3: Не поддерживается
- 3 - 4.4.4: Поддерживается
- 92: Поддерживается
Opera Mobile
- 12 - 12.1: Не поддерживается
- 64: Поддерживается
Chrome для Android
- 92: Поддерживается
Firefox для Android
- 90: Поддерживается
UC Browser для Android
- 12.12: Поддержка неизвестна
Samsung Internet
- 4 - 13.0: Поддерживается
- 14.0: Поддерживается
Браузер QQ
- 10.4: Поддержка неизвестна
Браузер Baidu
- 7.12: Поддержка неизвестна
Браузер KaiOS
- 2.5: Поддержка сегодня неизвестна
Создание текста перспективы CSS2
9 хотел создать забавный CSS-эффект и попытаться понять, как это делается.Сегодня мы делаем текст в перспективе CSS, чтобы текст выглядел как лестница. По сути, мы будем использовать некоторые преобразования наклона и смещения положения, чтобы создать этот эффект.
Конечный результат на сегодня:
См. Переложение текста перспективы CSS Криса Бонгерса (@rebelchris) на CodePen.
Что касается HTML, нам не нужно столько наворотов.
Всегда
доставлять
качество
В моем случае я хочу иметь три слова для использования в качестве нашего эффекта. Вы также можете изменить кодовую базу для работы с абзацами.
CSS Перспективный текст, постоянная ссылка
Теперь перейдем к волшебному элементу CSS. Начнем с стилизации основного элемента h2
. Цель состоит в том, чтобы он выглядел без засечек и довольно большим. Это лучше всего подходит для этого эффекта.
h2 {
семейство шрифтов: Helvetica, Arial, sans-serif;
font-size: 70px;
font-weight: 900;
преобразование текста: прописные;
позиция: относительная;
margin-left: -350px;
margin-top: -150 пикселей;
}
Как видите, я использую довольно крупный шрифт и перевожу все слишком прописными буквами.Затем я смещаю весь элемент. Поскольку мы будем использовать абсолютные позиции, сложно позиционировать весь элемент сразу. Возможно, вам придется изменить эти позиции в зависимости от слов, которые вы хотите использовать.
Тогда каждый элемент span внутри нашего h2 должен быть абсолютным.
h2 {диапазон
{положение
: абсолютное;
}
}
Следующее правило - сделать ступеньку перекосом в противоположных направлениях. Я использую нечетный / четный дочерний псевдоселектор.
h2 {
span {
&: nth-child (odd) {
transform: skew (60deg, -30deg) scaleY (0.66667);
}
&: nth-child (even) {
transform: skew (0deg, -30deg) scaleY (1.33333);
}
}
}
Это очень близко подводит нас, но теперь все элементы находятся друг над другом. Нам нужно изменить положение смещения для каждой секунды и выше элемента.
По моим словам, это сводится к следующему:
h2 {
span {
&: nth-child (2) {
left: 27px;
верх: 52 пикс .;
}
&: nth-child (3) {
left: 54px;
верх: 105 пикселей;
}
}
}
Вот и все.Теперь у вас есть крутой текст в перспективе с изображением лестницы.
Спасибо за чтение, давайте подключимся! постоянная ссылка
Спасибо, что прочитали мой блог. Не стесняйтесь подписаться на мой информационный бюллетень по электронной почте и подключиться к Facebook или Twitter
Пример перспективы Css | Newbedev
Свойство перспектива
CSS определяет расстояние между плоскостью z = 0 и пользователем, чтобы придать трехмерному позиционируемому элементу некоторую перспективу.
Синтаксис
перспектива: нет; перспектива: 20 пикселей; перспектива: 3.5em; перспектива: наследование; перспектива: начальная; перспектива: снятая;
Значения
-
нет
- Указывает, что преобразование перспективы не применяется.
-
-
0
или отрицательное число, перспективное преобразование не применяется.
Описание
Каждый трехмерный элемент с z> 0 становится больше; каждый 3D-элемент с z <0 становится меньше. Сила эффекта определяется величиной этого свойства.
Части трехмерных элементов, которые находятся позади пользователя, т. Е. Их координаты по оси Z больше, чем значение свойства перспективы
CSS, не отображаются.
Точка схода по умолчанию размещается в центре элемента, но ее положение можно изменить с помощью свойства pective-origin
.
Использование этого свойства со значением, отличным от 0
и нет
создает новый контекст наложения. Кроме того, в этом случае объект будет действовать как содержащий блок для позиции : фиксированные
элементов, которые он содержит.
Формальное определение
Формальный синтаксис
нет | <длина>
Примеры
Настройка перспективы
В этом примере показан куб с перспективой, установленной в разных положениях. Скорость сжатия куба определяется свойством перспективы
.Чем меньше его значение, тем глубже перспектива.
HTML
HTML-код ниже создает четыре копии одного и того же блока с разными значениями перспективы.
<таблица>перспектива: 250 пикселей;
перспектива: 350 пикселей;
123456 123456перспектива: 500 пикселей;
перспектива: 650 пикселей;
123456 123456
CSS
CSS устанавливает классы, которые можно использовать для установки перспективы на разные расстояния.Он также включает классы для контейнера и самого куба, а также каждой его грани.
.pers250 { перспектива: 250 пикселей; } .pers350 { перспектива: 350 пикселей; } .pers500 { перспектива: 500 пикселей; } .pers650 { перспектива: 650 пикселей; } .container { ширина: 200 пикселей; высота: 200 пикселей; margin: 75px 0 0 75px; граница: нет; } .cube { ширина: 100%; высота: 100%; обратная видимость: видимая; перспективное происхождение: 150% 150%; стиль преобразования: сохранить-3d; } .лицо { дисплей: блок; позиция: абсолютная; ширина: 100 пикселей; высота: 100 пикселей; граница: нет; высота строки: 100 пикселей; семейство шрифтов: без засечек; размер шрифта: 60 пикселей; белый цвет; выравнивание текста: центр; } .фронт { фон: rgba (0, 0, 0, 0.3); преобразовать: translateZ (50 пикселей); } .назад { фон: rgba (0, 255, 0, 1); черный цвет; преобразовать: rotateY (180deg) translateZ (50px); } .верно { фон: rgba (196, 0, 0, 0,7); преобразовать: rotateY (90deg) translateZ (50px); } .левый { фон: rgba (0, 0, 196, 0,7); преобразовать: rotateY (-90deg) translateZ (50px); } .вершина { фон: rgba (196, 196, 0, 0,7); преобразовать: rotateX (90deg) translateZ (50px); } .Нижний { фон: rgba (196, 0, 196, 0.7); преобразовать: rotateX (-90deg) translateZ (50px); } th, p, td { цвет фона: #EEEEEE; отступ: 10 пикселей; семейство шрифтов: без засечек; выравнивание текста: слева; }
Результат
Технические характеристики
Совместимость с браузером
Настольный | мобильный | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Хром | Кромка | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Интернет Samsung | |
перспектива | 36 12 | 12 12 | 16 10 49 45 | 10 | 23 15 | 9 4 | 37 3 | 36 18 | 16 10 49 45 | 24 14 | 9 2 | 3.0 1,0 |
См. Также
CSS свойство перспективы-происхождения
Пример
Определите, с какой позиции пользователь смотрит на трехмерный элемент:
# div1
{
перспектива: 100 пикселей;
перспектива-происхождение: слева;
}
Определение и использование
Свойство перспективного происхождения
определяет, из какой позиции находится пользователь.
глядя на трехмерный элемент.
При определении свойства перспективы-происхождения для элемента это элементы CHILD. который получит эффект, а НЕ сам элемент.
Примечание: Это свойство должно использоваться вместе с перспективная недвижимость!
Чтобы лучше понять свойство перспективы-происхождения, просмотреть демо.
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Числа, за которыми следует -webkit- или -moz-, указывают первую версию, которая работала с префиксом.
Имущество | |||||
---|---|---|---|---|---|
в перспективе | 36,0 12,0 -webkit- | 10,0 | 16,0 10,0 -моз- | 9.0 4.0.3 -webkit- | 23,0 15,0 -webkit- |
Синтаксис CSS
перспектива происхождения: ось x ось y | начальная | наследование;
Значения свойств
Стоимость объекта | Описание |
---|---|
ось x | Определение места расположения вида по оси x Возможные значения:
Значение по умолчанию: 50% |
ось Y | Определение места расположения вида по оси Y Возможные значения:
Значение по умолчанию: 50% |
начальный | Устанавливает для этого свойства значение по умолчанию.Читать про начальные |
унаследовать | Наследует это свойство от своего родительского элемента. Читать про наследство |
связанные страницы
Учебное пособие по CSS: 3D-преобразования CSS
СсылкаHTML DOM: Перспективы происхождения собственности
CSS {В реальной жизни}
3D-преобразований, несмотря на то, что некоторое время они доступны в CSS, — это область, которую я никогда не понимал. Думаю, если бы они были новичками в CSS сейчас, я бы потратил гораздо больше времени, играя с ними, как это было с Motion Path и некоторыми другими новыми функциями CSS.В настоящее время у меня никогда не было особых причин использовать их в продакшене (за редким исключением), поэтому я сконцентрировал свое время и силы на других вещах.
Но недавняя работа талантливых людей над Codepen заставила меня пожелать, чтобы я лучше разбирался в этой мощной области CSS. Я влюбился в эту демонстрацию Адама Куна, которая сочетает в себе трехмерные преобразования с траекторией движения — я вижу гораздо больше возможностей для использования их вместе. Ана Тюдор создала целую серию Johnson Solids, которые становятся все более сложными.У нее впечатляющий объем работ по кодированию многогранников, которые можно найти в этой коллекции. Не говоря уже об этой просто умопомрачительной демонстрации моего Амита Шина, где страницы книги фактически анимированы с помощью трехмерных преобразований:
Я решил, что пора учиться! Я наткнулся на эту хорошо написанную статью, также написанную Амитом Шином, в которой объясняются трехмерные преобразования и перспектива. Интерактивные примеры в сочетании с пошаговым пошаговым руководством по созданию анимированного куба действительно помогли в работе. Я с нетерпением жду возможности создавать намного больше с помощью 3D-преобразований в будущем и чувствую себя намного увереннее!
Чтобы проверить свои новые знания, я сделал небольшую CSS-анимацию, вдохновленную GIF-файлом, который я видел в Интернете.Он использует один Я также сделал несколько демонстраций, показывающих, как трансформации нескольких элементов изменяются путем изменения свойств в стиле преобразования Я все еще чувствую, что мне нужно многому научиться, но единственный способ - это практика! Еще несколько вдохновляющих демок от талантливых людей: background-position
. (Вы не можете анимировать градиенты только с помощью CSS, но можете анимировать background-position
). и
в перспективе происхождения
родительского элемента - то, что мне потребовалось некоторое время, чтобы осмыслить: Вдохновение