Pseudo Select Element

by zerrax

HTML

<div class="custom-select">
  <span class="cs"><a>erty</a></span>
  <ul id="ok" style="display:none;">
    <li class="i">1</li>
    <li class="i">2</li>
    <li class="i">3</li>
    <li class="i">4</li>
    <li class="i">5</li>
    <li class="i">6</li>
    <li class="i">7</li>
    <li class="i">8</li>
    <li class="i">9</li>
    <li class="i">10</li>
    <li class="i">11</li>
    <li class="i">12</li>
    <li class="i">13</li>
    <li class="i">14</li>
    <li class="i">15</li>
    <li class="i">16</li>
    <li class="i">17</li>
    <li class="i">18</li>
    <li class="i">19</li>
    <li class="i">20</li>
  </ul>
</div>

CSS

.custom-select {
    position: relative;
    display: inline-block;
    font-family: sans-serif;
    font-size: 93%;
    margin: 30px 50px;
    
}

.custom-select span {
    display: inline-block;
    min-width: 180px;
    color: #FFF;
    background-color: #292938;
    padding: 5px;
    cursor: pointer;
    -webkit-border-top-left-radius: 4px;
    -webkit-border-top-right-radius: 4px;
    -moz-border-radius-topleft: 4px;
    -moz-border-radius-topright: 4px;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
}

.custom-select ul {
    position: absolute;
    background: #3f3f54;
    border: 1px solid #333;
    width: 99%;
    max-height: 200px;
    overflow: auto;
    z-index: 10000;
}

.custom-select ul li {
    padding: 5px;
    border-bottom: 1px solid #333;
    cursor: pointer;
    color: #eee;
}

.custom-select ul li:hover {
    background-color: #666;
    color: #FFF;
}

.custom-select ul li:last-child {
    border-bottom: none;
}

JavaScript

document.body.onclick = function(e)
{
    if (window.event)
    {
        e = event.srcElement;
    }
    else
    {
        e = e.target;
    }
    if (e.className && e.className.indexOf('cs') != -1)
    {
    		var c = e.parentNode.querySelector('ul');
        c.style = "display:block";
    }
    else  if (e.className && e.className.indexOf('i') != -1)
    {
    		e.parentNode.parentNode.querySelector('a').innerText = e.innerText;
        var x = document.getElementsByClassName("cs");
				for (i = 0; i < x.length; i++)
        {
    				x[i].parentNode.querySelector('ul').style = "display:none";;
  			}
    }
    else
    {
    		var x = document.getElementsByClassName("cs");
				for (i = 0; i < x.length; i++)
        {
    				x[i].parentNode.querySelector('ul').style = "display:none";;
  			}
    }
}