Css - Change Dropdown Arrow To Unicode Triangle
I've customized my
Solution 1:
maybe so?
*,
*:before,
*:after {
box-sizing: border-box;
}
* {
padding: 0;
margin: 0;
}
form {
padding: 1rem;
max-width: 400px;
margin: 1em auto;
}
.select {
height: 40px;
width: 100%;
overflow: hidden;
position: relative;
border-radius: 3px;
margin-bottom: 1em;
}
.select:after {
content: "▼";
padding: 12px8px;
position: absolute;
right: 10px;
top: 0;
z-index: 1;
text-align: center;
width: 10%;
height: 100%;
pointer-events: none;
}
.select__field {
height: 40px;
width: 100%;
padding: 5px15px;
color: #616263;
background-color: #ececec;
border: 1px solid #e3e3e3;
outline: none;
font-size: 16px;
-webkit-appearance: none;
/* for webkit browsers */
-moz-appearance: none;
/* for firefox */
appearance: none;
/* for modern browsers */
}
/* remove default caret for ie */.select__field::-ms-expand {
display: none;
}
.select__field:focus:invalid {
border-color: #FD6347;
}
.select__field:required:valid {
border-color: #006400;
}
.btn-submit {
color: #fff;
display: block;
padding: 15px;
text-transform: uppercase;
background: #535C69;
width: 100%;
border: none;
border-radius: 3px;
}
<formaction="#"method="post"><divclass="select"><selectname="nameValueSelect"class="select__field"required><optionvalue=""selected>Choose option ...</option><option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option 4</option><option>Option 5</option><option>Option 6</option></select></div><buttontype="submit"class="btn-submit">Submit</button></form>
Solution 2:
For those who like to understand and to complement Dmitriy's solution (simplified code below), this is done by:
- adding an element which contains the select element (a wrapper)
- setting a relative position to the wrapper
- removing appearance on the select for taking out the default triangle
- defining an
::after
rule on the wrapper with:- a content property with the unicode ▼
- no pointer-events so that the select remains clickable and triggers the dropdown event
- an absolute position in order to be placed on the right place
So the bare-bones (literally the skeleton, only what is required) are:
.wrapper {
overflow: hidden;
position: relative;
width: 10rem; /* real length of dropdown */
}
.wrapper:after {
content: "▼";
font-size: 0.8rem;
pointer-events: none; /* ▼ click triggers dropdown */position: absolute;
right: 0.2rem;
top: 0.3rem;
z-index: 1;
}
select {
/* remove default caret */
-webkit-appearance: none; /* webkit browsers */
-moz-appearance: none; /* firefox */
appearance: none; /* modern browsers */width: 100%;
}
select::-ms-expand {
display: none; /* remove default caret for ie */
}
<sectionclass="wrapper"><select><optionvalue=""selected>Choose option</option><option>Option 1</option><option>Option 2</option><option>Option 3</option></select></section>
The code above is in this "Select caret" Codepen if you need to try out further adjustments.
Solution 3:
It is very simple to make your own customised drop down, given code is to explain you a basic and easiest way to implement it.
.box select {
background-color:#000000;
color: white;
padding: 26px;
border-bottom: 1px solid #5e5e5e!important;
font-size: 17px;
box-shadow: 05px25pxrgba(0, 0, 0, 0.2);
-webkit-appearance: button;
outline: none;
width: 48%;
border: none;
font-weight: 600;
padding-left: 0px;
}
.box::before {
content: "\f13a";
position: absolute;
right: 0;
width: 60px;
height: 18%;
text-align: center;
font-size: 25px;
line-height: 31px;
color: rgba(255, 255, 255, 0.5);
background-color: rgba(255, 255, 255, 0.1);
}
<divclass="box"><select><option>Micbookpro-selected</option><option>Micbookpro-selected</option><option>Micbookpro-selected</option><option>Micbookpro-selected</option><option>Micbookpro-selected</option></select></div></div>
Post a Comment for "Css - Change Dropdown Arrow To Unicode Triangle"