我使用以下方式定制了我的<select>
:
background-color:#ececec;
border:0;
border:1px solid #e3e3e3;
border-radius:3px;
width:100%;
font-family:'FuturaStdLightOblique', sans-serif;
font-size:16px;
color:#616263;
outline:none;
height: 40px;
但我也希望将我的下拉箭头改为符合此设计的外观。我想使用unicode三角形▼(▼
)作为向下箭头的替代方法,如果可能的话,将其设置为与我的选择标记中的文本相同的颜色。
关于如何在不使用CSS / HTML之外的任何内容的情况下实现此目标的任何想法?提前谢谢。
答案 0 :(得分:28)
也许是这样?
*,
*: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: 12px 8px;
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: 5px 15px;
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;
}
&#13;
<form action="#" method="post">
<div class="select">
<select name="nameValueSelect" class="select__field" required>
<option value="" 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>
<button type="submit" class="btn-submit">Submit</button>
</form>
&#13;
答案 1 :(得分:1)
对于那些喜欢理解和补充Dmitriy's solution(下面的简化代码)的人,这是通过:
::after
规则:
所以基本框架(字面意思是骨架,只有需要的)是:
.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 */
}
<section class="wrapper">
<select>
<option value="" selected>Choose option</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
</section>
如果您需要尝试进一步调整,上面的代码在此 "Select caret" Codepen 中。
答案 2 :(得分:0)
制作自己的自定义下拉菜单非常简单,给定的代码是向您解释实现它的基本且最简单的方法。
.box select {
background-color:#000000;
color: white;
padding: 26px;
border-bottom: 1px solid #5e5e5e !important;
font-size: 17px;
box-shadow: 0 5px 25px rgba(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);
}
<div class="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>