如何在Mac上的Safari中删除选择元素上的光泽?

Ian*_*ter 95 css safari macos background-color drop-down-menu

在Mac和iOS设备上,在Safari中,<select>具有背景颜色的元素会在其自身上产生光泽.在其他操作系统中似乎不会发生这种情况.

例如,我有一个具有这些样式属性的select元素:

select {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 3px 6px;
margin: 10px 0 7px;
width: 250px;
background-color: #BD2786;
color: white;
letter-spacing: -.04em;
font-weight: bold;
border: 0;
}
Run Code Online (Sandbox Code Playgroud)

我的元素有我想要的背景颜色,但光泽仍然存在.有谁知道如何使它变成扁平的颜色?

san*_*eep 181

@beanland; 你必须写

-webkit-appearance:none;
Run Code Online (Sandbox Code Playgroud)

在你的CSS.

阅读此http://trentwalton.com/2010/07/14/css-webkit-appearance/

  • 有没有办法让箭头保持在右侧?我想只覆盖颜色.谢谢 (112认同)
  • @sandeep:并使其成为跨浏览器:`-moz-appearance:none; -webkit-appearance:none; 外观:无;` (17认同)
  • @Marc如果3年后你仍然感兴趣..我添加了一个解决方案,我发现箭头显示. (5认同)
  • 不需要感谢,因为有很多我不知道的事情:) (4认同)
  • 我用这段代码添加了向下箭头,看起来效果很好:`background-image:url(/down_arrow.gif); 背景重复:不重复;背景位置:计算(100% - 10px);` (2认同)
  • IE的解决方案是使用select :: - ms-expand {display:none; 隐藏原生IE选择框下拉图标,然后使用实际的png图像作为新图标的背景.出现问题是因为在IE中,SVG图像并不总是通过CSS正确定位. (2认同)

ali*_*mon 93

使用-webkit-appearance:none;也将删除指示这是下拉列表的箭头.

查看此代码段,使其适用于不同的浏览器,添加自定义箭头,不包含任何图像文件:

select{
	background: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat 95% 50%;
	-moz-appearance: none; 
	-webkit-appearance: none; 
	appearance: none;
    /* and then whatever styles you want*/
	height: 30px; 
	width: 100px;
	padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • 甜蜜,欣赏箭头修复!这里的具有透明背景上的版本:选择{背景:URL(数据:图像/ SVG + xml的; BASE64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU + LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM + PHRpdGxlPmFycm93czwvdGl0bGU + PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEuNDEgNC42NyAyLjQ4IDMuMTggMy41NCA0LjY3IDEuNDEgNC42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIzLjU0IDUuMzMgMi40OCA2LjgyIDEuNDEgNS4zMyAzLjU0IDUuMzMiLz48L3N2Zz4 =)不重复95%50%; } (13认同)
  • 如果你有广泛的选择元素,这将看起来有点偏.要修复它,您可以使用CSS3的背景位置边缘偏移来更好地对齐背景.所以用'no-repeat right 2px center`替换`no-repeat 95%50%` (5认同)
  • 相同的箭头,但透明和白色https://pastebin.com/07iS41b5 (3认同)
  • 人们击败我定制 SVG,但我看到这里没有人设法缩小它!此处已缩小,箭头填充颜色现在为白色 ​​:) https://pastebin.com/r7DDqHps (2认同)
  • 我注意到添加的箭头同时包含向上/向下箭头-只是为了显示通常的向下箭头吗? (2认同)

Noe*_*ams 21

2019版

更短的内嵌图片 URL,仅显示向下箭头,可自定义的箭头颜色...

来自https://codepen.io/jonmircha/pen/PEvqPa

作者可能是Jonathan MirCha

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%238C98F2'><polygon points='0,0 100,0 50,50'/></svg>") no-repeat;
  background-size: 12px;
  background-position: calc(100% - 20px) center;
  background-repeat: no-repeat;
  background-color: #efefef;
}
Run Code Online (Sandbox Code Playgroud)

  • 最好使用不带计算的背景位置:背景位置:右.8em顶部60%;和一些光标: 是需要的 (3认同)
  • `background-color` 属性适用于选择元素的背景。要更改向下箭头的颜色,您需要更改 URL 中的 SVG 填充属性,例如 `fill='%23fc0000'` (2认同)

Jus*_*rds 5

抱歉,堆在旧物品上。我在这里找到了我的问题的部分答案,但必须做一些工作,所以我想与下一个人分享我的结果。

我最终使用了与其他贡献者相同的方法,但进行了一些调整来修复以下问题

  1. 长文本覆盖了其他解决方案中的箭头
  2. 所使用的图像是一个有点旧且丑陋的向上/向下组合箭头。

下面将为您提供解决上述问题的可行解决方案。注意:我的用例使用了白色箭头,您可能需要更改您的箭头的颜色。

这是预览:

用白色箭头选择

select{    
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgaWQ9IkxheWVyXzEiICAgZGF0YS1uYW1lPSJMYXllciAxIiAgIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIiAgIHZlcnNpb249IjEuMSIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIgICBzb2RpcG9kaTpkb2NuYW1lPSJkb3dubG9hZC5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE0MjAyIj4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgIDwvY2M6V29yaz4gICAgPC9yZGY6UkRGPiAgPC9tZXRhZGF0YT4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMjciICAgICBpZD0ibmFtZWR2aWV3NDIwMCIgICAgIHNob3dncmlkPSJmYWxzZSIgICAgIGlua3NjYXBlOnpvb209Ijg0LjMiICAgICBpbmtzY2FwZTpjeD0iMi40NzQ5OTk5IiAgICAgaW5rc2NhcGU6Y3k9IjUiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTkyMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJMYXllcl8xIiAvPiAgPGRlZnMgICAgIGlkPSJkZWZzNDE5MCI+ICAgIDxzdHlsZSAgICAgICBpZD0ic3R5bGU0MTkyIj4uY2xzLTJ7ZmlsbDojNDQ0O308L3N0eWxlPiAgPC9kZWZzPiAgPHRpdGxlICAgICBpZD0idGl0bGU0MTk0Ij5hcnJvd3M8L3RpdGxlPiAgPHBvbHlnb24gICAgIGNsYXNzPSJjbHMtMiIgICAgIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIiAgICAgaWQ9InBvbHlnb240MTk4IiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz48L3N2Zz4=) no-repeat 101% 50%;
  padding-right:20px;
}
Run Code Online (Sandbox Code Playgroud)