When applying ::before on input it does not. So i did some search and some answer clarified that since it is a replaced element ::before or ::after will not work on them.
Now when i use appearance:none on input the ::before works on checkbox and radio but not on input:text. Can some one tell me what magic does appearance does on the input element.
I tried searching this on internet but could not find something useful
consider below piece of code:
input {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
position: relative;
}
input::before {
content: "X";
width: 10px;
height: 10px;
display: block;
outline: 4px solid orange;
position: absolute;
top: 20px;
left: 50px;
}
<input type="text" name="" id="">
<input type="checkbox" name="" id="">