clip 属性定义了元素的哪一部分是可见的。clip 属性只适用于 position:absolute
的元素。
警告
: 这个属性已被废弃。建议使用 clip-path
文档
- https://developer.mozilla.org/zh-CN/docs/Web/CSS/clip
- https://developer.mozilla.org/zh-CN/docs/Web/CSS/clip-path
目录
- 语法
- 截取各个边框
- 实现Loading加载效果边框
- 参考文章
语法
/* 标准语法 */
clip: rect(<top>, <right>, <bottom>, <left>);
/* 向后兼容语法 */
clip: rect(<top> <right> <bottom> <left>);
/* 默认值。不应用任何剪裁 */
clip: auto;
/* 从父元素继承 clip 属性的值 */
clip: inherit;
- top 和 bottom 指定相对于盒子
上边框边界
的偏移 - right 和 left 指定了相对于盒子
左边框边界
的偏移
截取各个边框
实现代码
<style>
.box-wrap {
display: flex;
column-gap: 20px;
}
.box {
position: relative;
height: 200px;
width: 200px;
background-color: green;
color: #fff;
font-size: 24px;
text-align: center;
line-height: 200px;
}
.box::before {
content: "";
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
border: 2px solid #cd0000;
}
.box-top::before {
/* 上边框 */
clip: rect(0 200px 2px 0);
}
.box-bottom::before {
/* 下边框 */
clip: rect(198px, 200px, 200px, 0);
}
.box-left::before {
/* 左边框 */
clip: rect(0, 2px, 200px, 0);
}
.box-right::before {
/* 右边框 */
clip: rect(0, 200px, 200px, 198px);
}
</style>
<div class="box-wrap">
<div class="box">box</div>
<div class="box box-top">box-top</div>
<div class="box box-bottom">box-bottom</div>
<div class="box box-left">box-left</div>
<div class="box box-right">box-right</div>
</div>
实现Loading加载效果边框
实现代码
<style>
.box {
position: relative;
height: 200px;
width: 200px;
background-color: green;
color: #fff;
font-size: 24px;
text-align: center;
line-height: 200px;
}
.box::before {
content: "";
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
border: 2px solid #cd0000;
animation: borderAround 1.5s infinite linear;
}
@keyframes borderAround {
0%,
100% {
clip: rect(0 200px 2px 0);
}
25% {
clip: rect(0, 200px, 200px, 198px);
}
50% {
clip: rect(198px, 200px, 200px, 0);
}
75% {
clip: rect(0, 2px, 200px, 0);
}
}
</style>
<div class="box">box</div>
演示地址:https://mouday.github.io/front-end-demo/clip-path/loading.html
参考文章
-
CSS实线边框loading动画实例页面
-
CSS3/SVG clip-path路径剪裁遮罩属性简介
-
菜鸟教程 - CSS clip 属性