圆角 阴影 过渡 动画以及border的属性

本文详细介绍了CSS3中关于边框、圆角、背景的新特性,包括如何创建圆角边框、盒阴影、边界图片,以及使用background-origin和background-clip属性控制背景显示。此外,还深入讲解了CSS3过渡和动画的用法,包括过渡效果、速度曲线、动画关键帧等,展示了如何实现平滑的元素样式变换和动态效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 章节目录

1.1 目标

  • 边框
  • 圆角
  • 背景

1.2 重点

  • 圆角

1.3 难点

  • 圆角

2 边框

用 CSS3,你可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序,如 Photoshop。

2.1 圆角

在 CSS2 中添加圆角棘手。我们不得不在每个角落使用不同的图像。

在 CSS3 中,很容易创建圆角。

在 CSS3 中 border-radius 属性被用于创建圆角:

div.radius {
    border: 2px solid red;
    border-radius: 25px;
}

效果:

圆角边框

2.2 盒阴影

CSS3 中的 box-shadow 属性被用来添加阴影:

div.shadow {
    border: 1px solid gray;
	box-shadow: 10px 10px 5px #888888;
}

效果:

盒阴影

2.3 边界图片

有了 CSS3 的 border-image 属性,你可以使用图像创建一个边框。

用于创建边框的原始图像:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfZNOqb4-1671716467695)(MD文档.assets\border.png)]

实例1:

div.round {
	border: 15px solid transparent;
	border-image: url('img/border.png') 30 30 round;
	-webkit-border-image: url('img/border.png') 30 30 round;
	-o-border-image: url('img/border.png') 30 30 round;
}

效果:

图像平铺来填充该区域

实例2:

div.stretch {
	border: 15px solid transparent;
	border-image: url('img/border.png') 30 30 stretch;
	-webkit-border-image: url('img/border.png') 30 30 stretch;
	-o-border-image: url('img/border.png') 30 30 stretch;
}

效果:

图像被拉伸以填充该区域

3 圆角

3.1 border-radius 属性

使用 CSS3 border-radius 属性,你可以给任何元素制作“圆角”。

实例:

div {
	width: 200px;
	height: 150px;
	padding: 20px;
}
.radius1 {
	color: white;
	background: green;
	border-radius: 25px;
}
.radius2 {
	border-radius: 25px;
	border: 2px solid green;
}
.radius3 {
	border-radius: 25px;
	background: url('img/paper.gif');
	background-position: left top;
	background-repeat: repeat;
}

效果:

带背景的圆角
带边框的圆角
带背景图片的圆角

3.2 指定每个圆角

CSS 拥有用于为元素的每个角指定圆角的属性:

  • border-radius: 15px 50px 30px 5px;:左上角为15px,右上角为50px,右下角为30px,左下角为5px。
  • border-radius: 15px 50px 30px;:左上角为15px,右上角和左下角为50px,右下角为30px。
  • border-radius: 15px 50px;:左上角和右下角为15px,右上角和左下角为50px。
  • border-radius: 15px;:四个角都是15px。

实例:

.radius4 {
	color: white;
	background: green;
	border-radius: 15px 50px 30px 5px;
}
.radius5 {
	color: white;
	background: green;
	border-radius: 15px 50px 30px;
}
.radius6 {
	color: white;
	background: green;
	border-radius: 15px 50px;
}
.radius7 {
	color: white;
	background: green;
	border-radius: 15px;
}

效果:

四个值
三个值
两个值
一个值

3.3 椭圆边角

实例:

.radius8 {
	color: white;
	background: green;
	border-radius: 50px/15px;
}
.radius9 {
	color: white;
	background: green;
	border-radius: 15px/50px;
}
.radius10 {
	color: white;
	background: green;
	border-radius: 50%;
}

效果:

椭圆边角1
椭圆边角2
椭圆边角3

3.4 圆形边角

我们经常需要使用圆角来显示用户头像:

.avatar {
	width: 200px;
	height: 200px;
	display: inline-block;
	border-radius: 50%;
	background: url('img/avatar.jpg');
	background-size: contain;
}

效果:

4 背景

CSS3 中包含几个新的背景属性,提供更大背景元素控制。

4.1 background-image 属性

CSS3 中可以通过 background-image 属性添加背景图片。

不同的背景图像和图像用逗号隔开,所有的图片中显示在最顶端的为第一张。

实例:

