CSS:-webkit-appearance:menulist Dropdown(选择标签),如何给箭头填充?

Posted

技术标签:

【中文标题】CSS:-webkit-appearance:menulist Dropdown(选择标签),如何给箭头填充?【英文标题】:CSS: -webkit-appearance: menulist Dropdown (Select tag), how to give padding to the arrow? 【发布时间】:2020-10-16 00:06:52 【问题描述】:

我有这个用于选择标签的 html

<div>
   <label> Country </label> 
   <span>
      <select>
         <option value=""></option>
         ...
      </select>
   </span>
</div>

相关的 CSS 是这样的:

select 
    -webkit-appearance: menulist;

label 
    margin-left: 1rem;

这是它的样子:

看看下拉箭头如何与选择元素的右边框没有空格?

这就是我想要设计的样式。

那么有没有 CSS 选择器可以帮助我做到这一点? 还是我应该继续使用content: "someglyph" 自定义它?

提前致谢

【问题讨论】:

我总是隐藏箭头并添加一个 .svg 箭头作为背景。不是一个很好的解决方案,但它可以跨浏览器工作。选择是网络中真正的痛苦。 我会让这个问题更开放一点,看看是否有人知道更好的方法,但现在我所做的是从 【参考方案1】:

解决这个问题的最好方法是应用这个小 CSS:

select 
      appearance: none;
      background-color: transparent;
      background-image: url(arrow.svg);
      background-repeat: no-repeat;
      background-position: right;
      background-size: 30px;

正如@mazoli 提到的,这个解决方案是跨浏览器的。

【讨论】:

无需自带 svg,这里有一个中灰色的,可能会很好用:background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8cGF0aCBmaWxsPSJncmF5IiBkPSJNMTAsMjMyLjdsNDkwLDUzNC41bDQ5MC01MzQuNUgxMHoiIC8+DQo8L3N2Zz4=);

以上是关于CSS:-webkit-appearance:menulist Dropdown(选择标签),如何给箭头填充?的主要内容,如果未能解决你的问题,请参考以下文章

checkbox不显示,试试去掉-webkit-appearance这个样式

苹果系统css样式变化

css Lightbox.me

iOS CSS 阴影问题

iPad 和 iPhone 的样式输入按钮

css清除select的下拉箭头样式