CSS高级

CSS高级

_

一, 垂直对齐方式

属性名:vertical-align

属性值:
默认情况下图片和文字是一个偏上一个偏下的情况。

2953321-20231213125106098-803327319.png
原理:浏览器会把行内块和行内标签都当作文字处理,浏览器所有文字默认按照基线对齐

这样导致图片 img 的底下有空白,转块级不按基线对齐,空白就消失了

基线:

2953321-20231213125105938-1919949533.png

2953321-20231213125105940-13020729.png

这个属性,谁更大就给谁加。

二,过度transition

作用:可以为一个元素不同状态之间切换的时候添加过渡效果

  • 一般不同状态指的是,默认状态和鼠标悬停状态的切换。

属性名:transitior(复合属性)

属性值:过度的属性 花费时间 (s)

提示:

  • 过渡的属性可以是具体的CSS属性
  • 过渡属性可以为all(俩个状态属性值不同的所有属性,都产生过渡效果)
  • transition设置给元素本身

三, 透明度opacity

作用:设置整个元素的透明度 ( 包含背景和内容

属性名:opacity

属性值:

  • 0:完全透明
  • 1:不透明
  • 0-1之间的小数:半透明

四, 光标类型cursor

作用:鼠标悬停在元素上时指针显示样式

属性名:cursor

属性值:

2953321-20231213125105924-1306733727.png

五,平面转换

作用:为元素添加动态效果,一般与过渡 transition配合使用。

概念:改变盒子在平面内的形态(位移,旋转,缩放,倾斜)

平面转换又叫2D 转换

属性名transform

属性值

5.1 平移效果

平移效果:translate(X 轴移动距离,Y 轴移动距离)

  • 取值

    • 像素数值单位
    • 百分比(参照盒子自身尺寸计算)
    • 正代表向右(x),下(y),负代表向左(x),上(y)
  • 技巧

    • translate()只写一个值代表沿X轴移动
    • 单独设置X或Y轴移动距离:translateX()translateY()

5.2 旋转效果

旋转效果rotate(旋转角度);

  • 角度单位是deg

  • 技巧

    • 取值正负代表旋转方向不同
    • 正,顺时针
    • 负,逆时针
  • 改变转换原点:默认情况下,转换原点是盒子中心点。

    属性名:transform-origin:水平方向原点位置 垂直方向原点位置

    取值:

    • 方位名词:(left,top,right,bottom,center)
    • 像素单位数值:
    • 百分比

5.3 多重转换效果

多重转换效果:既包含平移又包含旋转就叫多重转换效果。

技巧:先平移再旋转。

transform: translate() rotate();

5.4 缩放效果

缩放效果scale()

  • transform: scale(缩放倍数)
  • transform:scale(X轴缩放倍数,Y轴缩放倍数)
  • 技巧
    • 通常,只为scale()设置一个值,表示X轴和Y轴等比例缩放
    • 取值大于1表示放大,取值小于1表示缩小

5.5 倾斜效果

倾斜效果transform: skew();

取值:角度度数deg

六,渐变

渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景

分类:

  • 线性渐变:颜色变化呈一条直线。

2953321-20231213212704087-1121967467.png

  • 径向渐变:颜色变化从中心点开始沿四周变化。

2953321-20231213212708990-1151847190.png

6.1 线性渐变

法:background-image: linear-gradient()

background-image: linear-gradient(
	渐变方向,
	颜色1 终点位置,
	颜色2 终点位置,
	...
);

渐变方向的取值:

  • to 方位名词
  • 角度度数deg

终点位置:百分比

这俩个值都有默认值,可不写。

6.2 径向渐变

作用:给按钮添加高光效果

写法:background-image: radial-gradient()

background-image: radial-gradient(
	半径 at 圆心垂直方向位置 圆心水平方向位置,
	颜色1 终点位置,
	颜色2 终点位置,
	...
);

取值:

  • 半径可以是2条,此时为椭圆
  • 圆心位置取值:像素单位,百分比,方位名词

七,空间转换

7.1 立体呈现

作用:设置元素的子元素是位于3D 空间中还是平面中,这个属性加给父级元素
属性名: transform-style

属性值:

  • flat:子级处于平面
  • preserve-3d:子级处于3D空间。

呈现立体图形步骤:

  1. 元素添加transform-style:preserve-3d;
  2. 子级定位(子绝父相)
  3. 调整盒子的位置位移或旋转

立方体每个面都有独立的坐标轴,互不影响。

空间:是从坐标轴角度定义的 X、Y 和 Z三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。

2953321-20231215164611973-575417527.png

空间转换也叫 3D 转换

7.2 空间平移

属性:

transform: translate3d(x,y,z);
transform: translateX();
transform: translateY();
transform: translateZ();

取值:(正负均可

  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算)

7.3 视距 perspective

默认情况下,Z 轴的平移是看不见效果的,需要配合属性视距才能生效。

作用:指定了观察者Z=0 平面的距离,为元素添加透视效果

透视效果: 近大远小、近实远虚

2953321-20231215170411144-519069698.png

属性:(添加给父级,取值范围:800-1200perspective: 视距

7.4 旋转

属性:绕Z 轴旋转

transform: rotateZ(旋转角度deg);

这个和平面旋转的效果是一样的,因为 Z 轴旋转就是盒子中心点旋转。

属性:绕 X 轴旋转

transform: rotateX(旋转角度deg);

属性:绕Y 轴旋转

transform: rotateY(旋转角度deg);

属性:空间旋转

用来设置自定义旋转轴的位置及旋转的角度,x,y,z 取值为 0-1 之间的数字。

transform: rotate3d(x,y,z,角度度数);

左手法则:根据旋转方向确定取值正负。

  • 先确定图片根据哪个方向转动,然后左手握住旋转轴,拇指指向正值方向,其他四个手指弯曲方向为旋转正值方向

2953321-20231215171315198-1161189295.png

7.5 缩放

  • 属性:

2953321-20231230220817749-644962874.png

八,动画

过渡:实现两个状态间的变化过程

动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

8.1 动画实现步骤

  1. 定义动画

    定义动画有俩种写法:

    设置 2 个状态的动画

    @keyframes 动画名称{
        from{}
        to{}
    }
    

    设置多个状态的动画

    @keyframes 动画名称{
        0%{}
        10%{}
        ...
        100%{}
    }
    
  2. 使用动画

    要使用动画的标签加上属性

    animation: 动画名称 动画花费时间;
    

8.2 animation属性

animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态;

提示:

  • 动画名称动画时长必须赋值
  • 取值分先后顺序
  • 如果有两个时间值第一个时间表示动画时长第二个表示延迟时间

速度曲线:

  • 匀速运动:linear
  • 分步运动:steps(数值)一般用来配合精灵图,实现精灵动画使用。

重复次数: 一直重复就使用:infinite

动画方向: 反向:alternate

动画执行完毕时状态:

  • 停止在结束状态:forwards
  • 停止在开始状态:backwards(默认)

animation 拆分属性:

2953321-20231230222517006-976531659.png

九,其他属性

9.1 object-fit

作用:对图片进行剪切,保留原始比例

img.a {
  width: 200px;
  height: 400px;
  object-fit: cover;
}

常用属性值:

  • fill:默认,不保证保持原有的比例,内容拉伸填充整个内容容器。

  • contain:保持原有尺寸比例。内容被缩放。

  • cover:保持原有尺寸比例。但部分内容可能被剪切

  • none: 保留原有元素内容的长度和宽度,也就是说内容不会被重置。

CSS布局 2026-06-09
CSS移动端适配 2026-06-09

© 2026 苏叶的belog