.example1 {
	width: 700px;
	overflow: auto;
	padding: 5px 10px;
	background-image: url('img/flower.gif'), url('img/paper.gif');
	background-position: right bottom, left top;
	background-repeat: no-repeat, repeat;
}

效果:

学历职业教育与非学历职业教育“两开花”

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。前者包含中等职业教育及高等职业教育,以公办院校为主民办院校为辅,后者根据培训目的不同,分为企业管理培训(如财务、人力资源管理等)、职业技能培训(如IT类、语言类等)和职业考试培训(如公考、教职、财会、司法及医护等),以民办机构为主。

2021年职业教育行业重磅政策频出,职业教育教育各细分板块的政策导向逐步明晰。传习邦认为,随着多项职业教育利好政策颁布,在政策需求、市场需求和个人成长需求的共同推动下,职业教育在未来将发生巨大的变化。

4.2 background-size 属性

background-size 指定背景图像的大小。CSS3 以前,背景图像大小由图像的实际大小决定。

CSS3 中可以指定背景图片,让我们重新在不同的环境中指定背景图片的大小。你可以指定像素或百分比大小。

你指定的大小是相对于父元素的宽度和高度的百分比的大小。

实例:

.example2 {
	width: 400px;
	overflow: auto;
	padding: 5px 10px;
	background-image: url('img/flower.gif');
	background-size: 100% 100%;
	background-repeat: no-repeat;
}

效果:

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

4.3 background-origin 属性

background-origin 属性指定了背景图像的位置区域。

content-box、padding-box 和 border-box 区域内可以放置背景图像。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEOIzwsP-1671716467696)(MD文档.assets\background-origin.gif)]

在 content-box 中定位背景图片:

.example3 {
	width: 400px;
	overflow: auto;
	padding: 10px;
	border: 10px solid rgba(255, 0, 0, 0.1);
	background-color: rgba(0, 120, 0, 0.1);
	background-image: url('img/flower_small.gif');
	background-repeat: no-repeat;
	background-position: left center;
}
.example3-padding {
	background-origin: padding-box; // 默认值
}
.example3-content {
	background-origin: content-box;
}
.example3-border {
	background-origin: border-box;
}

background-origin: padding-box;(默认值):

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

`background-origin: content-box;`:

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

background-origin: border-box;

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

4.4 background-clip 属性

CSS3 中 background-clip 背景剪裁属性是从指定位置开始绘制。

实例:

.example4 {
	width: 400px;
	overflow: auto;
	padding: 15px;
	border: 10px dotted blue;
	background-color: lightskyblue;
}
.example4-border {
	background-clip: border-box; // 默认值
}
.example4-content {
	background-clip: content-box;
}
.example4-padding {
	background-clip: padding-box;
}

background-clip: border-box;(默认值):

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

background-clip: content-box;

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

background-clip: padding-box;

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

## 5 章节总结
  • 边框
  • 圆角
  • 背景

background-clip: padding-box;

职业教育作为以就业为导向的教育类型,其目的在于培养更适应社会发展的人才。而从导向上来看,政策也更倾向于鼓励、支持和引导职业教育和高等教育发展。根据是否颁发学历证书,可以将中国职业教育体系分为学历职业教育和非学历职业教育两类。

## 5 章节总结
  • 边框
  • 圆角
  • 背景

1 章节目录

1.1 目标

  • 过渡
  • 动画

1.2 重点

  • 过渡

1.3 难点

  • 动画

2 过渡

CSS3中,我们为了添加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z6ogCMLc-1671716566399)(MD文档.assets\transition.gif)]

2.1 它是如何工作的?

CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。

要实现这一点,必须规定两项内容:

  • 指定要添加效果的CSS属性
  • 指定效果的持续时间。

示例代码如下:

div {
	width: 100px;
	height: 100px;
	background: red;
	transition: width 2s;
	-webkit-transition: width 2s;
	-o-transition: width 2s;
}

如果未指定的期限,transition 将没有任何效果,因为默认值是 0。

定的CSS属性的值更改时效果会发生变化。一个典型CSS属性的变化是用户鼠标放在一个元素上时:

div:hover {
	width: 200px;
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XToMbFCz-1671716566400)(MD文档.assets\transition-1.gif)]

2.2 多项改变

要添加多个样式的变换效果,添加的属性由逗号分隔。

示例代码如下:

