前端 CSS 经典:弧形边框选项卡

yqcoder 2024-08-21 08:03:01 阅读 86

1. 效果图

2. 开始

准备一个元素,将元素左上角,右上角设为圆角。

<code><!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8" />code>

<meta name="viewport" content="width=device-width, initial-scale=1.0" />code>

<title>Document</title>

<style>

.tab {

width: 150px;

height: 40px;

margin: 0 auto;

background: #ed6a5e;

border-radius: 10px 10px 0 0;

}

</style>

</head>

<body>

<div class="tab"></div>code>

</body>

</html>

然后要在左右两边拼接弧形,我们可以写两个伪元素

<code>.tab::before,

.tab::after {

content: "";

position: absolute;

width: 10px;

height: 10px;

bottom: 0;

}

.tab::before {

left: -10px;

}

.tab::before {

right: -10px;

}

那怎么将这两个元素做成弧形呢,可以使用渐变。

<code>.tab::before {

background: radial-gradient(circle at 0 0, transparent 10px, #ed6a5e 10px);

}

.tab::after {

background: radial-gradient(circle at 100% 0, transparent 10px, #ed6a5e 10px);

}

这下我们有了弧形,那怎么做成效果图的样式呢,最后我们可以使用旋转。

<code>.tab {

transform: perspective(30px) rotateX(20deg);

transform-origin: center bottom;

}

 

3.完整代码

<code><!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8" />code>

<meta name="viewport" content="width=device-width, initial-scale=1.0" />code>

<title>Document</title>

<style>

.tab {

width: 150px;

height: 40px;

margin: 0 auto;

background: #ed6a5e;

border-radius: 10px 10px 0 0;

position: relative;

transform: perspective(30px) rotateX(20deg);

transform-origin: center bottom;

}

.tab::before,

.tab::after {

content: "";

position: absolute;

width: 10px;

height: 10px;

bottom: 0;

background: #000;

}

.tab::before {

left: -10px;

background: radial-gradient(

circle at 0 0,

transparent 10px,

#ed6a5e 10px

);

}

.tab::after {

right: -10px;

background: radial-gradient(

circle at 100% 0,

transparent 10px,

#ed6a5e 10px

);

}

</style>

</head>

<body>

<div class="tab"></div>code>

</body>

</html>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。