Custom Select Tag DropDown with CSS and JavaScript

In this tutorial we will see how to make a Custom Select Tag DropDown with CSS and JavaScript. Pure CSS and Vanilla JavaScript is used to make this custom select menu, CSS code and JavaScript code is given.

HTML Code

Take a look at the HTML code given below.

<div class="drop-down">
    
<select onmousedown='dropDown(event,this)'>
<option id="option">Happy</option>    
</select>
    
<div class="menu" id="menu">
<i id="Happy" onclick="item(this)" class="far fa-grin"></i>    
<i id="Sad" onclick="item(this)" class="far fa-frown"></i>    
<i id="Angry" onclick="item(this)" class="far fa-angry"></i>    
</div>    
    
</div>  

CSS Code

CSS code is given below.

<style>      
body
{
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: #ddd;
}
select
{
    width: 200px;
    height: 50px;
    border-radius: 20px;
    padding: 10px 15px;
    cursor: pointer;
    background-color: #fff;
    border: 0;
    box-sizing: border-box;
    font-weight: bold;
    font-size: 15px;
}
.drop-down
{
    position: relative;
}
.menu
{
    position: absolute;
    top: 100%;
    left: 0;
    width: 200px;
    height: 50px;
    border-radius: 20px;
    padding: 5px;
    cursor: pointer;
    background-color: #fff;
    box-sizing: border-box;
    margin-top: 25px;
    text-align: center;
    display: none;
}
.menu i
{
    display: inline-block;
    border-radius: 20px;
    font-size: 35px;
    background-color: yellow;
    margin: 4px;
}
.menu::before
{
    content: '';
    background-color: #fff;
    position: absolute;
    bottom: 100%;
    right: 10%;
    height: 40px;
    width: 40px;
    border-radius: 50%;
}
.menu::after
{
    content: '';
    background-color: #fff;
    position: absolute;
    bottom: 50%;
    right: 10%;
    height: 40px;
    width: 40px;
    border-radius: 50%;
    z-index: -1;
}
</style>           

JavaScript Code

Take a look at the JavaScript Code given below.

<script>
var a=1;
function dropDown(e)
{
e.preventDefault();
if(a==1)
{
document.getElementById('menu').style.display='block';
a=0;    
}
else
{
document.getElementById('menu').style.display='none';
a=1;    
}    
}

function item(x)
{
var content=x.id;
document.getElementById('option').innerHTML=content;
document.getElementById('menu').style.display='none';
if(a==1)
{
 a=0;    
}
else
{
a=1;    
}
}
</script>

One function is used to close the dropdown and other is used to change the value of select tag and then close the dropdown.

Demo

Video Tutorial

Watch our video tutorial on Custom Select Tag DropDown with CSS and JavaScript.

Social Media Menu with Popup Tooltip using HTML and CSS Horizontal Navigation Menu with HTML and CSS Responsive Sidebar Menu with CSS and JavaScript Cool CSS Button with Hover Animation Pure CSS Custom Radio Buttons Custom Emoji Radio Buttons with CSS Color Picker Design with HTML CSS and JavaScript Custom Radio Buttons with CSS Engraved HTML Buttons With CSS Neumorphic Buttons Design with CSS Cool Profile Card Design with HTML CSS Neumorphic Search Bar Design with HTML and CSS Simple Login Form with Placeholder Animation Pure CSS Button with Folded Corner Background Color Change Slider with HTML CSS and JavaScript 404 Page Not Found Template Design with HTML and CSS Movies Blog Card Design with HTML and CSS Simple CSS Border Animation with before and after Selector Custom Social Select Dropdown Menu with CSS and JavaScript Facebook Offline and Online Notification with CSS and JS New Year 2022 Text Animation with CSS and JS Change Placeholder Color using CSS Custom Select Tag DropDown with CSS and JavaScript Simple Price Range Slider With HTML CSS and JavaScript Profile Card With Hover Effect using HTML and CSS Circle With Two Colors using CSS Simple FAQ Accordion With HTML CSS and JavaScript
Change font-size using JavaScript Get Font Size of any Tag using JavaScript Change Position of HTML Element using JavaScript How to Change Image on Hover with JavaScript How to Disable Button by Class Name in JavaScript How To Change Image Size with JavaScript How to change Image opacity with JavaScript How to Change image src on click with JavaScript How to get the lang attribute value in JavaScript How to Get attribute Value using JavaScript How To Check if Attribute Exists or not with JavaScript How To Count number of links on Page with JavaScript How To Scroll Page to Bottom using JavaScript How To Detect Shift Key Press with JavaScript Change Text Color On Hover with JavaScript Hide and Show div using JavaScript Get Button text with JavaScript Get textarea value with JavaScript Get table row Height with JavaScript Auto Increase width of input field with JavaScript Set Textarea maxLength with JavaScript Set Textarea Value with JavaScript JavaScript Count list items JavaScript set input field value Count Button Clicks with JavaScript Scroll Page to the Top on Click with JavaScript