You can use an SVG image that will be sharply displayed at any size and will adapt to the size of the element, it will look like this:
.button {
background: #000;
float: left;
position: relative;
color: #999;
font: 15px/130% Arial, sans-serif;
padding: 10px 20px;
clear: both;
margin: 10px;
border-radius: 5px 0 0 5px;
}
.button:after {
content: '';
display: block;
width: 10px;
position: absolute;
right: -10px;
height: 100%;
top: 0;
background: transparent url('triangle.svg') 0 0 no-repeat;
}
http://jsfiddle.net/Ch7aA/
This jsfiddle will only work in Webkit because I introduced svg so you can understand how it works, but if you download it from an external file, it should work fine. Here's the rendering for reference:

source
share