div.transition {
	width: 100px;
	height: 100px;
	color: white;
	text-align: center;
	transform: rotateZ(0deg);
	background: red;
	transition: width 2s, height 2s, transform 2s;
	-webkit-transition: width 2s, height 2s, transform 2s;
	-o-transition: width 2s, height 2s, transform 2s;
}
div.transition:hover {
	width: 300px;
	height: 300px;
	transform: rotateZ(45deg);
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43wY48AQ-1671716566400)(MD文档.assets\transition-2.gif)]

2.3 速度曲线

transition-timing-function 属性规定过渡效果的速度曲线。

transition-timing-function 属性可接受以下值:

  • ease - 规定过渡效果,先缓慢地开始,然后加速,然后缓慢地结束(默认)
  • linear - 规定从开始到结束具有相同速度的过渡效果
  • ease-in -规定缓慢开始的过渡效果
  • ease-out - 规定缓慢结束的过渡效果
  • ease-in-out - 规定开始和结束较慢的过渡效果
  • cubic-bezier(n,n,n,n) - 允许您在三次贝塞尔函数中定义自己的值

下面的例子展示了可以使用的一些不同的速度曲线:

div {
	width: 200px;
	height: 50px;
	color: white;
	text-align: center;
	background: red;
	transition: width 2s;
	-webkit-transition: width 2s;
	-o-transition: width 2s;
}
div:hover {
	width: 300px;
}
.timing1 {
	transition-timing-function: linear;
}
.timing2 {
	transition-timing-function: ease;
}
.timing3 {
	transition-timing-function: ease-in;
}
.timing4 {
	transition-timing-function: ease-out;
}
.timing5 {
	transition-timing-function: ease-in-out;
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnIyhyVb-1671716566400)(MD文档.assets\transition-3.gif)]

2.4 延迟过渡效果

transition-delay 属性规定过渡效果的延迟(以秒计)。

下例在启动之前有 1 秒的延迟:

div {
  transition-delay: 1s;
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PqlpZzib-1671716566401)(MD文档.assets\transition-4.gif)]

2.5 简写属性

实例:

div {
  transition-property: width;
  transition-duration: 2s;
  transition-timing-function: linear;
  transition-delay: 2s;
}

以上样式可简写为:

div {
  transition: width 2s linear 2s;
}

3 动画

CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AaNB4PtG-1671716566401)(MD文档.assets\animation.gif)]

3.1 什么是 CSS 动画?

动画使元素逐渐从一种样式变为另一种样式。

您可以随意更改任意数量的 CSS 属性。

如需使用 CSS 动画,您必须首先为动画指定一些关键帧。

关键帧包含元素在特定时间所拥有的样式。

3.2 @keyframes 规则

如果你在 @keyframes 规则中指定了 CSS 样式,动画将在特定时间逐渐从当前样式更改为新样式。

要使动画生效,必须将动画绑定到某个元素。

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sEgMCA8Z-1671716566401)(MD文档.assets\keyframes-1.gif)]

示例代码如下:

/* 动画代码 */
@keyframes example1 {
	from {
		background-color: red;
	}
	to {
		background-color: yellow;
	}
}
/* 应用动画的元素 */
.example1 {
	animation-name: example1;
	animation-duration: 4s;
}

animation-duration 属性定义需要多长时间才能完成动画。如果未指定 animation-duration 属性,则动画不会发生,因为默认值是 0s(0秒)。

在上面的例子中,通过使用关键字“from”和“to”(代表 0%(开始)和 100%(完成)),我们设置了样式何时改变。

你也可以使用百分比值。通过使用百分比,你可以根据需要添加任意多个样式更改。

下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改 <div> 元素的背景颜色:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SvWXhLB7-1671716566401)(MD文档.assets\keyframes-2.gif)]

示例代码如下:

/* 动画代码 */
@keyframes example2 {
	0% {
		background-color: red;
	}
	25% {
		background-color: yellow;
	}
	50% {
		background-color: blue;
	}
	100% {
		background-color: green;
	}
}
/* 应用动画的元素 */
.example2 {
	animation-name: example2;
	animation-duration: 4s;
}

下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改背景颜色和 <div> 元素的位置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cy8I7JWT-1671716566402)(MD文档.assets\keyframes-3.gif)]

实例代码如下:

/* 动画代码 */
@keyframes example3 {
	0% {
		background-color: red;
		left: 0px;
		top: 0px;
	}
	25% {
		background-color: yellow;
		left: 200px;
		top: 0px;
	}
	50% {
		background-color: blue;
		left: 200px;
		top: 200px;
	}
	75% {
		background-color: green;
		left: 0px;
		top: 200px;
	}
	100% {
		background-color: red;
		left: 0px;
		top: 0px;
	}
}
/* 应用动画的元素 */
.example3 {
	animation-name: example3;
	animation-duration: 4s;
}

