0

I am trying to use a custom arrow for a dropdown menu as mentioned in the code. I am facing two issues here.

1.unable to place the arrow section adjacent to the dropdwon.

2.This custom arrow is not clickable.

How can I achieve these two ?

I tried to use z-index;-1 for the :after section. But its not working as expected.

	 
.expenses_div {
	
	width:90% !important;
	margin:auto;
	margin-top:2%;

}

	
.expenses_div_left{
	height:40px;
	line-height:40px;
	background-color:black; 
	float:left;
	display: inline-block;
	text-align:left;
	padding-left:12px;
	color:white;
	width:48%;
	font-size: 14px !important;
	font-family : "Montserrat",sans-serif !important;
 
	} 
	
.expenses_div_right{
	
	height: 40px !important;
	line-height: 40px !important;
	width:48%;
	float:left;
	display: inline-block;
	cursor:pointer;
	background:transparent !important;
	
}



 
.expenses_div_right select {

	font-family : "Montserrat",sans-serif !important;
	background:transparent !important;
	appearance:none !important;
	-moz-appearance:none !important;
	-webkit-appearance:none !important;
	-webkit-box-sizing: border-box !important;
	-moz-box-sizing: border-box !important;
	box-sizing: border-box !important;
	border: 1px solid black !important;
	width:100%!important;
	color:black !important;
	height:40px;
	text-align:left !important;
	font-size: 14px !important;
	outline: none; 
	background-color:none !important;
	position: relative !important;
	cursor:pointer;
	padding-left:12px;
  
}
 

.expenses_div_right:after { 
	content: '< >';
	font: 16px "Consolas", monospace;
	font-weight:bold;
	color: white;
	background-color:black;
  display:inline-block;
	-webkit-transform: rotate(90deg);
	-moz-transform: rotate(90deg);
	-ms-transform: rotate(90deg);
	transform: rotate(90deg);
	position: relative;
	width:40px;
	height:40px;
	text-align:center;
	line-height:40px;
	overflow:hidden !important;
	cursor:pointer;

}
<div class="expenses_div">
			<div class="expenses_div_left" >How to Proceed</div>
			<div class="expenses_div_right" >
				<select name="main_selection"  id="main_selection" >
					<option selected value="">Select an option</option>
					<option value="new_data">New Data</option>
					<option value="analize_data">Analyze Data</option>
					<option value="refresh_data">Refresh Data</option> 
				</select>
			</div>
		</div>

1 Answer 1

2

Position And Click !

Changes commented :

Snippet :

.expenses_div {

width:90% !important;
margin:auto;
margin-top:2%;

}


.expenses_div_left{
height:40px;
line-height:40px;
background-color:black; 
float:left;
display: inline-block;
text-align:left;
padding-left:12px;
color:white;
width:48%;
font-size: 14px !important;
font-family : "Montserrat",sans-serif !important;

} 

.expenses_div_right{

height: 40px !important;
line-height: 40px !important;
width:48%;
float:left;
display: inline-block;
cursor:pointer;
background:transparent !important;
position:relative;/*Added (Because :after should be relative to this not whole page! )*/

}




.expenses_div_right select {

font-family : "Montserrat",sans-serif !important;
background:transparent !important;
appearance:none !important;
-moz-appearance:none !important;
-webkit-appearance:none !important;
-webkit-box-sizing: border-box !important;
-moz-box-sizing: border-box !important;
box-sizing: border-box !important;
border: 1px solid black !important;
width:100%!important;
color:black !important;
height:40px;
text-align:left !important;
font-size: 14px !important;
outline: none; 
background-color:none !important;
position: relative !important;
cursor:pointer;
padding-left:12px;

}


.expenses_div_right:after { 
content: '< >';
font: 16px "Consolas", monospace;
font-weight:bold;
color: white;
background-color:black;
display:inline-block;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
position: absolute;/*Changed to absolute*/
top:0;/*Added*/
right:0;/*Added*/
width:40px;
height:40px;
text-align:center;
line-height:40px;
overflow:hidden !important;
cursor:pointer;
z-index :-1 ;/*Added ( For Your 2nd Question )*/
}
<div class="expenses_div">
			<div class="expenses_div_left" >How to Proceed</div>
			<div class="expenses_div_right" >
				<select name="main_selection"  id="main_selection" >
					<option selected value="">Select an option</option>
					<option value="new_data">New Data</option>
					<option value="analize_data">Analyze Data</option>
					<option value="refresh_data">Refresh Data</option> 
				</select>
			</div>
		</div>

I hole this helps you !

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks. But when I add this code to my site, arrow is not showing up. arrow is positioned properly. verified that with removing the z-index. I believe there is something strange with background:transparent !important; property. its not working as expected
Happy to help ;) please send your website url or run it on js-fiddle to see whats wrong
add : z-index:2; to <select> and change z-index :after to z-index:1;that will work:)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.