CSSで斜め掛けリボンをつくる
2024.09.13 09:00
2024.09.09 12:59

NEWなどを表示する斜め掛けリボンをCSSで作ってみました。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="all" href="style.css" />
<title></title>
</head>
<body>
<div class="box">
<div class="inner">
<div class="ribbon">NEW</div>
<p>
内容をここに入れます。内容をここに入れます。内容をここに入れます。
内容をここに入れます。内容をここに入れます。内容をここに入れます。
内容をここに入れます。内容をここに入れます。内容をここに入れます。
</p>
</div>
</div>
</body>
</html>
.box {
overflow: hidden;
padding: 1px;
}
.inner {
background-color: #fff;
border: 1px solid #ddd;
padding: 20px 40px;
position: relative;
}
.ribbon {
font-size: .6rem;
font-weight: bold;
color: #fff;
position: absolute;
top: -2px;
left: -2px;
line-height: 1.8;
box-shadow: 0 0 4px rgba(100, 100, 100, .2);
padding-inline: 1.3lh;
padding-bottom: var(--f);
border-image: conic-gradient(#0008 0 0) 51%/var(--f);
clip-path: polygon(
100% calc(100% - var(--f)),100% 100%,calc(100% - var(--f)) calc(100% - var(--f)),var(--f) calc(100% - var(--f)), 0 100%,0 calc(100% - var(--f)),999px calc(100% - var(--f) - 999px),calc(100% - 999px) calc(100% - var(--f) - 999px));
transform: translate(calc((cos(45deg) - 1)*100%), -100%) rotate(-45deg);
transform-origin: 100% 100%;
background-color: #cc0000;
}
こんな感じです!
一見めんどくさそうですが、コピペしてしまえばOKですね。
今回は以上です!