Our end goal is to add ribbon like this:

Step 1: Let’s create our container first.
All we need is a box with fixed size. You can have responsive box but the ribbon needs to be responsive as well. For the sake of example, I have it in fixed size.
We will set the position of the box relative.
Step 2: Add a ribbon container.
Let’s add the container that will hold the ribbon.
It’s position must be absolute so that it can live on top of the container and be easily visible and not hiding behind it.
We’ll keep the overflow hidden.
I have added background-color property temporarily just so that the container can be visible. It will be removed in the next step when we have the ribbon inside the container.
Step 3: Add the ribbon in the ribbon container.
First thing first. Let’s remove the temporary background-color of the ribbon container e added in the previous step.
After that let’s add the actual ribbon (just a span tag) inside the ribbon container. The position of the ribbon should be set absolute as well so that it will live inside the container as well as on top of the container. That will make it clearly visible!
You can display it as block or inline-block. Both will work!
And at the end, add some nice style… Add some nice color, some texts, align it and blah blah blah… Basically, set the ribbon style the way you want!
Step 4: Change the position of the ribbon.
Let’s adjust the position of the ribbon so that we can place it the way we want.
Let’s bring it a bit down and push it inside from left.
Step 5: Final placement of the ribbon.
Let’s finally push the ribbon in the perfect position. We can use transform property to do so. We will rotate it by -45deg to place on the top left corner.
box containers examples how to ribbon style stylesheet