使 css 中也可以像 js 一样声明变量,但是在使用之前应该要知道一些东西
--变量名 声明变量var(--变量名) 就可以获取到对应的值var(当前值, 回退值),当第一个值未定义,回退值生效--text-color 而不是 --textColor,两种都可以,但是第一种情况使用的多一些:root {
--text-color: red;
}
span {
--text-padding: 12px;
color: var(--text-color); /* 情况一直接使用:red; */
font-size: var(--text-size, 24px); /* 情况二当前值不存在:24px; */
padding: 0 var(--text-padding, 24px); /* 情况三当前值存在:12px; */
}
使 css 的属性值可以进行四则运算
calc(num1 + num2) 时最好向前面一样使用空格隔开,不然会失效,比如+-不隔开会失效,而*/并不会+- 是相同规则,*/ 是相同规则span {
--w: 50px;
font-size: calc(24px * 2); /* 48px */
width: calc(50px + 50px); /* 100px */
padding: calc(var(--w) + 50px); /* 100px */
}
一般用于网格布局的 grid-template-columns 和 grid-template-rows 属性
它们都是 background-image 的属性
规则:
示例:
div {
background-image: linear-gradient(red, blue);/* 默认从上向下渐变,也就是 180deg */
background-image: linear-gradient(90deg, red 0%, blue 100%); /* 90deg 从左向右渐变 */
}
规则:
示例:
div {
background-image: radial-gradient(circle, white, black); /* 默认at 50%,从内白向外黑渐变 */
}
使用方式和线形渐变一样,不过当渐变内容不足以撑满时会重复渐变
div {
background-image: repeating-linear-gradient(lightpink, white); /* 正常情况下的渐变 */
background-image: repeating-linear-gradient(lightpink 0px, lightpink 5px, white 5px, white 10px); /* 重复渐变 */
}
使用方式和径向渐变一样,不过当渐变内容不足以撑满时会重复渐变
div {
background-image: repeating-radial-gradient(lightpink 0px, lightpink 5px, white 5px, white 10px);
}
div {
background-image: conic-gradient(red, orange, yellow, green, blue); /* 基本使用*/
}
filter 属性
div {
filter: blur(1px); /* 模糊半径,像素单位 */
}
div {
filter: brightness(1); /* 默认值为1,大于1更明亮,小于1更黑暗 */
}
div {
filter: contrast(1); /* 默认值为1,大于1增加对比度,小于1减少对比度 */
}
兼容性很差
div {
filter: drop-shadow(10px 10px 10px red); /* X轴偏移,Y轴偏移,模糊半径,投影颜色 */
}
div {
filter: grayscale(1); /* 默认值为1,1灰度最大,0没有效果 */
}
div {
filter: hue-rotate(0deg);/* 默认值0deg或360deg,0deg~360deg之间会做改变 */
}
div {
filter: invert(1); /* 默认值为1,1反转最大,0没有效果 */
}
div {
filter: opacity(1); /* 默认值为1,1没有效果,0变透明 */
}
div {
filter: saturate(1); /* 默认值为1,1没有效果,1~0去饱和,大于1变饱和 */
}
div {
filter: sepia(1); /* 默认值为1,1转换最大,0没有效果 */
}
backdrop-filter 属性
这个在之前 css 过渡动画 中有讲到