What a strange desire to do everything through CSS? Such things need to be done with the help of images. And what makes you think that it is impossible to push the pseudo-element out of the frame of the parent element?
.bg { padding: 20px; background: #37f; margin-top: 50px; } .text { color: #b00; font-size: 15px; background: rgba(255, 255, 255, .5); padding: 15px; margin-right: 50px; position: relative; } .text::after { content: ''; position: absolute; left: 100%; top: 0; width: 0; border-top: 47px solid rgba(255, 255, 255, .5); border-right: 50px solid transparent; }
<div class="bg"> <div class="text"> Блаблабла </div> </div>
Regarding the second question: Suma, do not descend, what border? Do you have a principle not to use images? Of course, you can use some border-image property, but even in this case, you will need a picture. Do not complicate the layout, all this can be done with simple methods.