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.

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 Profile Card With Hover Effect using HTML and CSS Simple Price Range Slider With HTML CSS and JavaScript Circle With Two Colors using CSS Card With Ribbon using HTML and CSS Simple Loading Screen using HTML and CSS Disable Textarea Resizable Property using CSS Button like Links using CSS Simple Dropdown Menu Using HTML and CSS Background Color Transition using CSS Highlight Required Input Fields using CSS Disable HTML Link using CSS Difference Between Descendant Selector and Child Selector How To Change Color and Size of Hr Tag Using CSS How To Center Align HTML Table Convert Checkbox To Toggle Button Using CSS Drawing Stars using HTML and CSS Button Bounce Effect using CSS Image as Text Background using CSS background-clip Property Vertically Rotate HTML Element using CSS Vertical Align Middle using CSS Text Over Image Hover Effect - Css Hover Simple CSS Button Hover Effect using Before Selector
Password Show Hide with Eye Icon using JavaScript Change Background Color using Dropdown menu with JavaScript Get Select Tag value onchange in JavaScript Check If Class Exists JavaScript Add Event Listener To all Elements of Class JavaScript getElementsByTagName Event Listener JavaScript Change type attribute of Input Element With JavaScript Password Hide and Show with Toggle Emoji Button using JavaScript Hide and Show Navbar On Scroll With JavaScript Empty an Array in JavaScript Get Last Element Of Array Without Removing It Remove Last Element From Array JavaScript Remove First Element From Array in JavaScript Tic Tac Toe Game in JavaScript Remove Class from HTML Tag OnClick JavaScript JavaScript Select li Tag By Index Display JavaScript Variable In HTML Insert HTML Code anywhere With JavaScript JavaScript Date Difference in Days JavaScript Hide Button After Click Simple Click and Hold Effect Using JavaScript Remove Class From All Elements in JavaScript JavaScript Select All HTML Elements Whose ID Start With Same String