第一种 before after
长度可调,具体的可以自己进行调整
<div class='tf'></div>
.tf{
width: 100%;
height: 80px;
background-image: linear-gradient(0deg, rgb(18 24 78 / 20%) 0%, rgb(19 24 85 / 20%) 100%);
/* border: solid 1px rgba(55, 85, 218, 0.2); */
margin-bottom: 20px;
box-shadow: 0px 0px 3px 3px rgb(55 85 218 / 20%);
position: relative;
border: 2px solid #5dffff;
border-radius:8px
}
.tf::before {
position: absolute;
top: -2px;
bottom: -2px;
left: 10px;
width: calc(100% - 20px);
content: "";
border-top: 2px solid #294a81;
border-bottom: 2px solid #294a81;
z-index: 0;
}
.tf::after {
position: absolute;
top: 10px;
right: -2px;
left: -2px;
height: calc(100% - 20px);
content: "";
border-right: 2px solid #294a81;
border-left: 2px solid #294a81;
z-index: 0;
}
第二种 通过背景图片
通过background-size调整大小
.tf{
background: url(../images/top-left.png) top left no-repeat, url(../images/top-right.png) top right no-repeat, url(../images/bottom-left.png) bottom left no-repeat, url(../images/bottom-right.png) bottom right no-repeat;
background-color: rgba(255,255,255,0);
color: #fff;
border: 1px solid #0d529f;
padding: 1px;
}
第三种 通过子元素定位实现
<div class="main">
<span></span>
<span></span>
<span></span>
<span></span>
</div>
.main{
position: relative;
width: 400px;
height: 200px;
border: 1px solid green;
}
.main span:nth-child(1){
position: absolute;
left: -5px;
top: -5px;
padding: 15px;
border-style: solid;
border-color: red;
border-width: 5px 0 0 5px;
}
.main span:nth-child(2){
position: absolute;
right: -5px;
top: -5px;
padding: 15px;
border-style: solid;
border-color: red;
border-width: 5px 5px 0 0;
}
.main span:nth-child(3){
position: absolute;
right: -5px;
bottom: -5px;
padding: 15px;
border-style: solid;
border-color: red;
border-width: 0 5px 5px 0;
}
.main span:nth-child(4){
position: absolute;
left: -5px;
bottom: -5px;
padding: 15px;
border-style: solid;
border-color: rebeccapurple;
border-width: 0 0 5px 5px;
}
第四种 通过background 渐变
.tf{
display: inline-block;
padding: 7px;
background: linear-gradient(#00ffd4, #00ffd4) left top, linear-gradient(#00ffd4, #00ffd4) left top, linear-gradient(#00ffd4, #00ffd4) right top, linear-gradient(#00ffd4, #00ffd4) right top, linear-gradient(#00ffd4, #00ffd4) left bottom, linear-gradient(#00ffd4, #00ffd4) left bottom, linear-gradient(#00ffd4, #00ffd4) right bottom, linear-gradient(#00ffd4, #00ffd4) right bottom;
background-repeat: no-repeat;
background-size: 2px 20px, 20px 2px;
}