3.3 延迟动画

animation-delay 属性规定动画开始的延迟时间。

示例1:

div {
	width: 100px;
	height: 100px;
	position: relative;
	background-color: red;
}
@keyframes example1 {
	from {
		background-color: red;
	}
	to {
		background-color: yellow;
	}
}
.example1 {
	animation-name: example1;
	animation-duration: 4s;
	animation-delay: 2s;
}

负值也是允许的。如果使用负值,则动画将开始播放,如同已播放 N 秒。

示例2:

@keyframes example2 {
	from {
		background-color: red;
	}
	
	to {
		background-color: yellow;
	}
}
.example2 {
	animation-name: example2;
	animation-duration: 4s;
	animation-delay: -2s;
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSDy4sNB-1671716566402)(MD文档.assets\keyframes-4.gif)]

3.4 运行次数

animation-iteration-count 属性指定动画应运行的次数。

实例:

@keyframes example {
	from {
		background-color: red;
	}
	to {
		background-color: yellow;
	}
}
div {
	width: 100px;
	height: 100px;
	position: relative;
	background-color: red;
	animation-name: example;
	animation-duration: 4s;
	animation-iteration-count: 3;
}

3.5 反向或交替运行动画

animation-direction 属性指定是向前播放、向后播放还是交替播放动画。

animation-direction 属性可接受以下值:

  • normal - 动画正常播放(向前)。默认值
  • reverse - 动画以反方向播放(向后)
  • alternate - 动画先向前播放,然后向后
  • alternate-reverse - 动画先向后播放,然后向前

实例:

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-direction: reverse;
}

3.6 速度曲线

animation-timing-function 属性规定动画的速度曲线。

animation-timing-function 属性可接受以下值:

  • ease - 指定从慢速开始,然后加快,然后缓慢结束的动画(默认)
  • linear - 规定从开始到结束的速度相同的动画
  • ease-in - 规定慢速开始的动画
  • ease-out - 规定慢速结束的动画
  • ease-in-out - 指定开始和结束较慢的动画
  • cubic-bezier(*n*,*n*,*n*,*n*) - 运行您在三次贝塞尔函数中定义自己的值

下面这些例子展示了可以使用的一些不同速度曲线:

div {
	width: 200px;
	height: 50px;
	color: white;
	text-align: center;
	position: relative;
	background-color: red;
	animation-name: example;
	animation-duration: 4s;
}
@keyframes example {
	from {
		background-color: red;
	}
	to {
		background-color: yellow;
	}
}
.example1 {
	animation-timing-function: linear;
}
.example2 {
	animation-timing-function: ease;
}
.example3 {
	animation-timing-function: ease-in;
}
.example4 {
	animation-timing-function: ease-out;
}
.example5 {
	animation-timing-function: ease-in-out;
}

示例效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Dw1j4Is-1671716566402)(MD文档.assets\keyframes-5.gif)]

3.7 填充模式

CSS 动画不会在第一个关键帧播放之前或在最后一个关键帧播放之后影响元素。animation-fill-mode 属性能够覆盖这种行为。

在不播放动画时(在开始之前,结束之后,或两者都结束时),animation-fill-mode 属性规定目标元素的样式。

animation-fill-mode 属性可接受以下值:

  • none - 默认值。动画在执行之前或之后不会对元素应用任何样式。
  • forwards - 元素将保留由最后一个关键帧设置的样式值(依赖 animation-direction 和 animation-iteration-count)。
  • backwards - 元素将获取由第一个关键帧设置的样式值(取决于 animation-direction),并在动画延迟期间保留该值。
  • both - 动画会同时遵循向前和向后的规则,从而在两个方向上扩展动画属性。

实例:

@keyframes example {
	from {
		background-color: red;
	}
	to {
		background-color: yellow;
	}
}
div {
	width: 100px;
	height: 100px;
	position: relative;
	background-color: red;
	animation-name: example;
	animation-duration: 4s;
	animation-fill-mode: forwards;
}

3.8 简写属性

实例:

div {
  animation-name: example;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-delay: 2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

以上样式可以简写为:

div {
  animation: example 4s linear 2s infinite alternate;
}

4 章节总结

  • 过渡
  • 动画
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值