Ik probeer hier iets voor elkaar te brouwen waarvan ik aanvankelijk dacht: appeltje eitje. Maar ik ben er inmiddels al dik een uur mee bezig, en ik krijg het niet goed voor elkaar 
Wat ik wil, is dit:

Natuurlijk kan ik hiervoor een (SVG) plaatje als achtergrond gebruiken, maar ik vind het veel fraaier om dit met puur CSS te doen. Mijn gedachte was als volgt: het element een border van 2px geven, en dan een :after en een :before met een gesimuleerde driehoek (door middel van borders), waarbij de :after 2 pixels kleiner is dan de :before, zodat ik het lijntje simuleer. Hier hoort de volgende CSS bij:
Het resultaat komt in de buurt, maar is bepaald niet netjes te noemen:

Dit is te bewonderen in deze JSFiddle.
Wie helpt mij om dit goed te krijgen? Welke denkfout maak ik?
Wat ik wil, is dit:

Natuurlijk kan ik hiervoor een (SVG) plaatje als achtergrond gebruiken, maar ik vind het veel fraaier om dit met puur CSS te doen. Mijn gedachte was als volgt: het element een border van 2px geven, en dan een :after en een :before met een gesimuleerde driehoek (door middel van borders), waarbij de :after 2 pixels kleiner is dan de :before, zodat ik het lijntje simuleer. Hier hoort de volgende CSS bij:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| *, *::after, *::before { box-sizing: border-box; } .pijltje { position: relative; margin: 20px 0 0 0; display: inline-block; height: 36px; text-transform: uppercase; font-size: 14px; color: black; text-decoration: none; padding: 0 20px; line-height: 36px; background: #fff; border: 2px solid red; } .pijltje:before { display: block; content:''; border-top: 20px solid transparent; border-bottom: 20px solid transparent; border-left: 12px solid red; position: absolute; top: -4px; right: -12px; } .pijltje:after { display: block; content:''; border-top: 18px solid transparent; border-bottom: 18px solid transparent; border-left: 12px solid #fff; position: absolute; top: -2px; right: -10px; } |
Het resultaat komt in de buurt, maar is bepaald niet netjes te noemen:

Dit is te bewonderen in deze JSFiddle.
Wie helpt mij om dit goed te krijgen? Welke denkfout maak ik?