1. 简介
CSS中经常需要自定义组件,select(下拉列表)是其中比较常用的组件之一。但是,select本身有一个下拉箭头图标,如果我们不希望显示这个图标,就需要去掉它。
2. 去除下拉箭头的方法
下面我们将介绍三种方法去除下拉箭头。
2.1 方法一:使用伪元素 ::-ms-expand (IE)
IE浏览器提供了一个伪元素 ::-ms-expand,用于设置下拉框的样式。我们可以利用这个伪元素去除下拉箭头。
/* 去除IE浏览器下拉框的下拉箭头 */
select::-ms-expand {
display: none;
}
2.2 方法二:使用伪元素 ::before (::after)
除IE浏览器外,其他浏览器可以使用伪元素 ::before或 ::after,来模拟下拉箭头。
/* 给下拉框添加自定义的下拉箭头 */
select {
-webkit-appearance: none; /* 去掉默认样式 */
-moz-appearance: none;
appearance: none;
padding-right: 20px; /* 添加padding-right,给下拉箭头留出空间 */
background-image: url(箭头.png); /* 设置自定义的下拉箭头 */
background-repeat: no-repeat; /* 不重复 */
background-position: right center; /* 放置位置 */
}
2.3 方法三:使用 transform: rotate()
我们可以使用CSS3中的 transform: rotate(),将下拉箭头旋转90度(或其他角度),使其不可见。
/* 去除下拉框的下拉箭头 */
select {
-webkit-appearance: none; /* 去掉默认样式 */
-moz-appearance: none;
appearance: none;
padding-right: 20px; /* 给下拉箭头留出空间 */
background: url(箭头.png) no-repeat right center; /* 设置自定义的下拉箭头 */
background-size: auto 100%; /* 让箭头的高度自适应 */
}
/* 隐藏箭头 */
select::-ms-expand {
display: none;
}
/* 将箭头旋转90度 */
select option {
transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
padding-left: 20px; /* 在选项文本前添加空白,让文本位置不变 */
}
3. 总结
以上三种方法可以去除下拉框的下拉箭头。具体使用哪个方法,根据实际场景和浏览器兼容性来选择。