<div class="wrap">
<div class="block block-1">
<div class="ribbon">Ribbon Nr.1</div>
</div>
<div class="block block-2">
<div class="ribbon"><span>Ribbon Nr.2</span></div>
</div>
<div class="block block-3">
<div class="ribbon">Ribbon Nr.3</div>
</div>
<div class="block block-2">
<div class="ribbon"><span class="icon">#</span></div>
<div class="ribbon"><span>Ribbon Nr.2</span></div>
</div>
</div>
body {
font-family: sans-serif;
padding: 50px 20px;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.wrap {
width: 100%;
max-width: 462px;
margin: 0 auto;
position: relative;
}
.block {
height: 100px;
background-color: lightgray;
position: relative;
margin: 0 0 30px;
}
/* Ribbon style 1 */
.block-1 {
border: 3px solid #c7111a;
background: #ffffff;
-webkit-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
-moz-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
}
.block-1 .ribbon {
background-color: #EA141F;
top: -12px;
left: 40px;
display: inline-block;
height: 24px;
text-align: center;
line-height: 24px;
color: #fff;
font-size: 0.688rem;
position: absolute;
padding: 0 10px;
font-weight: 600;
-webkit-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
-moz-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
z-index: 11;
}
.block-1 .ribbon::after {
content: "";
position: absolute;
left: -12px;
width: 0;
height: 0;
border-style: solid;
border-width: 0 0 12px 12px;
border-color: transparent transparent #c7111a transparent;
z-index: 10;
}
/* Ribbon style 2 */
.block-2 {
border: 3px solid #c7111a;
background: #ffffff;
-webkit-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
-moz-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
}
.block-2 .ribbon {
height: 75px;
left: -5px;
overflow: hidden;
position: absolute;
text-align: right;
top: -5px;
width: 75px;
z-index: 1;
}
.block-2 .ribbon span {
background-color: #EA141F;
box-shadow: 0 3px 10px -5px #000;
color: #fff;
display: block;
font-weight: 600;
left: -21px;
line-height: 20px;
position: absolute;
top: 19px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
width: 100px;
text-align: center;
font-size: 0.688rem;
}
.block-2 .ribbon span.icon {
background-color: #EA141F;
box-shadow: 0 3px 10px -5px #000;
color: #fff;
display: block;
font-weight: 600;
left: -19px;
line-height: 28px;
position: absolute;
top: -4px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
width: 56px;
text-align: center;
font-size: 0.688rem;
}
.block-2 .ribbon span::after,
.block-2 .ribbon span::before {
border-bottom: 3px solid transparent;
border-top: 3px solid #c7111a;
content: " ";
position: absolute;
top: 100%;
z-index: -1;
}
.block-2 .ribbon span::before {
border-left: 3px solid #c7111a;
border-top: 3px solid #c7111a;
left: 0;
}
.block-2 .ribbon span::after {
border-right: 3px solid #c7111a;
border-top: 3px solid #c7111a;
right: 0;
}
/* Ribbon style 2 */
.block-3 {
border: 3px solid #c7111a;
background: #ffffff;
-webkit-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
-moz-box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
box-shadow: -3px 3px 3px 0px rgba(0,0,0,0.15);
}
.block-3 .ribbon {
left: -6px;
top: -6px;
padding: 5px 10px;
font-size: 0.688rem;
font-weight: 600;
padding-right: 30px;
letter-spacing: 0.1px;
color: hsla(0,0%,100%,.87);
background: linear-gradient(-66deg,transparent,transparent 19%,#EA141F 0%,#EA141F);
position: absolute;
}
.block-3 .ribbon::before {
border: 3px solid transparent;
content: " ";
position: absolute;
top: 100%;
z-index: 10;
border-right: 3px solid #c7111a;
border-top: 3px solid #c7111a;
left: 0;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.