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";;
}
}
}