.inputlabel { position: relative; display: inline; cursor: pointer; padding-left: 20px; } .inputlabel input { position: absolute; z-index: -1; opacity: 0; } .radio .inputbox { border-radius: 50%; } .inputlabel:hover input ~ .inputbox { background: #b4b4b4; } .inputlabel input:checked ~ .inputbox { background: #2196F3; } .inputlabel:hover input:not([disabled]):checked ~ .inputbox{ background: #0a6ebd; } .inputlabel input:disabled ~ .inputbox { pointer-events: none; background: #838383; } .banned { background: #ff4e4e; } .inputlabel:hover input ~ .banned { background: #ff0000; } .inputlabel input:checked ~ .banned { background: #a80000; } .inputlabel:hover input:not([disabled]):checked ~ .banned{ background: #810000; } .inputbox:after { position: absolute; display: none; content: ''; } .inputlabel input:checked ~ .inputbox:after { display: block; } .checkbox .inputbox:after { top: 1px; left: 5px; width: 3px; height: 9px; transform: rotate(45deg); border: solid #fff; border-width: 0 2px 2px 0; } .radio .inputbox:after { top: 4px; left: 4px; width: 6px; height: 6px; border-radius: 50%; background: #fff; }