当前位置: 首页 > Web前端 > CSS

csstransformation

时间:2023-03-30 14:22:39 CSS

rotation,translation,scalingandtilting基本定义旋转(Rotate)——元素绕一个轴旋转一定角度。(transform:rotateX(xdeg)|rotateY(ydeg)|rotateZ(zdeg))平移——元素在各个方向上下左右移动(有点类似于相对定位)。(transform:translate(x,y)|translateX(x)|translateY(y)|translateZ(z))缩放-缩小或放大元素。(transform:scale(x,y)|scaleX(x)|scaleY(y))Skew——使元素变形,顶边沿一个方向滑动,底边沿相反方向滑动。(transform:skew(x,y)|skewX|skewY)注意事项1.使用transform需要注意一点,虽然元素可能会移动到页面的新位置,但不会脱离文档流.您可以在屏幕范围内以多种方式平移元素,其初始位置不会被其他元素占用。当一个元素旋转时,它的角可能会移出屏幕边缘,也可能会遮住旁边其他元素的部分内容。2.转换不能应用于内联元素,如。3.转变发生在原点附近。基点是旋转轴,也是缩放或倾斜开始的地方。这意味着元素的基点固定在某个位置,元素的其余部分围绕基点进行变换(translate()除外,因为元素在平移过程中作为一个整体移动)。默认情况下,基点是元素的中心,但可以通过transform-origin属性更改基点位置。4.可以为transform属性指定多个值,以空格分隔。转换的每个值都是从右到左顺序执行的。三维(3D)变换旋转和平移可以在三个维度上实现:X轴、Y轴和Z轴。控制透视距离在给页面添加3D变换之前,我们需要确定一件事,那就是透视距离(perspective)。变换后的元素一起形成一个3D场景。浏览器然后计算3D场景的2D图像并将其呈现到屏幕上。我们可以把透视距离想象成“相机”和场景之间的距离,来回移动相机会改变整个场景最终在图像上的显示方式。如果镜头比较近(即透视距离小),那么3D效果会更强。如果镜头距离远(即透视距离大),则3D效果会较弱。透视距离位置设置不同造成的差异首先,我们给四个元素添加旋转效果,使用rotateX()让它们向后倾斜(如下图所示)。由于每个元素都旋转相同的角度并且具有相同的perspective()集,因此它们看起来相同。一个

两个
三个
四个
//css.row{display:flex;调整内容:居中;}.box{box-sizing:border-box;宽度:150px;保证金:02em;填充:60px0;文本对齐:居中;背景色:hsl(150,50%,40%);transform:perspective(200px)rotateX(30deg);//同样在transform中设置了perspective()}但是有时候我们希望多个元素共享同一套透视距离,就好像它们在同一个3D空间中一样。下图就是用来演示这种情况的。这里有四个相同的元素,但它们都向着远处的同一个交点延伸,就好像把四个元素放在一起,拍出一个整体。要达到这种效果,需要为其父元素设置透视属性。.row{显示:flex;证明内容:居中;perspective:200px;//为其父元素设置透视属性}.box{box-sizing:border-box;宽度:150px;保证金:02em;填充:60px0;文本对齐:居中;背景色:hsl(150,50%,40%);transform:rotateX(30deg);}以上两个其中一个在transform中设置了perspective,另一个直接设置为属性perspective,注意perspective-origin属性默认情况下,透视距离渲染假设viewer(或camera))直接位于元素中心的前面。perspective-origin属性可以上下左右移动相机的位置backface-visibility属性如果你使用rotateX()或rotateY()将元素旋转超过90度,你会发现一些有趣的事情:元素的“脸”不再直接面对你。它的“脸”转向别处,您会看到元素的背面。这是元素的背面。默认情况下,背面是可见的,但我们可以为元素设置backface-visibility:hidden来改变它。添加此声明后,该元素将仅在面向查看者时可见,而在背对时不可见。