title: Elongated hexagon shaped button using only one element
body: <p>I would like to make a button like these one just with CSS without using another element.</p>
  
  <p>Button Image</p>
  
  <p><img src="https://i.stack.imgur.com/kKaJ8.png" alt="enter image description here"></p>
  
  <p>Since the button has a <code>border</code> attached, I think I normally need both, the <code>:before</code> and <code>:after</code> elements to create just one arrow at one side. So to make one arrow at each side I would need another <code>span</code> element inside the link.</p>
  
  <p>The second method I tried is the one you see below. But with this solution they are not properly centered and each side of the arrow is different in length.</p>
  
  <p>Has someone a solution?</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>/* General Button Style */
  
  .button {
    display: block;
    position: relative;
    background: #fff;
    width: 300px;
    height: 80px;
    line-height: 80px;
    text-align: center;
    font-size: 20px;
    text-decoration: none;
    text-transform: uppercase;
    color: #e04e5e;
    margin: 40px auto;
    font-family: Helvetica, Arial, sans-serif;
    box-sizing: border-box;
  }
  /* Button Border Style */
  
  .button.border {
    border: 4px solid #e04e5e;
  }
  .button.border:hover {
    background: #e04e5e;
    color: #fff;
  }
  /* Button Ribbon-Outset Border Style */
  
  .button.ribbon-outset.border:after,
  .button.ribbon-outset.border:before {
    top: 50%;
    content: " ";
    height: 43px;
    width: 43px;
    position: absolute;
    pointer-events: none;
    background: #fff;
  }
  .button.ribbon-outset.border:after {
    left: -3px;
    margin-top: -40px;
    transform-origin: 0 0;
    box-sizing: border-box;
    border-bottom: 4px solid #e04e5e;
    border-left: 4px solid #e04e5e;
    transform: rotate(57.5deg) skew(30deg);
  }
  .button.ribbon-outset.border:before {
    right: -46px;
    margin-top: -40px;
    transform-origin: 0 0;
    box-sizing: border-box;
    border-top: 4px solid #e04e5e;
    border-right: 4px solid #e04e5e;
    transform: rotate(57.5deg) skew(30deg);
  }
  .button.ribbon-outset.border:hover:after {
    background: #e04e5e
  }
  .button.ribbon-outset.border:hover:before {
    background: #e04e5e
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;a href="#" class="button ribbon-outset border"&gt;Click me!&lt;/a&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p><a href="http://codepen.io/anon/pen/sKamk" rel="noreferrer"><strong>CodePen Demo</strong></a></p>