如何使用 CSS 在侧边栏内添加自定义曲线形状?
How can i add a custom curved shape inside a sidebar using CSS?
body{
font-family: roboto;
}
*{
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
}
.sidebar{
position: fixed;
left: 0px;
width: 314px;
height: 100vh;
background-color: #002438;
box-shadow: hsl(0, 0%, 60%) 7px 2px 15px;
}
.sidebar header{
font-size: 50px;
margin-top: -7%;
padding-top: 50px;
padding-bottom: 50px;
text-align: center;
line-height: 20px;
color: #002438;
font-weight: 1000;
line-height: 30px;
background-color: rgb(255, 255, 255, 90%);
border-bottom-left-radius: 200px;
border-bottom-right-radius: 200px;
}
.sidebar ul a{
display: block;
line-height: 60px;
font-size: 24px;
color: white;
text-align: center;
padding-top: 25px;
}
.sidelist :hover{
color: rgb(24, 234, 253);
}
.sidelist{
padding-top: 50px;
}
.sidebar header span{
font-size: 25px;
font-weight: 400;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lead Manager</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="sidebar">
<header>LEAD <br> <span>MANAGER</span></header>
<ul class="sidelist">
<li><a href="#">DASHBOARD</a></li>
<li><a href="#">CUSTOMER</a></li>
<li><a href="#">LEADS</a></li>
<li><a href="#">REPORTS</a></li>
<li><a href="#">SMS</a></li>
<li><a href="#">PROFILE</a></li>
</ul>
</div>
<div class="maskbg"></div>
<div class="shapemask"></div>
</div>
</body>
</html>
这是我要在边栏内创建的形状
侧边栏在包装器内。我也在包装器内创建了一个简单的 div ,但是当我为自定义形状提供 height 、 width 和 color 时,它没有显示出来。侧杆固定在左侧。我尝试在互联网上查找并看到提到的剪贴蒙版。我将侧边栏放在包装器中以查看是否可以弯曲它,以便侧边栏的右侧是另一个 div,它可以用作该页面中其他所有内容的容器。这也不起作用,因为它没有显示 html 和 css.
的任何错误
请注意添加了 shapemask 和 maskbg class,因为我尝试做剪贴蒙版,但最后我什至看不到由 div 形成的简单形状。
两个radial-gradient可以做到:
.box {
width:250px;
height:400px;
background:
radial-gradient(100% 150% at top, #002438 50%,transparent 50.2%),
radial-gradient(100% 180% at top, #a1abb0 48% ,#7f868b 50%,transparent 50.2%),
#ced0d2;
background-size:400% 300px;
background-position:1% 0;
background-repeat:no-repeat;
}
<div class="box"></div>
body{
font-family: roboto;
}
*{
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
}
.sidebar{
position: fixed;
left: 0px;
width: 314px;
height: 100vh;
background-color: #002438;
box-shadow: hsl(0, 0%, 60%) 7px 2px 15px;
}
.sidebar header{
font-size: 50px;
margin-top: -7%;
padding-top: 50px;
padding-bottom: 50px;
text-align: center;
line-height: 20px;
color: #002438;
font-weight: 1000;
line-height: 30px;
background-color: rgb(255, 255, 255, 90%);
border-bottom-left-radius: 200px;
border-bottom-right-radius: 200px;
}
.sidebar ul a{
display: block;
line-height: 60px;
font-size: 24px;
color: white;
text-align: center;
padding-top: 25px;
}
.sidelist :hover{
color: rgb(24, 234, 253);
}
.sidelist{
padding-top: 50px;
}
.sidebar header span{
font-size: 25px;
font-weight: 400;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lead Manager</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="sidebar">
<header>LEAD <br> <span>MANAGER</span></header>
<ul class="sidelist">
<li><a href="#">DASHBOARD</a></li>
<li><a href="#">CUSTOMER</a></li>
<li><a href="#">LEADS</a></li>
<li><a href="#">REPORTS</a></li>
<li><a href="#">SMS</a></li>
<li><a href="#">PROFILE</a></li>
</ul>
</div>
<div class="maskbg"></div>
<div class="shapemask"></div>
</div>
</body>
</html>
这是我要在边栏内创建的形状
侧边栏在包装器内。我也在包装器内创建了一个简单的 div ,但是当我为自定义形状提供 height 、 width 和 color 时,它没有显示出来。侧杆固定在左侧。我尝试在互联网上查找并看到提到的剪贴蒙版。我将侧边栏放在包装器中以查看是否可以弯曲它,以便侧边栏的右侧是另一个 div,它可以用作该页面中其他所有内容的容器。这也不起作用,因为它没有显示 html 和 css.
的任何错误请注意添加了 shapemask 和 maskbg class,因为我尝试做剪贴蒙版,但最后我什至看不到由 div 形成的简单形状。
两个radial-gradient可以做到:
.box {
width:250px;
height:400px;
background:
radial-gradient(100% 150% at top, #002438 50%,transparent 50.2%),
radial-gradient(100% 180% at top, #a1abb0 48% ,#7f868b 50%,transparent 50.2%),
#ced0d2;
background-size:400% 300px;
background-position:1% 0;
background-repeat:no-repeat;
}
<div class="box"></div>