CSS实现标签效果

4,091 阅读1分钟

需求场景

当前端页面需要展示皮肤是否在使用、书籍是否阅读中、文件是否下载完成时,这时最直接的效果就是在盒子(div)左/右上角显示相应标签,不仅美观且实用。

这里以制作图片右上角标签为例,用CSS以最简单、直接的方式实现效果。

实现效果

实现效果

实现思路

  • 准备两个div(一个父容器,一个标签div),分别设置宽高,并设置相对布局。
  • 使标签div居于父容器右上角,设置内容居中显示,设置背景和字体颜色,旋转该div。
  • 将父容器设置overflow: hidden,实现父容器对标签div超出部分的遮挡,即实现了标签效果。

结构展示

结构展示

代码示例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>实现标签效果</title>
<style>
/* 外层div
   设为relative
   设置overflow: hidden实现对超出部分的 遮挡效果
 */
.img-box {
	width: 200px;
	height: 400px;
	margin: 40px;
	overflow: hidden;
	position: relative;
}
/* 外层div
   设为absolute,加以top、right等属性调整标签位置
   设置height、line-height、text-align控制标签内容水平垂直居中
   设置transform,旋转标签45度
 */
.tag {
	width: 140px;
  	height: 25px;
  	top: 16px;
  	right: -40px;
  	text-align: center;
  	line-height: 25px;
  	transform: rotate(45deg);
	position: absolute;
	color: white;
	background: #4188ab;
}
/* 图片展示 设为block */
.img {
	display: block;
	width: 200px;
	height: 400px;
}
</style>
</head>

<body>
<div class="img-box">
	<div class="tag">正在使用</div>
	<img class="img" src="..."/>
</div>

</body>
</html>