使用 CSS 变量更改多个元素样式

使用 CSS 变量更改多个元素样式

var() 函数用于插入自定义的属性值,如果一个属性值在多处被使用,该方法就很有用。
custom-property-name 是必需的, 自定义属性的名称,必需以 – 开头。
value 可选。备用值,在属性不存在的时候使用。

var(custom-property-name, value)

:root {
  --main-bg-color: coral;
  --main-txt-color: blue;
  --main-padding: 15px;
}
 
#div1 {
  background-color: var(--main-bg-color);
  color: var(--main-txt-color);
  padding: var(--main-padding);
}
 
#div2 {
  background-color: var(--main-bg-color);
  color: var(--main-txt-color);
  padding: var(--main-padding);
}

创建一个自定义的 CSS 变量

创建一个 CSS 变量,只需要在变量名前添加两个破折号,并为其赋值。
这样会创建一个–penguin-skin变量并赋值为gray(灰色)。
其他元素可通过该变量来设置为gray(灰色)。

--penguin-skin: gray;

使用一个自定义的 CSS 变量

创建变量后,CSS 属性可以通过引用变量名来使用它的值。

background: var(--rabbit-basecolor);

变量不生效时设定默认值

当变量因为某些原因导致变量不生效, 可以设置一个备用值。
比如: 有些人正在使用着不支持 CSS 变量的旧浏览器,或者,设备不支持你设置的变量值。

background: var(--penguin-skin, black);

一只会动的兔子

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Easter Rabbit</title>
<style>
html {
	width: 100%;
	height: 100%;
}

body {
	width: 100%;
	height: 100%;
	background: #E2B29F;
	display: flex;
	justify-content: center;
	align-items: center;
}

.rabbit {
    --rabbit-basecolor: gray;
    --rabbit-ear-shadow: pink;
    --rabbit-skicolor:white;
	
	position: relative;
}

.rabbit .rabbit__body {
	width: 4em;
	height: 5.6em;
	/*在这行以下修改代码*/
	background: var(--rabbit-skincolor, whitesmoke);
	border-radius: 50% 50% 50% 50%/60% 60% 40% 40%;
	-webkit-transform: rotate(-40deg);
	transform: rotate(-40deg);
	box-shadow: inset -2.3em -2.7em 0 0 var(--rabbit-basecolor);
}

.rabbit .rabbit__head {
	position: absolute;
	width: 4em;
	height: 4.6em;
	top: -2.5em;
	left: -2em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/65% 60% 40% 35%;
	-webkit-transform: rotate(-120deg);
	transform: rotate(-120deg);
	overflow: hidden;
}

.rabbit .rabbit__head:before {
	content: "";
	position: absolute;
	width: 0.65em;
	height: 0.5em;
	top: -0.1em;
	left: 1.8em;
	background: #F97996;
	border-radius: 50% 50% 50% 50%/30% 30% 70% 70%;
	-webkit-transform: rotate(130deg);
	transform: rotate(130deg);
}

.rabbit .rabbit__head:after {
	content: "";
	position: absolute;
	width: 1em;
	height: 1em;
	top: 1.5em;
	left: 1.6em;
	background: #F4F4F4;
	border-radius: 50%;
	box-shadow: inset 0.1em 0.15em 0 0.37em #3D261C;
}

.rabbit .rabbit__ear {
	position: absolute;
	border-radius: 50% 50% 50% 50%/40% 40% 60% 60%;
	-webkit-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
}

