2D/3D 变换

CSS3 教程 · 第 4 章 · 9 次浏览

transform 可以对元素做平移、旋转、缩放、倾斜,不改变文档流,其他元素不会被挤动。配合 transition 使用,就是最常见的 hover 动画。

2D 变换函数

  • translate(x, y) 平移,百分比相对于自身尺寸
  • rotate(角度) 旋转,正值顺时针
  • scale(倍数) 缩放,1 是原大小
  • skew(x, y) 倾斜

3D 变换

3D 需要 perspective 透视配合,可以加在父元素上(perspective: 800px),子元素用 rotateX/rotateY/rotateZtranslateZ 产生立体效果。

transform-origin 可以改变变换原点,默认是元素中心。

代码示例

.item {
    transition: transform .3s ease;
}
.item:hover {
    transform: translateY(-6px) rotate(2deg) scale(1.05);
}

/* 3D 翻转 */
.scene {
    perspective: 800px;
}
.scene:hover .inner {
    transform: rotateY(180deg);
}
.inner {
    transition: transform .6s;
    transform-style: preserve-3d;
}
📚 CSS 属性速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
color: #333;文字颜色
background: #fff;背景色 / 背景图
font-size: 16px;字号
font-family: Arial;字体
font-weight: bold;字重(加粗)
margin: 10px;外边距(上右下左)
padding: 10px;内边距
border: 1px solid #ccc;边框:粗细 样式 颜色
border-radius: 8px;圆角
width: 100%;宽度
height: 200px;高度
display: flex;弹性布局(现代布局主力)
display: none;隐藏元素
position: relative / absolute / fixed;定位方式
top / left / right / bottom定位偏移
text-align: center;文字水平对齐
line-height: 1.6;行高
overflow: hidden;内容溢出处理
box-shadow: 0 2px 8px rgba(0,0,0,.1);阴影
transition: all .3s;过渡动画
cursor: pointer;鼠标手型
z-index: 10;层叠顺序
max-width: 1200px; margin: 0 auto;容器居中(经典写法)
@media (max-width: 768px) {}响应式断点
:hover鼠标悬停状态