#html #css #css-shapes #css-transforms
#HTML #css #css-фигуры #css-преобразования
Вопрос:
В последние несколько дней я немного поиграл со свойством преобразования CSS, и я хочу найти способ для перспективы, например:
Все поля являются обычными прямоугольными полями. Я просто понятия не имею, с чего начать.
По запросу:
body {
margin: 0px;
margin-left: 15%;
overflow: hidden;
}
.skewed {
margin: -1px;
height: 300px;
border: 4px solid black;
width: 70%;
float: left;
overflow: hidden;
transform: perspective(200px) rotateY(45deg);
}
.skewed > img {
filter: url("data:image/svg xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale") blur(3px);
filter: gray;
/* IE6-9 */
-webkit-filter: grayscale(100%) blur(3px);
/* Chrome 19 amp; Safari 6 */
transition: 0.2s ease-in-out;
}
.skewed:hover > img {
transform: scale(1.05);
filter: none;
-webkit-filter: grayscale(0%);
}
<div class="skewed">
<img src="image001.jpg">
</div>
<div class="skewed">
<img src="image002.jpg">
</div>
<div class="skewed">
<img src="image003.jpg">
</div>
<div class="skewed">
<img src="image004.jpg">
</div>
Комментарии:
1. Пожалуйста, укажите, что вы пробовали… по крайней мере, html и базовый css для этих полей.
2. Эти поля собраны вместе с помощью GIMP, я перепробовал практически все свойства преобразования, но ни одно из них не привело меня к такому результату, даже комбинации, так что, как уже говорилось, я понятия не имею, с чего начать.
3. Начните с базового html и CSS, чтобы создать эти поля.
4. Извините, кажется, вы не понимаете мою проблему. Я просто хочу знать, какое свойство преобразования я должен использовать.
Ответ №1:
Это довольно просто с помощью 3D-преобразований CSS. Вы можете повернуть каждый элемент по оси Y с помощью transform:rotateY(xdeg);
Вот пример :
div {
font-size: 2em;
width: 7em;
margin: 0 auto;
padding: 0.1em 0;
text-align: center;
transform: perspective(500px) rotateY(30deg);
background: teal;
}
div:nth-child(2n) {
transform: perspective(500px) rotateY(-30deg);
background: tomato;
}
<div>some text</div>
<div>some text</div>
<div>some text</div>
<div>some text</div>
Обратите внимание, что вам нужно будет добавить префиксы поставщика для поддержки браузера. См. canIuse для получения дополнительной информации