6.5、css3背景属性
6.5.1、多背景
background-image: url(图片路径), url(图片路径);
多背景中背景图书写越靠前,显示越靠前
6.5.2、background-size属性 背景图尺寸
-
background-size: 数值; 按比例缩放
-
background-size: cover;覆盖,等比例缩放背景图片到铺满盒子,背景图可能无法完整显示在盒子中
-
background-size: contain; 包含,等比例缩放背景图片到完整显示在盒子中,背景图在区域范围内可能铺不满
background-size: 100px;/* 等比例缩放 */
background-size: 100px 200px;/* 根据尺寸缩放 */
6.5.3、background-clip属性 背景的绘制区域
-
background-clip: content-box; 背景被裁剪到内容区域,仅在内容区域显示
-
background-clip: padding-box;背景被裁剪到内填充区域,在内容、内填充区域显示
-
background-clip: border-box;背景被裁剪到边框区域,在内容、内填充、边框区域显示,默认值
6.5.4、background-origin属性 背景图片的定位区域
- background-origin: content-box; 背景图片相对于内容来定位
- background-origin: padding-box; 背景图片相对于内填充来定位,默认
- background-origin: border-box; 背景图片相对于边框来定位
6.5.5、渐变
- 线性渐变 linear-gradient
background-image: linear-gradient(方向, 颜色1 范围1, 颜色2 范围2,...);
方向:left|right top|bottom、ndeg(n数值,正值沿着顺时针方向)
重复线性渐变:
background-image: repeating-linear-gradient(方向, 颜色1 范围1, 颜色2 范围2,...);
- 径向渐变 radial-gradient
background-image: radial-gradient(中心位置, 渐变形状, 颜色1 范围1, 颜色2 范围2,...);
中心位置:left|center|right top|center|bottom、x y
渐变形状:circle圆、ellipse椭圆形(默认值)
重复径向渐变:
background-image: repeating-radial-gradient(中心位置, 渐变形状, 颜色1 范围1, 颜色2 范围2,...);
6.5.6、resize属性 用户是否可以手动调整元素的尺寸
-
resize: none; 不允许用户调整元素尺寸
-
resize: both; 用户可以调整元素的宽度和高度
-
resize: vertical; 用户可以调整元素的高度
-
resize: horizontal; 用户可以调整元素的宽度
属性生效必须与overflow属性组合使用,属性值可以是hidden|auto|scroll
6.5.7、box-sizing属性 以特定的方式定义匹配某个区域的特定元素
-
box-sizing: border-box; 从已设置好的width属性和height属性中减去border、padding值,得到内容的宽度和高度
-
box-sizing: content-box; 在width属性和height属性之外绘制border、padding,默认值
6.5.8、多列布局
- column-count属性 列数
column-count: n; 内容划分为n列
column-count: auto; 由其他属性决定列数
- column-width属性 列宽
columnt-width: npx; 每列的宽度为npx
column-width: auto; 由其他属性决定宽度
- column-gap属性 列间隔
column-gap: npx; 两列之间的间隔为npx
column-gap: normal; 常规值,1em
- column-rule属性 列与列之间的分割线
column-rule: column-rule-width column-rule-style column-rule-color;
column-rule-width属性 分割线的宽度
column-rule-style属性 分割线的线型(solid double dotted dashed)
column-rule-color属性 分割线的颜色
- column-span属性 跨列合并
column-span: all; 横跨所有列合并
6.5.9、过渡效果——transition属性.
transition: transition-property transition-duration transition-timing-function transition-delay;
transition: css属性 执行时间(单位s|ms) 速度类型 延迟时间(s|ms)
1s = 1000ms
css属性:all表示所有属性
速度类型:linear匀速、ease平滑过渡,默认值、ease-in加速、ease-out减速、ease-in-out先加速后减速
要显示过渡效果,必须要有执行时间,否则执行时间默认为0,不产生过渡效果
transition: width 3s, background-color 1s;
6.5.10、2D|3D变换——transform属性
(1)2D变形
- transform: translate(x,y) 平移
transform: translate(100px,0);/* 100px水平向右移动 */
transform: translate(-100px,0);/* -100px水平向左移动 */
transform: translateX(-100px);沿着水平方向位移
transform: translate(0,100px);/* 100px垂直向下移动 */
transform: translate(0,-100px);/* -100px垂直向上移动 */
transform: translateY(-100px);/* 沿着垂直方向位移 */
transform: translate(-100px);/* 如果只有一个值,表示沿着水平方向移动 */
- transform: rotate(ndeg) 旋转
transform: rotate(60deg);/* 沿着顺时针方向旋转 */
transform: rotate(-60deg);/* 沿着逆时针方向旋转 */
- transform: scale(x,y) 缩放
x和y的取值0~1之间表示缩小,1表示正常大小,1以上表示放大,负值表示先翻转后缩放
transform: scale(0.5,1);/* 沿着水平方向缩小 */
transform: scale(1.5,1);/* 沿着水平方向放大 */
transform: scaleX(1.5);/* 沿着水平方向缩放 */
transform: scale(1,0.5);/* 沿着垂直方向缩小 */
transform: scale(1,1.5);/* 沿着垂直方向放大 */
transform: scaleY(1.5);/* 沿着垂直方向缩放 */
transform: scale(1.5,0.5);/* 水平方向放大,垂直方向缩小 */
transform: scale(2);/* 等比例缩放 */
transform: scale(-2);/* 先翻转后缩放 */
- transform: skew(x,y) 倾斜
transform: skew(30deg,0deg);/* 沿着水平方向倾斜 */
transform: skew(-30deg,0deg);
transform: skewX(-30deg);
transform: skew(0deg,30deg);/* 沿着垂直方向倾斜 */
transform: skew(0,-30deg);
transform: skewY(-30deg);
transform: skew(30deg,30deg);/* 沿着水平方向和垂直方向倾斜 */
transform: skew(30deg);/* 沿着水平方向倾斜 */
transform: scale(2) rotate(45deg);
- transform-origin属性 调整基点位置
transform-origin: right top;
(2)3D变形
- 3D必备属性——必须放在父元素上
transform-style: preserve-3d;/* 创建3D空间 */
perspective: 600px;/* 景深 透视点到元素的距离,也可以让网页产生3D效果 */
- 3D空间的3根轴线
x轴:水平,向右为正,向左为负
y轴:垂直,向下为正,向上为负
z轴:垂直于屏幕,向外为正,向内为负
- 位移
transform:translateZ(z); 沿着z轴位移
transform: translate3d(x,y,z);
- 旋转
transform: rotateX(ndeg);沿着水平方向旋转
transform: rotateY(ndeg);沿着垂直方向旋转
transform: rotateZ(ndeg);沿着z轴方向旋转
transform: rotate3d(x,y,z,ndeg);
- 缩放
transform: scaleZ(z);沿着z轴缩放
transform: scale3d(x,y,z);
6.5.11、calc()函数
css3新增功能,用于动态计算长度值
特点:
流体布局:屏幕分辨率变化,页面中元素的大小也会变化,但是布局不变
- 语法
calc(表达式)
可用来实现加、减、乘、除四则运算
width: calc(100px + 100px);
width: calc(100px+ 100px); 语法错误
width: calc(100px +100px); 语法错误
width: calc(100px+100px); 语法错误
运算符的前后需要添加空格
width: calc(2 * (100px + 100px));
运算规则:有括号先算括号里面的,先乘除后加减
-
兼容
在IE9、firefox、chrome、Safari可以正常呈现 -
利用calc函数实现自适应三列布局