title: Custom Checkboxes Failing on Firefox
body: <p>I'm trying to make custom checkboxes with CSS3, which is working great on Chrome.  On Firefox... not so much.</p>
  
  <blockquote>
    <h3>Edit: it seems to be working fine on Firefox 37.</h3>
    
    <p>The answer below is still relevant, but the style related issues from mid 2013 are resolved.</p>
    
    <p>IE support isn't mentioned here but edits/answers regarding it are welcome.</p>
  </blockquote>
  
  <h2><a href="http://codepen.io/brigand/pen/narzd" rel="noreferrer">demo</a></h2>
  
  <p>The HTML:</p>
  
  <pre><code>&lt;input type="checkbox" id="first"/&gt;
  &lt;label for="first"&gt;This is pretty awesome&lt;/label&gt;
  </code></pre>
  
  <p>The CSS:</p>
  
  <pre><code>input[type=checkbox] {
    appearance: none;
    background: transparent;
    position: relative;
  }
  input[type=checkbox]::after {
    position: absolute;
    top: 0;
    left: 0;
    content: '';
    text-align: center;
    background: #aaa;
    display: block;
    pointer-events: none;
    opacity: 1;
    color: black;
    border: 3px solid black;
  }
  input[type=checkbox] + label {
    line-height: 48px;
    margin: 0 15px 0 15px;
  }
  input[type=checkbox]:hover::after {
    content: '';
    background: #32cd32;
    opacity: .3;
  }
  input[type=checkbox]:checked::after {
    content: '\2713';
    background: #32cd32;
  }
  input[type=checkbox]:checked:hover::after {
    opacity: 1;
  }
  input[type=checkbox],
  input[type=checkbox]::after {
    width: 48px;
    height: 48px;
    font-size: 46px;
    line-height: 48px;
    vertical-align: middle;
    border-radius: 50%;
  }
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  </code></pre>
  
  <p><sub>Note: I removed vendor prefixes, and things like user-select for brevity.  The full code is in the pen.</sub></p>
  
  <p>What do I need to change to have it look the same on Firefox as it does on Chrome?</p>
  
  <p>Desired:</p>
  
  <p><img src="https://i.stack.imgur.com/wAM3X.png" alt="chrome desired look"></p>
  
  <p>Not desired:</p>
  
  <p><img src="https://i.stack.imgur.com/Lsq0Y.png" alt="firefox bad look"></p>