.rabbit .rabbit__ear--left {
	width: 2.2em;
	height: 4.7em;
	top: -5.7em;
	left: -0.2em;
	background: var(--rabbit-ear-shadow, #F3E3DE);
	-webkit-transform: rotate(40deg);
	transform: rotate(40deg);
	box-shadow: inset 0.3em -0.4em 0 -0.1em var(--rabbit-basecolor);
	-webkit-animation: ear-left 5s infinite ease-out;
	animation: ear-left 5s infinite ease-out;
}

.rabbit .rabbit__ear--right {
	width: 2em;
	height: 4.7em;
	top: -5.5em;
	left: -0.7em;
	background: var(--rabbit-basecolor);
	-webkit-transform: rotate(10deg);
	transform: rotate(10deg);
	-webkit-animation: ear-right 5s infinite ease-out;
	animation: ear-right 5s infinite ease-out;
}

.rabbit .rabbit__leg {
	position: absolute;
}

.rabbit .rabbit__leg--one {
	width: 0.8em;
	height: 3em;
	top: 2.3em;
	left: 0.2em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/30% 30% 70% 70%;
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-transform: rotate(15deg);
	transform: rotate(15deg);
}

.rabbit .rabbit__leg--one:before {
	content: "";
	position: absolute;
	width: 0.8em;
	height: 0.5em;
	top: 2.6em;
	left: -0.2em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/70% 70% 30% 30%;
	-webkit-transform: rotate(-10deg);
	transform: rotate(-10deg);
}

.rabbit .rabbit__leg--three {
	width: 0.9em;
	height: 3em;
	top: 2.4em;
	left: 0.7em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/30% 30% 70% 70%;
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-transform: rotate(10deg);
	transform: rotate(10deg);
}

.rabbit .rabbit__leg--three:before {
	content: "";
	position: absolute;
	width: 0.8em;
	height: 0.5em;
	top: 2.6em;
	left: -0.2em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/70% 70% 30% 30%;
	-webkit-transform: rotate(-10deg);
	transform: rotate(-10deg);
}

.rabbit .rabbit__leg--two {
	width: 2.6em;
	height: 3.6em;
	top: 1.7em;
	left: 1.6em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-transform: rotate(10deg);
	transform: rotate(10deg);
}

.rabbit .rabbit__leg--two:before {
	content: "";
	position: absolute;
	width: 1.6em;
	height: 0.8em;
	top: 3.05em;
	left: 0em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/70% 70% 30% 30%;
	-webkit-transform: rotate(-10deg);
	transform: rotate(-10deg);
}

.rabbit .rabbit__leg--four {
	width: 2.6em;
	height: 3.6em;
	top: 1.8em;
	left: 2.1em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/50% 50% 50% 50%;
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-transform: rotate(10deg);
	transform: rotate(10deg);
}

.rabbit .rabbit__leg--four:before {
	content: "";
	position: absolute;
	width: 1.6em;
	height: 0.8em;
	top: 3.05em;
	left: 0em;
	background: var(--rabbit-basecolor);
	border-radius: 50% 50% 50% 50%/70% 70% 30% 30%;
	-webkit-transform: rotate(-10deg);
	transform: rotate(-10deg);
}

.rabbit .rabbit__tail {
	position: absolute;
	width: 0.9em;
	height: 0.9em;
	top: 3.7em;
	left: 4em;
	background: var(--rabbit-basecolor);
	-webkit-transform: rotate(25deg);
	transform: rotate(25deg);
}

.rabbit .rabbit__tail:after, .rabbit .rabbit__tail:before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background: var(--rabbit-basecolor);
	border-radius: 50%;
}

.rabbit .rabbit__tail:before {
	top: 0;
	left: -50%;
}

.rabbit .rabbit__tail:after {
	top: 50%;
	left: 0;
}

@-webkit-keyframes ear-left {
	0%, 20%, 100% {
		-webkit-transform: rotate(40deg);
		transform: rotate(40deg);
	}

	10%, 30%, 80% {
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	90% {
		-webkit-transform: rotate(50deg);
		transform: rotate(50deg);
	}
}

@keyframes ear-left {
	0%, 20%, 100% {
		-webkit-transform: rotate(40deg);
		transform: rotate(40deg);
	}

	10%, 30%, 80% {
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	90% {
		-webkit-transform: rotate(50deg);
		transform: rotate(50deg);
	}
}

@-webkit-keyframes ear-right {
	0%, 20%, 100% {
		-webkit-transform: rotate(10deg);
		transform: rotate(10deg);
	}

	10%, 30%, 80% {
		-webkit-transform: rotate(5deg);
		transform: rotate(5deg);
	}

	90% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
}

@keyframes ear-right {
	0%, 20%, 100% {
		-webkit-transform: rotate(10deg);
		transform: rotate(10deg);
	}

	10%, 30%, 80% {
		-webkit-transform: rotate(5deg);
		transform: rotate(5deg);
	}

	90% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<div class="rabbit">
	<div class="rabbit__leg rabbit__leg--one">
	</div>
	<div class="rabbit__leg rabbit__leg--two">
	</div>
	<div class="rabbit__tail">
	</div>
	<div class="rabbit__body">
	</div>
	<div class="rabbit__leg rabbit__leg--three">
	</div>
	<div class="rabbit__leg rabbit__leg--four">
	</div>
	<div class="rabbit__ear rabbit__ear--right">
	</div>
	<div class="rabbit__head">
	</div>
	<div class="rabbit__ear rabbit__ear--left">
	</div>
</div>
<!-- partial -->
</body>
</html>

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕斯-ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值